Kravspecifikation - sofia-mnord/mediotech GitHub Wiki
Kravspecifikation
1. Funktionella krav
Admin (vårdpersonal):
FR1: Inloggning Som användare vill jag att systemet ska vara skyddat för obehöriga.
Användningsfall FR1
UC2 Logga in
Förvillkor: Inget
Postvillkor: Användaren loggas in och kan komma åt applikationen
Huvudscenario
- Användaren startar applikationen
- Användaren skriver in e-postadress och lösenord och loggar in
- Uppgifterna autentiseras och användaren loggas in.
Alternativt scenario 1
- 2a. Användaren skriver in en felaktig e-postadress
- Systemet visar ett felmeddelande och användaren loggas inte in.
- Gå till steg 2 i huvudscenariot.
Alternativt scenario 2
- 2a. Användaren skriver in ett felaktigt lösenord.
- Systemet visar ett felmeddelande och användaren loggas inte in.
- Gå till steg 2 i huvudscenariot.
Alternativt scenario 3
- 2a. Användaren lämnar fältet för e-postadress tomt.
- Systemet visar ett felmeddelande och användaren loggas inte in.
- Gå till steg 2 i huvudscenariot.
Alternativt scenario 4
- 2a. Användaren lämnar fältet för lösenord tomt.
- Systemet visar ett felmeddelande och användaren loggas inte in.
- Gå till steg 2 i huvudscenariot.
FR2: Skapa användare Skapa användare för ny personal via ett grafiskt gränssnitt
FR3: Lägga till apparater Lägga till nya apparater, via ett grafiskt gränssnitt, som blir tillgängliga för utlån
FR4: Logga ut Logga ut och byta användare
Användningsfall FR4
UC3 Logga ut
Förvillkor: Krav FR1 - Logga in måste vara implementerat och användaren måste vara inloggad.
Postvillkor: Användaren loggas ut.
Huvudscenario
- Startar när användaren vill logga ut.
- Användaren klickar på “Logga ut”-knappen.
- Användaren loggas ut och omdirigeras till inloggnings-sidan.
Alternativt scenario 1
- 3a. Användaren försöker komma åt applikationen igen utan att vara autentiserad.
- Användaren omdirigeras till inloggnings-sidan.
Applikationskrav:
FR5: Utlåning Som användare vill jag kunna registrera utlåning av utrustning
Användningsfall FR5
UC1 Registrera utlåning
Förvillkor: Krav FR1: Logga in måste vara implementerat och användaren måste vara inloggad.
Postvillkor: En utlåning sparas i databasen
Huvudscenario
- Startar när en användare vill spara utlåningsdata
- Systemet frågar efter patientens förnamn, efternamn, personnummer och telefonnummer, samt typ av undersökning, apparat-ID, utlåningsdatum, återlämningsdatum, personalens namn och frivillig kommentar.
- Användaren fyller i patientens förnamn, efternamn, personnummer och telefonnummer, samt typ av undersökning, apparat-ID, utlåningsdatum, återlämningsdatum, personalens namn och frivillig kommentar och trycker på bekräfta.
- En bekräftelse visas.
Alternativt scenario 1
- 3a. Användaren fyller inte i ett förnamn
- Systemet visar ett felmeddelande
- Gå till steg 2 i huvudscenariot
Alternativt scenario 2
- 3a. Användaren fyller inte i ett efternamn
- Systemet visar ett felmeddelande
- Gå till steg 2 i huvudscenariot
Alternativt scenario 3
- 3a. Användaren fyller inte i ett personnummer
- Systemet visar ett felmeddelande
- Gå till steg 2 i huvudscenariot
Alternativt scenario 4
- 3a. Användaren fyller i ett personnummer med fel format
- Systemet visar ett felmeddelande
- Gå till steg 2 i huvudscenariot
Alternativt scenario 5
- 3a. Användaren fyller inte i ett telefonnummer
- Systemet visar ett felmeddelande
- Gå till steg 2 i huvudscenariot
Alternativt scenario 6
- 3a. Användaren fyller i ett telefonnummer med fel format
- Systemet visar ett felmeddelande
- Gå till steg 2 i huvudscenariot
Alternativt scenario 7
- 3a. Användaren fyller inte i ett apparat-ID
- Systemet visar ett felmeddelande
- Gå till steg 2 i huvudscenariot
Alternativt scenario 8
- 3a. Användaren väljer datum för återlämning som är innan datumet för utlämning
- Systemet visar ett felmeddelande
- Gå till steg 2 i huvudscenariot
Alternativt scenario 9
- 3a. Användaren fyller inte i en personalsignatur
- Systemet visar ett felmeddelande
- Gå till steg 2 i huvudscenariot
Alternativt scenario 10
- 3a. Användaren fyller i samma information i formuläret två gånger
- Systemet visar ett felmeddelande
- Gå till steg 2 i huvudscenariot
FR6: Återlämning Som användare vill jag kunna registrera återlämnad utrustning.
Användningsfall FR6
UC4 Registrera återlämning
Förvillkor: Krav FR1 - Logga in måste vara implementerat och användaren måste vara inloggad.
Postvillkor: En utlåning raderas från databasen.
Huvudscenario
- Startar när en användare vill radera utlåningsdata.
- I systemet söker användaren fram det aktuella lånet med hjälp av apparat-ID.
- Systemet visar information om det aktuella lånet.
- Användaren raderar lånet från databasen.
- En bekräftelse visas.
Alternativt scenario 1
- 3a. Det finns inget aktuellt lån med det apparat-ID som söktes på.
- Systemet visar ett felmeddelande.
- Gå till steg 2 i huvudscenariot.
FR7: Översikt Som användare vill jag kunna se utlånad utrustning och när de förväntas komma tillbaka
Användningsfall FR7
UC5 Se utlåning i översikten
Förvillkor: Krav FR1 - Logga in måste vara implementerat och användaren måste vara inloggad. Krav FR5 - Utlåning måste vara implementerat och en utlåning måste finnas i databasen.
Postvillkor: En utlåning ses i översiktstabellen.
Huvudscenario
- Startar när en användare vill se ett lån.
- Användaren går in på översikt
- Systemet visar information om alla aktiva lån.
FR8: Bekräftelse Som användare vill jag att systemet ska skicka bekräftelse på utlån och återlämning till patient
2. Ickefunktionella produktkrav (non-functional product requirements)
- NFR1: Systemet ska logga ut inaktiv användare efter 10 minuter
- NFR2: Vårdpersonal ska kunna använda systemet efter en 30 minuters introduktion
- NFR3: Laddningstider ska vara max 2 sekunder för viktiga funktioner
3. Organisationskrav (non-functional organizational requirements)
- ORG1: Programspråk: JavaScript
- ORG2: Hosting: Firebase Hosting
- ORG3: Backend: Firebase (Firestore och Authentication)
3.1 Versionshantering
- ORG4: Användning av Git
- ORG5: Feature branches för nya funktioner
3.2 Kodstandard
- ORG6: Användning av kodstandard LNU JavaScript coding conventions
3.3 Koddokumentation
- ORG7: Inline-kommentarer vid komplicerad logik
- ORG8: Kommentarer i JSDoc
- ORG9: README.md med instruktioner och systemöversikt
4. Externa krav (non-functional external requirements)
4.1 Etiska krav
- EXT1: Systemet ska inte användas med riktiga patientuppgifter
- EXT2: Falsk e-post eller felaktiga telefonnummer kan leda till att bekräftelser når fel person
- EXT3: Applikationen ska kunna hantera fall där patient saknar e-post eller mobil
- EXT4: Systemet ska ge en varning vid utebliven bekräftelse
4.2 Lagar & Standarder
- EXT5: Applikationen kommer att simulera hantering av personuppgifter, men all data ska vara fiktiv
- EXT6: Inloggningsuppgifter lagras säkert via Firebase Authentication
- EXT7: Ingen lagring av personnummer eller verklig patientdata får ske, då detta skulle omfattas av GDPR och Patientdatalagen