Skip to content

kristiania-pgr209-2022/pg209exam-TobiasLiu1990

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java CI with Maven

PG209 Backend programming exam

Link to Azure Websites Deployment: https://pg209exam-sg-tl-tobia.azurewebsites.net/

Feature list:

  • Our chat is demonstrated on a single page (frontend).
    • Able to create a new user - page updates automatically to refresh.

    • List of all users in a drop-down menu.

      • Choose who to login as. Information about the current user will show above the menu.
    • After logging in you can:

      • Change user settings.
        • Full name: Must include at least 2 names (first name and last name).
        • E-mail: Must include an @ between name and domain (can have multiple names/domains). For example pgr.209@student.kristiania.no or hello@hello.com
        • Age: Must be over 0.
        • Color: Must input a real color.
          • Input control is made in the DAO (UserDao).
            • Does nothing if fields are empty.
            • Regex control for name and email.
            • Cant use a duplicate email.
    • See all conversations (message threads)

      • When selecting a conversation:
        • A box will appear to all participants (we chose to exclude the current user to show for him/herself since it felt redundant).
        • All messages will appear.
        • At the bottom, it is possible to reply to the conversation.
          • The message itself will appear directly. But to see your name and date of the message in the conversation, you have to refresh/change thread, for it to appear.
    • Create new conversation

      • To the right, it is possible to create a new conversation.
        • First you need to enter the conversation title (this generates the ID of the conversation that is used to add recipients in next part).
        • Then you can add recipients to the conversation.
        • Lastly, write a message for the conversation.
        • When a conversation is created, the page will refresh.
        • Everyone added can see and reply to the conversation.

Our final database UML-diagram ISeekYouDBDiagram

Our very rough design of how we planned for it to look like, which held pretty good. ![frontendDesign](resources/First fast sketch of chat app model.png)

Teamwork

We started with doing a lot of planning for how the project would look like. We planned out a very rough sketch that held all the way. The database UML-diagram was changed multiple times (we kept everything in resources on root).

Most work has been together either meeting up or on discord, doing pair programming. Only some minor work was planned and divided between us. Through the whole project, we have basically discussed everything with each other to avoid misunderstandings, so we knew how to proceed.

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

About

pg209exam-TobiasLiu1990 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published