Opgavesæt 9: Webbaseret Projektbørs

for Databasestøttet Webpublicering

Fra opgavesæt af Martin Elsman og Niels Hallenberg sidst rettet 30. oktober, 2002


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 generere ovenstående web-forms (PHP-filer)

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 oevelse9/projekt.sql sammen med sql-kode for indsættelse af to projekter.

Endelig skal du åbne MyAdmin og udføre sql-kommandoerne i din MySQL-database

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 /oevelse9/transaktioner.sql

Opgave C (25 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 - deres HTML-brugergrænseflader. En unavngiven pil repræsenterer links til en ny tilstand. Navngivne pile repræsenterer transaktioner for hvilke databasen opdateres (se opgave B) - 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 PHP-filer, da hvad der vises i disse sider afhænger af indholdet i databasen og af eventuelle formvariabler. Kassen for oprettelse af et nyt projekt kan implementeres som en html-fil.

Din opgave er at navngive html-filen og PHP-filerne for de dynamiske sider med sql-transaktionerne. For at gøre det lettere at finde din besvarelse skal hovedsiden placeres i filen oevelse9/projekt.php.

Formålet med denne opgave er altså ikke at konstruere PHP-filerne for servicen (filerne får først indhold i opg. D) -, 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 PHP-programmer projektbørsen anvender samt, for hver PHP-fil de form-variabler som filen forventer. Dette skal enten afleveres i en tekstfil oevelse9/struktur.txt, eller som en tegning svarende til den ovenfor, hvor der på alle pile er noteret både PHP-program og de form-variabler 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 som oevelse9/struktur.gif.

Opgave D (35 procent) - Konstruktion

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

Ved implementation af PHP-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.


mejner@it-c.dk