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. newprojekt_GDPR