- Legg til databaseinfo i en pgr203.properties fil som skal ligge i root directory
- Bygg prosjektet ved å kjøre kommandoen: mvn package
- Naviger seg i terminalen til root mappen av prosjektet og start SurveyServer ved å kjøre kommandoen: java -jar target\exam-1.0-SNAPSHOT.jar
- Programme kan også kjøres direkte i main methoden som ligger i SurveyServer klassen
User tabellen og survey tabellen er knyttet sammen med questions tabellen. På /showAnswers.html har vi mulighet for å liste svarene i forhold til forskjellige spørreundersøkelser og users som har besvart de. Det er også mulighet for å liste alle svarene fra alle users på valgt spørreundersøkelse.
Ved opprettelse av nye spørsmål er det mulig å velge om spørsmålet skal besvares med options(radio buttons) eller slider.
- Terminerer while loop med break i readLine methoden for å fikse java heap feilmeldingen
- Mulighet for å legge til og slette eksisterende spørreundersøkelser
- Mulighet for å legge til eller velge eksisterende users når brukeren besvarer spørreundersøkelse
- Ved forandring av esisterende spørsmål, blir svarene som allerede er angit på spørsmålet som forandres slettet. (ingen vits å beholde svarene når spørsmål blir endret)
Viser hva som skjer på serveren når brukeren lister alle spørsmål
- Dere har lest eksamensteksten
- Dere har lastet opp en ZIP-fil med navn basert på navnet på deres Github repository
- Koden er sjekket inn på github.com/pgr203-2021-repository
- Dere har committed kode med begge prosjektdeltagernes GitHub konto (alternativt: README beskriver arbeidsform)
-
README.md
inneholder en korrekt link til Github Actions -
README.md
beskriver prosjektets funksjonalitet, hvordan man bygger det og hvordan man kjører det -
README.md
beskriver eventuell ekstra leveranse utover minimum -
README.md
inneholder et diagram som viser datamodellen
-
mvn package
bygger en executable jar-fil - Koden inneholder et godt sett med tester
-
java -jar target/...jar
(ettermvn package
) lar bruker legge til og liste ut data fra databasen via webgrensesnitt - Serveren leser HTML-filer fra JAR-filen slik at den ikke er avhengig av å kjøre i samme directory som kildekoden
- Programmet leser
dataSource.url
,dataSource.username
ogdataSource.password
frapgr203.properties
for å connecte til databasen - Programmet bruker Flywaydb for å sette opp databaseskjema
- Server skriver nyttige loggmeldinger, inkludert informasjon om hvilken URL den kjører på ved oppstart
- Programmet kan opprette spørsmål og lagrer disse i databasen (påkrevd for bestått)
- Programmet kan vise spørsmål (påkrevd for D)
- Programmet kan legge til alternativ for spørsmål (påkrevd for D)
- Programmet kan registrere svar på spørsmål (påkrevd for C)
- Programmet kan endre tittel og tekst på et spørsmål (påkrevd for B)
- Når brukeren utfører en POST hadde det vært fint å sende brukeren tilbake til dit de var før. Det krever at man svarer med response code 303 See other og headeren Location
- Når brukeren skriver inn en tekst på norsk må man passe på å få encoding riktig. Klarer dere å lage en med action=POST og encoding=UTF-8 som fungerer med norske tegn? Klarer dere å få æøå til å fungere i tester som gjør både POST og GET?
- Å opprette og liste spørsmål hadde vært logisk og REST-fult å gjøre med GET /api/questions og POST /api/questions. Klarer dere å endre måten dere hånderer controllers på slik at en GET og en POST request kan ha samme request target?
- Vi har sett på hvordan å bruke AbstractDao for å få felles kode for retrieve og list. Kan dere bruke felles kode i AbstractDao for å unngå duplisering av inserts og updates?
- Dersom brukeren går til http://localhost:8080 får man 404. Serveren burde i stedet returnere innholdet av index.html
- Kan dere lage noen diagrammer som illustrerer hvordan programmet deres virker?
- JDBC koden fra forelesningen har en feil ved retrieve dersom id ikke finnes. Kan dere rette denne?
- I forelesningen fikk vi en rar feil med CSS når vi hadde
<!DOCTYPE html>
. Grunnen til det er feil content-type. Klarer dere å fikse det slik at det fungerer å ha<!DOCTYPE html>
på starten av alle HTML-filer? - FARLIG: I løpet av kurset har HttpServer og tester fått funksjonalitet som ikke lenger er nødvendig. Klarer dere å fjerne alt som er overflødig nå uten å også fjerne kode som fortsatt har verdi? (Advarsel: Denne kan trekke ned dersom dere gjør det feil!)
- Avansert datamodell (mer enn 3 tabeller)
- Avansert funksjonalitet (skala på spørsmål, spørreundersøkelser)
- Rammeverk rundt Http-håndtering (en god HttpMessage class med HttpRequest og HttpResponse subtyper) som gjenspeiler RFC7230
- God bruk av Controller-pattern