Kravspecifikation - jakobher/mindtracker GitHub Wiki

Kravspecifikation

1. Funktionella krav

1.1 Användarhantering

  • Användare ska kunna skapa konto med användarnamn och lösenord
  • Användare ska kunna logga in och logga ut
  • Användare ska kunna återställa glömt lösenord
  • Användare ska kunna ta bort sitt konto

1.2 Exponeringsmodul

  • Användare ska kunna skapa en personlig exponeringsstege
  • Användare ska kunna lägga till exponeringsövningar med detaljer (plats, datum, tid)
  • Användare ska kunna registrera förväntad ångestnivå före en övning (skala 0-10)
  • Användare ska kunna registrera faktisk ångestnivå efter en övning (skala 0-10)
  • Användare ska kunna markera övningar som slutförda
  • Användare ska kunna filtrera exponeringsövningar efter status (planerade/genomförda)
  • Användare ska kunna sortera exponeringsövningar efter datum eller ångestnivå
  • Användare ska kunna skapa övningar från mallar i exponeringsstegen
  • Användare ska kunna redigera mallar i exponeringsstegen
  • Användare ska kunna ta bort mallar från exponeringsstegen
  • Användare ska kunna redigera befintliga övningar
  • Användare ska kunna ta bort övningar
  • Användare ska kunna lägga till reflektioner efter genomförda övningar

3 Tankeutmanare

  • Användare ska kunna logga negativa tankar med datum och kontext
  • Användare ska kunna kategorisera tankar enligt vanliga tankefällor
  • Användare ska kunna dokumentera alternativa, mer balanserade tankesätt
  • Användare ska kunna se en lista över sina tankeutmaningar
  • Användare ska kunna redigera tidigare loggade tankar
  • Användare ska kunna ta bort tankar

4 Framstegsspårning

  • Systemet ska visa visualisering av ångestnivåer över tid
  • Systemet ska visa sammanställning av genomförda exponeringsövningar
  • Systemet ska visa statistik över genomförda övningar, inklusive genomsnittlig skillnad mellan förväntad och faktisk ångestnivå
  • Användare ska kunna filtrera statistik efter tidsperiod

Ickefunktionella produktkrav

2.1 Användbarhet

  • Applikationen ska ha ett intuitivt gränssnitt som kräver minimala instruktioner
  • Applikationen ska vara tillgänglig på mobila enheter (responsiv design)
  • Systemet ska ha tydliga felmeddelanden som guidar användaren rätt
  • Applikationen ska ha en "Kom igång"-guide för nya användare
  • Applikationen ska använda konsekvent design och interaktionsmönster

2 Prestanda

  • Applikationens sidor ska laddas inom 3 sekunder på en genomsnittlig internetanslutning
  • Användaråtgärder ska ge feedback inom 2 sekunder

2.3 Säkerhet

  • Användares lösenord ska lagras på ett säkert sätt
  • Inloggningsuppgifter ska skickas via säker anslutning (HTTPS)
  • Personliga uppgifter ska skyddas från obehörig åtkomst
  • Applikationen ska ha grundläggande skydd mot de vanligaste säkerhetsriskerna
  • Applikationen ska använda CSRF-skydd för formulär
  • Applikationen ska använda säkra cookies för sessionshantering

Organisationskrav (non-functional organizational requirements)

Krav kring hur du ska arbeta och hur utvecklingen ska ske. Exempel på krav kan vara programspråk, utvecklingsmiljö, och/eller vilka plattformar systemet ska köras/levereras på.

3.1 Versionshantering

Projektet använder Git för versionshantering via GitLab. För arbetsflöde används en förenklad version av "Feature Branch"-strategin där:

  • Huvudkoden hålls i main-branchen som alltid ska vara stabil
  • Ny funktionalitet utvecklas i separata feature-branches (t.ex. feature/tankeutmanare)
  • Merge requests används för att integrera ändringar från feature-branches till main

3.2 Kodstandard

Projektet följer Linnéuniversitetets officiella kodstandard genom att använda `@lnu/eslint-config` för ESLint. Detta säkerställer att koden följer en konsekvent stil och uppfyller universitetets riktlinjer för kodkvalitet.

3.3 Koddokumentation

Kod dokumenteras genomgående med JSDoc-kommentarer enligt LNU:s standard. Radkommentarer används vid behov.

4. Externa krav

4.1 Etiska krav

  • Applikationen ska tydligt kommunicera att den inte ersätter professionell behandling
  • Användardata ska behandlas konfidentiellt
  • Designen ska vara icke-stigmatiserande för personer med psykisk ohälsa
  • Applikationen ska använda inkluderande språk

2 Lagar & Standarder

  • Applikationen ska ta hänsyn till grundläggande principer i GDPR
  • Användare ska kunna ta bort sitt konto och tillhöran