Skip to content

kristiania-pgr209-2022/pg209exam-Frodsand

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java CI with Maven

PG209 Backend programmering eksamen

Sjekkliste for innleveringen

  • Dere har lest eksamensteksten
  • Koden er sjekket inn på github.com/pg209-2022 repository
  • Dere har lastet opp en ZIP-fil lastet ned fra Github
  • Dere har committed kode med begge prosjektdeltagernes GitHub-konto (alternativt: README beskriver hvordan dere har jobbet)

README.md

  • Inneholder link til Azure Websites deployment
  • Inneholder en korrekt badge til GitHub Actions
  • Beskriver hva dere har løst utover minimum
  • Inneholder et diagram over databasemodellen

Koden

  • Oppfyller Java kodestandard med hensyn til indentering og navngiving
  • Er deployet korrekt til Azure Websites
  • Inneholder tester av HTTP og database-logikk
  • Bruker Flyway DB for å sette opp databasen
  • Skriver ut nyttige logmeldinger

Basisfunksjonalitet

  • Kan velge hvilken bruker vi skal opptre som
  • Viser eksisterende meldinger til brukeren
  • Lar brukeren opprette en ny melding
  • Lar brukeren svare på meldinger
  • For A: Kan endre navn og annen informasjon om bruker (Visar detta i tester)
  • For A: Meldingslisten viser navnet på avsender og mottakere

Kvalitet

  • Datamodellen er normalisert - dvs at for eksempel navnet på en meldingsavsender ligger i brukertallen, ikke i meldingstabellen
  • Når man henter informasjon fra flere tabellen brukes join, i stedet for 1-plus-N queries (et for hovedlisten og et per svar for tilleggsinformasjon)
  • Det finnes test for alle JAX-RS endpoints og alle DAO-er

Chat

Link to azure: https://pgr209-exam-2022-1009.azurewebsites.net/

Vår databasemodell:

I vår databasemodell har vi valgt å bruke tre tabeller:

  • Brukere har kolonnene id, username, email og phone_number
  • Chat har kolonnene id, sender_id, receiver_id og message_id
  • Meldinger har kolonnene id, message_body og subject

Chat-tabellen fungerer som en tråd mellom messages og user tabellene. En chat/tråd må ha 1 eller flere users. Users trenger ikke ha en chat/tråd, men kan ha flere chatter/tråder. Messages kan kun ha en chat/tråd, da vi har valgt at det ikke er mulig å sende gruppemeldinger. En chat/tråd trenger ikke ha en messages, men kan ha flere messages.

Vi har valgt å sette mest fokus på backend, fordi det er en eksamen i backend. Vår frontend er derfor veldig enkel med alle funksjoner på første side. Der kan du velge hvilken bruker du ønsker å representere. Deretter vises samtidig denne brukerens meldingshistorikk frem. Både meldinger sendt og mottatt av denne brkeren vises. Du kan også se hvem brukeren har mottatt meldinger fra. Etter det kan du velge hvem du vil sende en melding til, skrive inn et subject og en body. Klikk send for å send meldingen. Ønsker du å se meldingen du sendte, klikker du på brukeren du har sendt til (han er da en aktiv user), du finner meldingen hans under mottatte meldinger. Her kan du så, ved å velge den tidligere avsenderen som mottaker, svare på meldingen.

Vi har også implementert mer funksjonalitet, men valgt å vise dette gjennom tester og ikke i GUI.

I testene vil du se at det er mulig å:

  • Sende og motta meldinger -- test og frontend
  • Slette en melding -- I test - MessageDaoTest
  • Hente ut meldinger mellom to brukere -- I test --- ChatDaoTest og ChatServerTest
  • Hente ut melding basert på sender -- I test og frontend
  • Hente ut melding baser på mottaker -- I test og frontend
  • Hente ut meldinger etter emne -- I test --- MessageDaoTest
  • Opprette ny bruker -- I test --- UserDao og ChatServerTest
  • Hente ut sender og mottaker -- I test og frontend
  • Oppdatere informasjon om eksisterende bruker -- I test --- UserDaoTest og ChatServerTest

Samarbeidet under dette prosjektet har gått veldig bra. Vi har både jobbet sammen på skolen, på discord samtidig som vi deler skjerm eller hver for seg med ulike oppgaver. Vi har begge committed til Github fra begge Github-kontoene og brukt branching flittig for å unngå konflikter. Samtidig har vi vært flinke til å ta hverandre gjennom vår kode for at begge skal forstå hva den andre har gjort.

Funksjonalitet utover minimum

  • Kan endre informasjon om eksisterende bruker med PUT http method
  • Bruker lagrer i tillegg mobil nummer
  • Meldinger viser avsender og mottaker (gjort med join, vist i tester og på frontend)
  • meldinger kan slettes

About

pg209exam-Frodsand created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published