Kravspecifikation - Dyerag/P3-Masterfag-Filmanmeldelse GitHub Wiki
Introduktion
Vi har fået til opgave at lave en webapplikation der indeholder HTML, CSS og Razor. Udover de tre, skal webapplikationen også ha' en GUI. Opgaven kræver også at vi laver en database der kan administreres, og en API der lader applikationen og databasen snakke sammen.
Vi har valgt at lave en program der lader brugere læse og skrive filmanmeldelser, der gemmes på databasen.
Funktionelle krav
-
Databasen skal holde på brugerdata, filmdata og anmeldelser
-
Navbar
- Næsten alle sider skal have en navbar
- Kun Login og Opret Bruger skal ikke ha' en navbar
- Navbaren skal kunne fører tilbage til startsiden
- Baren skal have en søgebar
- Man skal kunne gå til Opret Bruger og Login fra baren
- Opret Bruger og Login skal erstattes med eller Brugernavn samt billede hvis man er logget in. Se figur 1 og 2
- Brugerens navn og billede bliver hentet fra databasen
- Brugeren kan foldes ud til at vise detaljer og log ud. Se figur 2
-
Startsiden
- Er forsiden
- Det meste af siden skal være optaget af en liste af tilfældige film, med mere fokus på to udvalgte film der møder et tilfældigt krav. se figur 1
- Siden skal have en liste af genre. For hver genre skal der være et link der fører til en liste med de ti bedste film. se figur 2
- Når en bruger er logget in, skal der være en ekstra række som viser en håndfuld af de sidste film de anmeldte. Se figur 2
-
Loginsiden
- Login Siden skal ha' en Loginform med felterne: Brugernavn og adgangskode.
- Man skal kunne gå til Opret Bruger siden
- Man skal kunne vende tilbage til forrige side
- Formen skal validere at den er fyldt før den submittes
- Når formen submittes, skal databasen tjekkes for om brugeren findes og om adgangskoden er korrekt
- Hvis login forsøget er godkendt, skal man sendes tilbage til den seneste side man var på der ikke var Opret Bruger eller Login
-
Opret Bruger siden
- Der skal være en form med felterne: brugernavn, adgangskode, email og land
- Land skal være en dropdown liste man vælger fra
- Brugeren skal kunne vende tilbage til forrige side
- Formen Skal godkende at alle felter er fyldt før den kan submittes
- Når formen er submitted, bliver databasen tjekket for om brugernavnet er i brug
- Hvis brugernavnet er i brug, skal et nyt angives
- Hvis brugernavnet ikke er i brug, bliver den nye bruger gemt i databasen
- Efter oprettelse skal brugeren logges in
- Efter oprettelse skal applikationen vende tilbage til den sidste side man var på, som ikke er Opret Bruger eller Login
-
Brugersiden
- Brugeren kan se info om sin egen eller andres konto
- Indeholder følgene brugerdata: brugernavn, profilbillede, land, oprettelsesdato, antal anmeldelser, favorit film, favorit genre og en liste af alle anmeldte film
- Brugeren kan tilgå sin egen ved at trykke på Detaljer under bruger i navbar
- Brugeren kan tilgå andres detaljer ved at trykke på deres bruger der kan findes under filmanmeldelser, eller søges efter
- Brugerdata hentes fra databasen
- Profil billede kan ændres her
-
Søgning
- Delt op i 2 dele: Film og bruger
- Brugeren skal kunne springe til toppen af film- eller brugerdelen. Se figur 3
- Filmdelen viser de film der passer søgningen med deres plakat og navn
- Brugerdelen viser matchene brugers billede og navn
- Alle film og brugere der ligner hvad der blev søgt hentes fra databasen
-
Filmside
- Siden består af to dele: info og anmeldelser
- Filminfo og filmanmeldelser hentes fra databasen
- Siden skal altid vise følgene filmdata: navn, plakat, gennemsnitlige stjerne rating, rating fordeling, antal anmeldelser
- Info viser mere filmdata: Synopse, udgivelsesdato, genre, spilletid, aldersgrænse, instruktør, producer, stemmer og skuespillere
- Info skal kunne foldes sammen for at vise anmeldelser
- Brugeren skal kunne lave en ny anmeldelse
- Anmeldelsen er en form med titel, stjerne rating, og begrundelse
- Formen skal validere at alle felter er fyldt
- Når formen er godkendt tilføjes anmeldelsen til databasen
- Hver anmeldelse står i forkortet form, med kun rating og titel i en liste
- Brugerens egen anmeldelse står altid øverst
- Når brugeren vælger en anmeldelse, kan de se den bruger der skrev den, titel, rating, begrundelse og brugerkommentarer til anmeldelsen
- Brugeren kan lægge flere kommentarer under alle anmeldelser
Figur 1
Figur 2
Figur 3
Ikke-funktionelle krav
- Alt kommunikation mellem webapplikationen og databasen skal ske igennem en API.
- API'en skal være sit eget program, så den kan blive deployed på egen hånd, uden hjemmesiden
- Webapplikationen skal laves med brug af Razor
- Databasen skal lægges på en VM