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.