Kravspecifikation - M0hammed-1brahim/frugalCompany GitHub Wiki
✅ - Implementerad
🔧 - Pågår - Delvis redo för release
⚠️ - Pågår - Initiering
❌ - Ej påbörjad
1. Funktionella krav (Frivilligt)
Inloggning krav
ID | Namn | Typ | Status | Prioritet | Beskrivning |
---|---|---|---|---|---|
LG1.1 | Skapa konto | Funktionell | ❌ | Medium | Användaren ska kunna skapa ett inloggningskonto med Användarnamn och Lösenord. |
LG1.2 | Spara inloggningsuppgifter | Funktionell | ❌ | Medium | Användarens inloggningsuppgifter ska kunna sparas i cookie för nästa inloggning. |
LG1.3 | Avregistrera konto | Funktionell | ❌ | Låg | Användaren ska kunna avregistrera kontot efter inloggningen. |
LG1.4 | Felmeddelande | Funktionell | ❌ | Låg | Användaren ska kunna se ett felmeddelande om inloggningsuppgifter är felaktiga (Användarnamn/Lösenord). |
Kund-vagn krav
ID | Namn | Typ | Status | Prioritet | Beskrivning |
---|---|---|---|---|---|
KV1.1 | Skicka produkt till kundvagn | Funktionell | ✅ | Hög | Tryckbara knappar i produkter som skickas till kund-vagn. |
KV1.2 | Visa kundvagn | Funktionell | ✅ | Hög | Kunna trycka i kund-vagn och se valda produkter. |
KV1.3 | Justera produktmängd | Funktionell | ✅ | Medium | Justera mängd av produkter för varje vald produkt i kund-vagn, kan ej vara negativt |
KV1.4 | Ta bort produkt från kundvagn | Funktionell | ✅ | Hög | Kunna ta bort ett eller flera valda produkter ur kund-vagn genom button eller justera mängd under 1 blir automatiskt bort taget. |
KV1.5 | Visa totalpris | Funktionell | ✅ | Hög | Kunna få se på totala pris av alla selekterade produkter inom kund-vagn. |
KV1.6 | Visa produktalternativ | Funktionell | ❌ | Låg | Visa upp ett eller flera alternativ i kund-vagn i samband med vald produkt. Produktförsäljning ökas. |
KV1.7 | Öppnar kundvagnen när man selekterar. | Funktionell | ✅ | Låg | Öppna kund-vagn för varje produkt selekterad genom add-cart funktion. |
KV1.8 | Produkt detaljer | Funktionell | ⚠️ | Låg | Öppna produkt detalj för varje produkt selekterad genom att vänster klicka på produkt. |
Användarvänlighet
ID | Namn | Typ | Status | Prioritet | Beskrivning |
---|---|---|---|---|---|
LY1.1 | Navigeringsmeny | Funktionell | ✅ | Medium | Länkade huvudsidor och undersidor inom webbsidans navigeringsmeny (inklusive logon). |
LY1.2 | Responsiv design | Funktionell | ✅ | Låg | Webbsidans layout ska automatiskt anpassas till olika enheter. |
LY1.3 | Tillgänglighet (WCAG) | Ickefunktionell | 🔧 Pågår | Hög | Knappar, kontraster, semantiska taggar ska uppfylla WCAG 2.1 AA. |
2. Ickefunktionella produktkrav (non-functional product requirements)
Säkerhet krav
ID | Namn | Typ | Status | Prioritet | Beskrivning |
---|---|---|---|---|---|
SK1.1 | Krypterade lösenord | Ickefunktionell | ❌ | Hög | Användarnas inloggningsuppgifter (lösenord) ska sparas krypterade i databasen. |
SK1.2 | Begränsad åtkomst till data | Ickefunktionell | ❌ | Hög | Endast inloggade användare ska kunna komma åt sina kundvagns- och orderdata. |
SK1.3 | Skydda produktbilder från obehörig åtkomst | Ickefunktionell | ❌ | Låg | Produktbilder ska vara skyddade mot obehörig åtkomst, så att de inte kan laddas ned direkt genom att manipulera URL:en. |
Databas krav
ID | Namn | Typ | Status | Prioritet | Beskrivning |
---|---|---|---|---|---|
DB-KV | DB integration med produkt | Ickefunktionell | ✅ | Hög | Produkter hämtas dynamiskt från SQL-databas via PHP |
Testbarhet och CI/CD
ID | Namn | Typ | Status | Prioritet | Beskrivning |
---|---|---|---|---|---|
CI1.1 | Automatiserade tester | Ickefunktionell | ✅ | Hög | PHPUnit + Jest för funktionalitet i frontend/backend. |
CI1.2 | Tillgänglighetstester | Ickefunktionell | ✅ | Hög | Lighthouse används för att säkerställa WCAG-täckning. |
CI1.3 | CI/CD Pipeline | Ickefunktionell | ✅ | Hög | Github Actions + Render deployment automatiserar leverans. |
3. 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
Beskriv din versionshanteringsstrategi och om, och i så fall vilket arbetsflöde du tänker använda.
3.2 Kodstandard
Frontend (JS, HTML, CSS):
ESLint används för JavaScript-standard
Inga inline-stilar används, allt sköts via style.css
Backend (PHP):
Variabelnamngivning sker i camelCase
Avsteg:
Vissa filer kan innehålla inline-queries för enklare struktur.
3.3 Koddokumentation
README-dokumentation beskriver systemets arkitektur och uppstart.
Inte implementerad än, mycket fokus på funktionalitetskrav: All kod innehåller beskrivande kommentarer för funktioner och block. Backend-funktioner dokumenteras med PHPDoc.
Exempel:
/**
* Handle add/update/remove logic for cart
* @param array $post
* @param array $session
* @return array
*/
function handleCartAction($post, &$session)....
4. Externa krav (non-functional external requirements)
4.1 Etiska krav
Projektet i nuvarande läge hanterar endast produktval i en lokal shopping-cart, lagrat i PHP-sessioner. Det förekommer inga känsliga personuppgifter eller spårning.
- Ingen fysisk eller känslomässig skada bör kunna uppstå
- Ingen miljöpåverkan eller samhällelig negativ inverkan
Uppfyller etiska kraven enligt kursens ramverk.
4.2 Lagar & Standarder
Projektet är testat för GDPR-kompatibilitet via tjänsten 2GDPR. Resultatet visar att inga överträdelser sker gällande:
- Datainsamling
- Cookies
- Databehandling
- Säker överföring till s.k. "adequate countries"
Verifiering utförd: 02.06.2025
✅ Resultatet visar att webbplatsen uppfyller GDPR-standarder.