- Heroku
- GitHub repository
- Ingen link til test rapport pga Github Actions gikk tom for minutter natten før innlevering.
- Anonyme brukere skal se nyhetsaker når de kommer til nettsiden. Legg inn noen nyhetssaker for å demonstrere
- 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
- *Har utført en forenkling på dette punktet når brukeren er innlogget. Fikk dessverre litt lite tid til å flytte knappene (med titlene) til sidebaren etter innlogging. Det var tiltenkt at dersom brukeren ikke er innlogget, får de kun se nyhetstitlene, og etter innlogging vil sidebaren ha klikkbare titler. *
- "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 "select", tittel "input" og tekst "textarea"
- Dersom noen allerede har publisert en nyhetsartikkel med samme tittel skal serveren sende HTTP status kode 400 og en
- 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
- Brukeren skal forhindres fra å sende inn en nyhetsartikkel som mangler kategori, tittel eller tekst
- En redaksjonell bruker skal kunne redigere en artikkel de selv har publisert
- Når en ny sak publiseres, skal alle brukerne få se den nye saken umiddelbart. Bruk websockets for å sende oppdateringer
- 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
- 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
- Jest med dokumentert testdekning
- 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
Finner dem i images-mappen på root (PG6301-exam-folder/pg6301-exam/images).
Jeg har lagt inn lite easter egg hvis du klarer å finne :)