Løbeseddel 8: Webbaseret Projektbørs

for Database-støttet Web-publicering, efterår 2001

af Martin Elsman, redigeret af Niels Hallenberg sidst rettet 15. oktober, 2001


I denne øvelse skal du konstruere en webbaseret projektbørs. Hovedsiden for projektbørsen skal liste alle projekterne i databasen:

Det skal være muligt for en person at oprette et projekt med en dertil hørende projekttekst:

Ved at brugeren oplyser et password skal det tillige være muligt for brugeren at opdatere projektteksten:

Øvelsen er opdelt i fire opgaver:

  1. konstruktion af datamodel
  2. opstilling af legale transaktioner
  3. web-planlægning og tilknytning af transaktioner til web-forms
  4. konstruktion af kode til at processere ovenstående web-forms (TCL-filer)

Denne løbeseddel skal være besvaret elektronisk på hug.it-c.dk senest tirsdag d. 6. november klokken 09.00 og i CourseGrader.

Opgave A (20 procent) - Datamodel

Som det første led i konstruktionen af en webbaseret projektbørs skal du konstruere en datamodel for systemet i form af en tabel. Tabellen skal kunne indeholde information om projekttitel, projekttekst og information om projektadministratoren i form af navn, email og password. Din datamodel skal bruge titlen på projektet som ``primary key'' - på denne måde sikres at alle projekter i databasen har forskellig titel.

Gem din datamodel i filen /web/login/www/oevelse8/projekt.sqlhug.it.edu sammen med sql-kode for indsættelse af to projekter.

Endelig skal du starte SQL*Plus på hug.it.edu ved brug af ssh og udføre sql-kommandoerne:

  SQL> @/web/login/www/oevelse8/projekt.sql  
  ...
  SQL> commit;
SQL*Plus kommandoen commit sikrer at dine tabel-indsættelser bliver synlige for andre SQL*Plus vinduer og for din web-server.

Opgave B (20 procent) - Legale transaktioner

I denne opgave skal du opskrive de legale transaktioner for den webbaserede projektbørs i form af SQL-kommandoer: Gem SQL-kommandoerne i en fil /web/login/www/oevelse8/transaktioner.sqlhug.it.edu.

Opgave C (10 procent) - Webstrukturen

Du skal nu planlægge strukturen for den webbaserede projektbørs. Her er en skitse af hvordan systemet ønskes opbygget:
Kasserne i diagrammet repræsenterer den webbaserede projektbørs' tilstande for hvilke HTML-kode vises i en brugers browser. Unavngivne pile repræsenterer links til en ny tilstand og navngivne pile repræsenterer transaktioner for hvilke databasen opdateres (se opgave B) og brugeren ser en ændring i sin browser ved at blive sendt til en ny tilstand.

Hovedsiden for den webbaserede projektbørs er vist som en kasse øverst i diagrammet. Hovedsiden og siden for opdatering af et projekt skal implementeres som tcl-filer, da hvad der vises i disse sider afhænger af indholdet i databasen og af eventuelle formargumenter. Kassen for oprettelse af et nyt projekt kan implementeres som en html-fil.

Din opgave er at navngive html-filen og tcl-filerne for de dynamiske sider og for transaktionerne (de navngivne pile). For at gøre det lettere at finde din besvarelse skal hovedsiden placeres i filen /web/login/www/oevelse8/projekt.tclhug.it.edu.

Formålet med denne opgave er altså ikke at konstruere tcl-filerne for servicen, men at planlægge navngivningen af filerne som indgår og afgøre hvilke formvariabler der skal overføres fra en side til en anden.

Til denne opgave skal du aflevere en beskrivelse af din web-struktur, som indeholder navne på de Tcl-programmer projektbørsen anvender samt, for hver Tcl-fil de form-variable som filen forventer. Dette skal enten afleveres i en tekstfil /web/login/www/oevelse8/struktur.txt, eller som en tegning svarende til den ovenfor, hvor der på alle pile er noteret både Tcl-program og de form-variable som overføres. Hvis du vælger at aflevere en tegning, så kan du evt. scanne en tegning skrevet i hånden, og overføre filen til hug.it.edu som /web/login/www/oevelse8/struktur.gif.

Opgave D (50 procent) - Konstruktion

I denne opgave skal du konstruere html-filen og tcl-filerne for de dynamiske sider og for database-transaktionerne. Start med at konstruere html-filen og tcl-filerne for kasserne i diagrammet.

Ved implementation af tcl-filen for opdatering af et projekt skal du huske at skrive kode til at sammenligne det indtastede password med password'et i databasen - det skal jo kun være muligt for administratoren at ændre projektteksten!

Husk at checke formvariablerne.


nh@it.edu