Skip to content

freebattie/pg209exam-freebattie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java CI with Maven coverage

PG209 Backend programmering eksamen

Levert av:

  • Kandidat 1023
  • Kandidat 1014

Eksamensteksten er opp til tolkning om vi skal lage en post og/eller chat basert tjeneste. Kandidater i denne eksamensinnleveringen har drøftet og konkludert med å lage en chattetjeneste som er meget inspirert etter Discord sin meldingsstruktur.

Etter “innlogging” som er valg av bruker skal det vises opp en liste med chatter (en til en og gruppe-chatter) som bruker har tilgang til. En til en chatter viser brukernavn som tittel i stedet for egenvalgt tittel, mens gruppechatter viser sin gitte tittel.

Det er to typer timestamp i chattendene. Første er tidspunkt når meldingen blir sent. Den kommer å vise en mer utfyllende dato eksempler:

  • Today at 13:35
  • Yesterday at 15:52
  • 16 dec at 10:45
  • 01 jan 2021 at 16:32

Andre typen timestamp komme å følge en minimalistisk stil for å minimere støy rundt selve meldingene. Tidspunkt eksempler med enkel stil:

  • ~ 15 sec
  • ~ 20 min
  • ~ 3 days
  • ~ 2 weeks
  • ~ 4 months
  • ~ 2 years

Funksjonalitet utenfor beskrivelse:

  • Servlettens config benytter en multithreaded connection pool som gir ut en aktiv connect per reguest. Filteret er konfigurert til å logge alle innkommende reguest type og URL, og Respons kode sendt til klient.
  • Autodeploy til auzer sever med bruk av Github Actions
  • Serveren benytter GET, PUSH, PUT og DELETE
  • Redirect til forsiden ved bruk av ugyldig url
  • Implementert live logging på azure som lagrer til fil

Beskriv hvordan programmet skal testes, hvis lokalt:

  • Maskinen må ha docker og jdk 17 installert på forhånd!
  • Lag en fil med navn application.properties og baser innholde fra fil application.properties.template. Husk å sette eget passord
  • Kopier docker kommando fra template og database skal være klart.
  • Standard port er 8080, men kan endres igjennom fil Program
  • Bygg programmet med mvn package og kjør fil target/pgr209-exam-socialbuzz-1.0-SNAPSHOT.jar
  • Nås på url: http://127.0.1.1:8080/
  • OBS OBS OBS Dette er HTTP!!! Alt blir sent i klartekst, selv om du hoster lokalt. Ikke bruk relevant brukernavn og passord i denne applikasjonen!
  • Nettsiden skal inneholde flere brukere med en til en og gruppe chat med meldinger.
  • Mulighete til å lage ny bruker og endring av eldre.
  • Mulighet til å lage nye en til en og gruppe chatter med andre.

Bilder

alt text

ER-model for database for socialbuzz

alt text

Class-diagram fra java-classes i socialbuzz

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

oppdatering

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published