DSDS - ps, Opgavesæt 10

Sidst opdateret 06-11-2007

DSDS

Opgavesæt 10: Webbaseret Projektbørs

I denne øvelse skal du konstruere en webbaseret projektbørs med PHP og MySQL. Hovedsiden for projektbørsen skal liste alle projekterne i databasen (tag dig ikke af at projektemnerne i skærmbillederne omhandler et andet programmeringssprog end PHP...):

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 (PHP-scripts)

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. Ydermere skal hvert projekt være identificeret med et unikt tal (brug primary key og auto_increment). Det skal sikres (ved brug af unique) at alle projekter har forskellig titel.

Gem din datamodel i filen DSDS/ps10/project.sql i dit web-bibliotek på ITU's netværk. Skriv også SQL kode i filen for indsættelse af to projekter.

Opgave B (20 procent) - 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 DSDS/ps10/transactions.sql i dit web-bibliotek på ITU's netværk.

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 PHP-scripts, 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 PHP-filerne for de dynamiske sider og for transaktionerne (de navngivne pile). For at gøre det lettere at finde din besvarelse skal hovedsiden implementeres som en fil DSDS/ps10/projects.php i dit web-bibliotek på ITU's netværk.

Formålet med denne opgave er altså ikke at konstruere PHP-scripts 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 konstruere en beskrivelse af din web-struktur, som indeholder navne på de PHP-scripts projektbørsen anvender samt, for hver PHP-script de formvariabler som filen forventer. Beskrivelsen skal enten gives som en tekstfil DSDS/ps10/struktur.txt, eller som en tegning DSDS/ps10/struktur.gif i dit web-bibliotek på ITU's netværk. Hvis du afleverer besvarelsen som en tegning skal der for hvert PHP-script påføres både navn på scriptet og hvilke formvariabler scriptet forventer.

Opgave D (50 procent) - Konstruktion

I denne opgave skal du konstruere HTML-filen og PHP-filerne for de dynamiske sider og for database-transaktionerne. Start med at konstruere HTML-filen og 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.

Yderligere bemærkninger:

Ekstraopgaver for de flittige studerende (0 procent)

Implementer en eller flere af følgende udvidelser til systemet:


Martin Elsman - mael@itu.dk
Jonas Holbech - holbech@itu.dk

Valid HTML 4.01 Transitional