Skip to content

kristiania-pgr209-2022/pg209exam-Fargekritt

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
  • 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

ArbeidsForm

Vi jobbet stort sett eksklusivt med parprogrammering. Der vi begge jobbet på en PC når vi jobbet var samlet fysisk, men når det ikke var mulig så delte vi skjerm over Discord. Det var en som gjorde meste parten av skrivingen(driver) mens andre holdt overblikket(navigator). Det var noen ganger vi jobbet på to forskjellige ting men fortsatt sammen enten fysisk eller over Discord

Funksjonelle Krav

Det er ikke mulig å refreshe reacten. Om du refesher så loader den bare. problemet er med reacten og om du går tilbake til frontpagen så virker det igjen. Reacten viser kanskje mer data en "nødvendig" men det er for å se at dataen kommer fram. Vi har krysset av hvilken punkter vi har fullført. vi har også muligheten til å lage nye brukere. vi har også lagt til timestamp meldingene på når de ble sendt. vi har også lagt til muligheten å legge til flere medlemmer i en tråden når den blir opprettet og i etterkant

    • Når man kommer til applikasjonen kan man velge hvilken bruker man skal representere fra et sett med brukere som derehar opprettet på forhånd i databasen
      • For full uttelling skal man kunne endre informasjon om en eksisterende bruker
      • For full uttelling må brukeren ha felter utover navn og emailadresse
    • Når man har valgt en bruker skal man kunne se alle meldingstråder der denne brukeren er sender eller mottaker (krav til E)
      • For full uttelling skal oversikten over meldingertråder inneholde navnet på alle mottakere for meldinger itråden
      • For full uttelling bør dere forhåndspopulere med noen meldingstråder
    • Når man har valgt en bruker kan man opprette en ny meldingstråd med mottaker. Meldingen skal kunne inneholde tittelog meldingstekst (krav til E)
      • For full uttelling må det være mulig å opprette en meldingstråd til med flere mottakere
      • For full uttelling må det meldingen inneholde flere felter enn tittel og meldingstekst
    • Når en bruker velger en meldingstråd skal de se alle meldinger i tråden
      • For full uttelling må backend gjøre en join mellom melding- og brukertabellen for å vise avsenders navn
    • Når en bruker velger en meldingstråd skal det være mulig å svare på meldingstråden
      • For full uttelling må svaret inneholde flere felter enn meldingstekst
      • For ekstra poeng: Registrer når en bruker har lest en melding og vis dette tidspunktet til andre brukere som kan semeldingen

Database

img.png

Plan

---- Konvertering og grunnmur på plass ----

  • Klone kode fra arbeidskrav som startingPoint
  • Modifisere koden slik at den bruker User
  • Lage startingPoint for DB i flyway migration fil
    • (EXTRA) lage test for å teste @manytoone relasjoner mellom Message og User
  • Lage UserEndPoint
  • lage tester for UserEndPoint.
  • trenger vi mer en GET test? Ja, vi gjorde det
  • lage ny UserEndPoint klasse
  • Lage @GET og POST
  • @Inject userDao
  • Kan vi bruke samme config på flere endPoints? Binde flere classer etter hverandre i ChatRoomConfig? Ja, det kunne vi! (* ̄3 ̄)╭
  • (EXTRA) abstrakt dao test ??
  • Slette alle referanser til Item i koden.
  • Endre ServeFrontPage test og react til å passe nytt prosject. (BASIC).
  • lage DAO og test for Message
  • lage DAO og test for Thread
  • lage DAO og test for ThreadMembers

---- Business Logic ----

  • Lage Abstrakt DAO test
  • Extra :
    • Email på bruker
    • Tittel på melding i tråd
    • vise tråd tittel på tråd

About

pg209exam-Fargekritt created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published