Skip to content

kristiania-pg6301-2022/pgr6301-exam-Velpre

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PG6301 eksamen

image

Funksjonelle krav

  • Anonyme brukere skal se nyhetsaker når de kommer til nettsiden. Legg inn noen nyhetssaker for å demonstrere
  • Når en ny sak publiseres, skal alle brukerne få se den nye saken umiddelbart. Bruk websockets for å sende oppdateringer
  • Brukere kan logge seg inn. Det anbefales at du implementerer at brukerne logger seg inn med Google, men andre mekanismer er også akseptabelt
  • En bruker som er logget inn kan se på sin profilside (userinfo fra Google)
  • Brukere skal forbli logget inn når de refresher websiden
  • En bruker som er logget inn kan klikke på en nyhetssak for å se detaljene om nyhetssaken. Detaljene skal inkludere en nyhetskategori, overskrift, tekst og navn på den som publiserte den
  • "Redaksjonelle brukere" kan logge seg inn med Active Directory. Det må fungere å logge seg inn med en Active Directory på skolens AD ( domain_hint=egms.no )
  • Redaksjonelle brukere kan publisere nye nyhetsartikler
  • Nyhetsartikkel skal inneholde en kategori valgt fra en nedtrekksliste ( ), tittel ( ) og tekst ( <textarea> )
  • Dersom noen allerede har publisert en nyhetsartikkel med samme tittel skal serveren sende HTTP status kode 400 og en feilmelding
    • Logfører dette på clienten i konsollen. Det er bug i browseren og selv om article ikke blir lagt til i DB dukker den opp på nettsiden på grunn av at websocket registrerer den feil. Når siden refreshes ser man at article ikke ble lagt inn i DB.
  • Brukeren skal forhindres fra å sende inn en nyhetsartikkel som mangler kategori, tittel eller tekst * Consollen i browseren viser en feilmelding rundt dette, og foreslår noe som ikke kan brukes. Løsningen som ble brukt i koden fungerer som den skal, men den feilmeldingen i konsollen dukker opp uansett. Jeg vet at det finnes biblioteker for håndtering av form validation men har ikke hatt tid for å sette meg i det for dette prosjektet.
  • En redaksjonell bruker skal kunne redigere en artikkel de selv har publisert
    • Dette har jeg ikke rukket. Ser for meg at det kunne enkelt løses ved å sammenligne user.name med author på article. Kunne mappe over articles som ble publisert av den useren som er logget inn og liste bare de articles som matcher søke sånn at brukeren får mulighet å bare endre de articles som han selv har publisert. Men rakk ikke å implementere det.
  • * Alle feil fra serves skal presenteres til bruker på en pen måte, med mulighet for brukeren til å prøve igjen

Bør-krav til teknisk løsning

  • *Brukeren ser kun menyvalg som de har tilgang til
  • *Brukere som går til en side de ikke har tilgang til blir bedt om å logge inn
  • *Brukere bør alltid se listen over artikler når de navigerer seg rundt på sidene * Dette ser de nesten alltid. Det er bare endrings funksjonaliteten som er på egen side.

Må-krav til teknisk løsning

  • *Besvarelsen skal inneholde en README-fil med link til Heroku og test coverage
  • *npm start skal starte server og klient. Concurrently og parcel anbefales
  • *npm test skal kjøre tester. Testene skal ikke feile
  • *Koden skal ha konsistent formattering. Prettier og Husky anbefales
  • *Nettsidene skal ha god layout med CSS Grid (Holy Grail layout) og horisontal navigasjonsmeny. Brukeren må kunne navigere overalt uten å bruke "back" eller redigere URL
  • *Serveren validerer at brukeren er logget inn
  • *Innleveringen skal være i form av en ZIP-fil. Maks størrelse på fila er 1MB
  • *Artikler skal lagres i MongoDB
  • *Applikasjonen skal deployes til Heroku
  • *Testene skal kjøre på Github Actions

Egenutfylling av tekniske krav

  • Oppsett av package.json, parcel, express, prettier
  • React Router
  • Express app
  • Kommunikasjon mellom frontend (React) og backend (Express)
  • Deployment til Heroku
  • Bruk av MongoDB
  • OpenID Connect
  • Web Sockets
  • Jest med dokumentert testdekning
    • det ble for lite tid på slutten for å kunne rekke flere tester. Hadde nok klart å teste update og delite på serveren og også skrive flere tester for clienten men det ble for lite tid

About

pgr6301-exam-Velpre created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published