Krav - idatt2106-v25-02/krisefikser GitHub Wiki
Krisefikser.no – Kravspesifikasjon
Dette dokumentet beskriver de funksjonelle og ikke-funksjonelle kravene til Krisefikser.no, en webapplikasjon som skal bidra til å øke egenberedskap blant norske innbyggere. Dokumentet er strukturert for onboarding av erfarne utviklere og fungerer som et autoritativt referansedokument for implementering og testing.
1. Teknisk oversikt
- Backend: Spring Boot (REST API)
- Frontend: SPA (Vue anbefalt, men annet rammeverk er tillatt etter enighet)
- Database: MySQL (lokal eller NTNU-server)
- Versjonskontroll: GitLab (
https://gitlab.idi.ntnu.no/idatt2106_2025_teamXX
) - Testkrav:
- Backend: Minimum 50 % dekningsgrad
- Frontend: Minimum 30 % dekningsgrad
- CI: GitLab CI med testkjøring og rapporter
- Browserstøtte: Chromium og Firefox
- Tilgjengelighet: WCAG 2.1 – minst prinsipp 1 (begripelig)
- Sikkerhet: Autentisering, autorisering, OWASP A03:2021-Injection-håndtering
2. Funksjonelle krav
Kravene er basert på brukerhistorier med tilhørende akseptansekriterier.
2.1 Ikke-innlogget bruker
Brukerhistorie: Se tilfluktsrom på kart
Som ikke-registrert bruker ønsker jeg å kunne se tilfluktsrom på et interaktivt kart slik at jeg raskt kan finne nærmeste trygge plass.
Akseptansekriterier:
- Bruker ser tilfluktsrom markert i et interaktivt kart
- Ikoner er forklarende og representativ for funksjonen
Brukerhistorie: Se kriseberørt område
Som bruker ønsker jeg å se hvilke områder som er berørt ved en krise, slik at jeg vet om jeg er i fare.
Akseptansekriterier:
- Kriseområde vises med fargekoder
- Brukerposisjon vises hvis stedsdeling er aktivert
- Kart oppdateres fortløpende
- Varsel gis hvis bruker berøres
Brukerhistorie: Registrere bruker
Som ny bruker ønsker jeg å registrere en konto for å få tilgang til avansert funksjonalitet.
Akseptansekriterier:
- Registrering krever gyldig e-post og passord
- Verifisering via e-postlenke
- ReCAPTCHA ved registrering
- Godkjenning av personvernerklæring
2.2 Registrert bruker
Brukerhistorie: Se beredskapslager
Som registrert bruker ønsker jeg oversikt over mitt beredskapslager, slik at jeg vet hva jeg har og hva jeg mangler.
Akseptansekriterier:
- Produkter er gruppert etter type
- Mengde og utløpsdato vises
- Lager deles av alle i husstanden
Brukerhistorie: Redigere beredskapslager
Som registrert bruker ønsker jeg å kunne legge til og fjerne varer fra lageret, samt oppdatere utløpsdato og mengde.
Akseptansekriterier:
- Bruker kan søke eller legge inn produkt manuelt
- Lager oppdateres for hele husstanden
- Endringer vises umiddelbart
Brukerhistorie: Se beredskapsgrad
Som registrert bruker ønsker jeg å se hvor lenge husholdningen klarer seg basert på lageret.
Akseptansekriterier:
- Grafisk fremstilling av dager, uker og timer
- Beregning er basert på registrerte varer
- Oppdateres dynamisk ved endringer
Brukerhistorie: Få lagerkontrollvarsler
Som registrert bruker ønsker jeg å få varsler om varer som må sjekkes, slik at jeg holder lageret oppdatert.
Akseptansekriterier:
- Varsel sendes én uke før utløpsdato
- Tilgjengelig i tekst, lyd og vibrasjon
- Knyttet til faktiske lagerdata
2.3 Admin-funksjoner
Brukerhistorie: Legge til posisjon i kart
Som admin ønsker jeg å opprette nye kartmarkører (tilfluktsrom, matstasjoner, osv.).
Akseptansekriterier:
- Admin klikker i kartet eller angir koordinat
- Kan legge inn type, beskrivelse og åpningstider
- Visning skjer umiddelbart etter lagring
- Kun admin har tilgang til redigering
Brukerhistorie: Registrere krisehendelser
Som admin ønsker jeg å registrere og oppdatere hendelser, inkludert krisenivå og posisjon.
Akseptansekriterier:
- Hendelse må ha navn, beskrivelse, krisenivå og posisjon
- Kan oppdateres eller slettes
- Brukere i nærheten får varsling
3. Ikke-funksjonelle krav
- Testbarhet: Backend ≥ 50 %, frontend ≥ 30 %
- Tilgjengelighet: WCAG 2.1 – begripelighet
- Sikkerhet: Autentisering og autorisering, samt OWASP A03:2021
- Persistens: MySQL, initialisert med eksempeldata
- Plattform: Web SPA, må fungere i Chromium og Firefox
- Dokumentasjon: README, WIKI, teststrategi
Referansedokument
Denne kravspesifikasjonen er basert på
Visjonsdokument 2025 - final.pdf.
Se denne filen for full kontekst og originale brukerhistorier og mål.