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