Skip to content

NOVA-college-Haarlem/project-9-webshop

Repository files navigation

Webshop

1. Bestellingbeheersysteem

Gebruikersverhaal 1: Als klant wil ik meerdere producten kunnen bestellen, zodat ik items uit de winkel kan kopen.

  • Ik kan meerdere producten aan mijn bestelling toevoegen
  • Ik kan hoeveelheden voor elk product specificeren
  • Ik kan mijn bestelling bekijken voordat ik bevestig
  • Ik ontvang een bestelbevestiging met details

Gebruikersverhaal 2: Als winkelbeheerder wil ik klantenbestellingen kunnen beheren, zodat ik deze efficiënt kan verwerken.

  • Ik kan een lijst van alle bestellingen bekijken
  • Ik kan de status van een bestelling bijwerken (in behandeling, in verwerking, verzonden, afgeleverd, geannuleerd)
  • Ik kan bestelgegevens bekijken, inclusief klantinformatie en bestelde producten
  • Ik kan facturen genereren voor bestellingen

2. Gebruikersrollen en Rechten

Gebruikersverhaal 1: Als winkeleigenaar wil ik verschillende gebruikersrollen met specifieke rechten kunnen maken, zodat ik verantwoordelijkheden veilig kan delegeren.

  • Ik kan rollen aanmaken (beheerder, manager, medewerker, klant)
  • Ik kan specifieke rechten toewijzen aan elke rol
  • Ik kan rollen bewerken en verwijderen
  • Ik kan een lijst van gebruikers met hun toegewezen rollen bekijken

Gebruikersverhaal 2: Als winkelbeheerder wil ik rollen aan gebruikers kunnen toewijzen, zodat ze passende toegang tot het systeem hebben.

  • Ik kan één of meer rollen toewijzen aan elke gebruiker
  • Ik kan rollen van gebruikers intrekken
  • Ik kan zien welke rechten een gebruiker heeft op basis van hun rollen
  • Ik kan de toegang van een gebruiker tijdelijk opschorten zonder hun account te verwijderen

3. Productbeoordelingen en Ratings

Gebruikersverhaal 1: Als klant wil ik beoordelingen en ratings achterlaten voor producten die ik heb gekocht, zodat ik mijn ervaring met anderen kan delen.

  • Ik kan een product beoordelen op een schaal (bijv. 1-5 sterren)
  • Ik kan een gedetailleerde beoordeling schrijven
  • Ik kan mijn eigen beoordelingen bewerken of verwijderen
  • Ik kan foto's uploaden bij mijn beoordeling

Gebruikersverhaal 2: Als winkelbeheerder wil ik productbeoordelingen kunnen modereren, zodat ik kwaliteitsinhoud kan handhaven.

  • Ik kan beoordelingen goedkeuren of afwijzen voordat ze worden gepubliceerd
  • Ik kan ongepaste inhoud bewerken of verwijderen
  • Ik kan reageren op klantbeoordelingen
  • Ik kan nuttige beoordelingen prominent weergeven

4. Voorraadbeheer

Gebruikersverhaal 1: Als voorraadmanager wil ik de voorraadniveaus van producten bijhouden, zodat ik een passende voorraad kan handhaven.

  • Ik kan de huidige voorraadniveaus voor alle producten bekijken
  • Ik kan voorraadhoeveelheden handmatig bijwerken
  • Ik kan drempels voor lage voorraad instellen voor waarschuwingen
  • Ik kan een geschiedenis van voorraadwijzigingen zien

Gebruikersverhaal 2: Als winkelbeheerder wil ik dat het systeem de voorraad automatisch bijwerkt wanneer bestellingen worden geplaatst, zodat voorraadniveaus nauwkeurig blijven.

  • Voorraadniveaus verminderen automatisch wanneer bestellingen worden geplaatst
  • Ik ontvang meldingen wanneer producten de drempel voor lage voorraad bereiken
  • Ik kan voorraadrapportages genereren
  • Ik kan producten beheren die niet op voorraad zijn (verbergen of weergeven als "niet op voorraad")

5. Korting- en Couponsysteem

Gebruikersverhaal 1: Als marketingmanager wil ik kortingsbonnen kunnen maken, zodat ik promotiecampagnes kan uitvoeren.

  • Ik kan kortingsbonnen maken met specifieke kortingsbedragen of percentages
  • Ik kan begin- en einddatums instellen voor de geldigheid van de bon
  • Ik kan het gebruik van bonnen beperken (eenmalig per klant, minimale bestelwaarde)
  • Ik kan het gebruik van kortingsbonnen en de effectiviteit ervan bijhouden

Gebruikersverhaal 2: Als klant wil ik kortingsbonnen kunnen toepassen op mijn bestelling, zodat ik geld kan besparen op mijn aankopen.

  • Ik kan een boncode invoeren tijdens het afrekenen
  • Ik kan de toegepaste korting zien op mijn besteltotaal
  • Ik ontvang een foutmelding als de bon ongeldig of verlopen is
  • Ik kan een bon verwijderen als ik van gedachten verander

6. Winkelwagenfunctionaliteit

Gebruikersverhaal 1: Als klant wil ik producten aan mijn winkelwagen kunnen toevoegen, zodat ik meerdere items tegelijk kan kopen.

  • Ik kan producten aan mijn winkelwagen toevoegen vanuit productlijsten of detailpagina's
  • Ik kan hoeveelheden van items in mijn winkelwagen aanpassen
  • Ik kan items uit mijn winkelwagen verwijderen
  • Mijn winkelwagen blijft behouden, zelfs als ik de site verlaat en later terugkeer

Gebruikersverhaal 2: Als klant wil ik een overzicht van mijn winkelwagen kunnen zien, zodat ik mijn selecties kan bekijken voordat ik afrek.

  • Ik kan de totale kosten van alle items in mijn winkelwagen zien
  • Ik kan individuele productdetails zien (prijs, hoeveelheid, subtotaal)
  • Ik kan geschatte verzendkosten zien
  • Ik kan direct naar de kassa gaan vanaf mijn winkelwagen

7. Productvarianten

Gebruikersverhaal 1: Als winkelbeheerder wil ik productvarianten kunnen maken, zodat ik verschillende opties voor hetzelfde product kan aanbieden.

  • Ik kan verschillende attributen definiëren (maat, kleur, materiaal)
  • Ik kan combinaties van deze attributen maken als varianten
  • Ik kan verschillende prijzen en voorraadniveaus instellen voor elke variant
  • Ik kan afbeeldingen uploaden die specifiek zijn voor elke variant

Gebruikersverhaal 2: Als klant wil ik uit beschikbare productvarianten kunnen kiezen, zodat ik precies het item kan kopen dat ik wil.

  • Ik kan alle beschikbare varianten voor een product bekijken
  • Ik kan combinaties van attributen selecteren (bijv. maat en kleur)
  • Ik kan prijzen en beschikbaarheid zien die specifiek zijn voor mijn geselecteerde variant
  • Ik kan gemakkelijk tussen varianten schakelen om ze te vergelijken

8. Klantadresboek

Gebruikersverhaal 1: Als klant wil ik meerdere adressen in mijn account kunnen opslaan, zodat ik ze niet opnieuw hoef in te voeren voor toekomstige aankopen.

  • Ik kan adressen toevoegen, bewerken en verwijderen
  • Ik kan standaard verzend- en factuuradres aanwijzen
  • Ik kan elk adres een bijnaam geven voor eenvoudige identificatie
  • Ik kan kiezen uit mijn opgeslagen adressen tijdens het afrekenen

Gebruikersverhaal 2: Als klant wil ik verschillende verzend- en factuuradressen kunnen gebruiken, zodat ik cadeaus rechtstreeks naar ontvangers kan sturen.

  • Ik kan verschillende adressen selecteren voor verzending en facturering
  • Ik kan een nieuw adres toevoegen tijdens het afrekenproces
  • Ik kan ervoor kiezen om nieuwe adressen op te slaan in mijn adresboek
  • Ik kan cadeauboodschappen toevoegen wanneer ik naar een ander adres dan mijn eigen verzend

9. Betalingsgateway-integratie

Gebruikersverhaal 1: Als klant wil ik voor mijn bestelling kunnen betalen met verschillende betaalmethoden, zodat ik de meest handige optie voor mij kan kiezen.

  • Ik kan betalen met credit/debit kaarten
  • Ik kan alternatieve betaalmethoden gebruiken (PayPal, etc.)
  • Ik kan duidelijke bevestiging van betaling zien
  • Mijn betalingsgegevens worden veilig verwerkt

Gebruikersverhaal 2: Als winkelbeheerder wil ik betalingsinstellingen kunnen beheren, zodat ik passende opties aan klanten kan aanbieden.

  • Ik kan verschillende betaalmethoden in-/uitschakelen
  • Ik kan de geschiedenis van betalingstransacties bekijken
  • Ik kan indien nodig terugbetalingen verwerken
  • Ik kan instellingen voor betalingsgateways configureren

10. Verlanglijstfunctie

Gebruikersverhaal 1: Als klant wil ik producten kunnen opslaan in mijn verlanglijst, zodat ik ze kan onthouden voor toekomstige aankoop.

  • Ik kan producten aan mijn verlanglijst toevoegen vanaf productpagina's
  • Ik kan alle items in mijn verlanglijst bekijken
  • Ik kan items uit mijn verlanglijst verwijderen
  • Ik kan items van mijn verlanglijst direct naar mijn winkelwagen verplaatsen

Gebruikersverhaal 2: Als klant wil ik mijn verlanglijst met anderen kunnen delen, zodat ze kunnen zien waarin ik geïnteresseerd ben.

  • Ik kan een deelbare link naar mijn verlanglijst genereren
  • Ik kan mijn verlanglijst naar iemand e-mailen
  • Ik kan mijn verlanglijst openbaar of privé instellen
  • Ik kan meerdere benoemde verlanglijsten maken voor verschillende doeleinden

11. Productafbeeldingsgalerij

Gebruikersverhaal 1: Als winkelbeheerder wil ik meerdere afbeeldingen voor elk product kunnen uploaden, zodat klanten producten vanuit verschillende hoeken kunnen zien.

  • Ik kan meerdere afbeeldingen voor elk product uploaden
  • Ik kan de volgorde van afbeeldingen rangschikken
  • Ik kan een primaire afbeelding instellen voor productlijsten
  • Ik kan afbeeldingen verwijderen wanneer nodig

Gebruikersverhaal 2: Als klant wil ik productafbeeldingen in een galerij kunnen bekijken, zodat ik het product in detail kan onderzoeken.

  • Ik kan miniaturen van alle productafbeeldingen zien
  • Ik kan op miniaturen klikken om grotere afbeeldingen te bekijken
  • Ik kan inzoomen op afbeeldingen om details te zien
  • Ik kan door afbeeldingen navigeren in een diavoorstellingsformaat

12. Categoriehiërarchie

Gebruikersverhaal 1: Als winkelbeheerder wil ik producten in hiërarchische categorieën kunnen organiseren, zodat ze logisch gestructureerd zijn.

  • Ik kan hoofdcategorieën en subcategorieën maken
  • Ik kan categorieën binnen de hiërarchie verplaatsen
  • Ik kan producten aan meerdere categorieën toewijzen
  • Ik kan categorieën bewerken en verwijderen

Gebruikersverhaal 2: Als klant wil ik producten per categorie kunnen bekijken, zodat ik gemakkelijk kan vinden wat ik zoek.

  • Ik kan een navigatiemenu zien met categorieën en subcategorieën
  • Ik kan producten binnen een categorie filteren
  • Ik kan kruimelpadnavigatie zien die mijn locatie in de categoriehiërarchie toont
  • Ik kan het aantal producten in elke categorie zien

13. Productzoeken en Filteren

Gebruikersverhaal 1: Als klant wil ik naar producten kunnen zoeken, zodat ik snel kan vinden wat ik zoek.

  • Ik kan zoeken op productnaam, beschrijving of SKU
  • Ik krijg relevante zoekresultaten met gemarkeerde overeenkomende termen
  • Ik kan voorgestelde zoektermen zien terwijl ik typ
  • Ik ontvang nuttige suggesties als mijn zoekopdracht geen resultaten oplevert

Gebruikersverhaal 2: Als klant wil ik zoekresultaten kunnen filteren, zodat ik kan verfijnen naar producten die aan mijn specifieke criteria voldoen.

  • Ik kan producten filteren op prijsbereik
  • Ik kan filteren op categorie, merk of andere attributen
  • Ik kan resultaten sorteren op relevantie, prijs, nieuwheid of populariteit
  • Ik kan meerdere filters combineren om mijn zoekopdracht te verfijnen

14. Gebruikersmeldingen

Gebruikersverhaal 1: Als klant wil ik meldingen over mijn bestellingen ontvangen, zodat ik hun huidige status ken.

  • Ik ontvang e-mailmeldingen wanneer mijn bestelstatus verandert
  • Ik kan meldingen zien binnen mijn accountdashboard
  • Ik kan meldingen als gelezen markeren
  • Ik kan kiezen welke soorten meldingen ik ontvang

Gebruikersverhaal 2: Als winkelbeheerder wil ik meldingen naar gebruikers kunnen sturen, zodat ik belangrijke informatie kan communiceren.

  • Ik kan individuele meldingen naar specifieke gebruikers sturen
  • Ik kan bulkmeldingen naar groepen gebruikers sturen
  • Ik kan meldingssjablonen maken voor veelvoorkomende berichten
  • Ik kan zien of gebruikers hun meldingen hebben gelezen

15. Producttags en Attributen

Gebruikersverhaal 1: Als winkelbeheerder wil ik tags en attributen aan producten kunnen toevoegen, zodat ze effectief kunnen worden gecategoriseerd en gefilterd.

  • Ik kan productattributen maken en beheren (merk, materiaal, functies)
  • Ik kan tags aan producten toewijzen voor aanvullende categorisatie
  • Ik kan attributensets maken voor verschillende producttypen
  • Ik kan attributen filterbaar of niet-filterbaar maken

Gebruikersverhaal 2: Als klant wil ik producten op hun attributen kunnen filteren, zodat ik producten met specifieke kenmerken kan vinden.

  • Ik kan beschikbare filteropties zien op basis van productattributen
  • Ik kan meerdere filterwaarden selecteren voor elk attribuut
  • Ik kan zien welke filters momenteel zijn toegepast
  • Ik kan filters afzonderlijk of allemaal tegelijk wissen

16. Klantenondersteuningstickets

Gebruikersverhaal 1: Als klant wil ik ondersteuningstickets kunnen aanmaken, zodat ik hulp kan krijgen bij problemen of vragen.

  • Ik kan een nieuw ondersteuningsticket aanmaken vanuit mijn account
  • Ik kan het type probleem en de prioriteit specificeren
  • Ik kan bestanden (screenshots, bonnetjes) aan mijn ticket toevoegen
  • Ik kan de status en geschiedenis van mijn tickets bekijken

Gebruikersverhaal 2: Als ondersteuningsmedewerker wil ik klantentickets kunnen beheren, zodat ik tijdige hulp kan bieden.

  • Ik kan alle open tickets en hun prioriteiten bekijken
  • Ik kan tickets toewijzen aan specifieke teamleden
  • Ik kan ticketstatus bijwerken en interne notities toevoegen
  • Ik kan met klanten communiceren via het ticketsysteem

17. Productvergelijking

Gebruikersverhaal 1: Als klant wil ik meerdere producten naast elkaar kunnen vergelijken, zodat ik een geïnformeerde aankoopbeslissing kan nemen.

  • Ik kan producten toevoegen aan een vergelijkingslijst
  • Ik kan producten naast elkaar bekijken met hun functies en specificaties
  • Ik kan zien welke functies verschillen tussen producten
  • Ik kan producten vanuit de vergelijking direct aan mijn winkelwagen toevoegen

Gebruikersverhaal 2: Als winkelbeheerder wil ik kunnen beheren welke productattributen vergelijkbaar zijn, zodat vergelijkingen zinvol zijn.

  • Ik kan selecteren welke attributen in productvergelijkingen worden weergegeven
  • Ik kan attributen organiseren in groepen (specificaties, functies, prijzen)
  • Ik kan belangrijke verschillen tussen vergeleken producten benadrukken
  • Ik kan een maximum aantal producten instellen dat tegelijkertijd kan worden vergeleken

18. Recent Bekeken Producten

Gebruikersverhaal 1: Als klant wil ik een lijst kunnen zien van producten die ik onlangs heb bekeken, zodat ik ze gemakkelijk opnieuw kan vinden.

  • Ik kan de laatste producten zien die ik heb bekeken
  • Ik kan op elk recent bekeken product klikken om terug te keren naar de pagina
  • Mijn recent bekeken producten blijven behouden tussen browsersessies
  • Ik kan items van mijn recent bekeken lijst verwijderen

Gebruikersverhaal 2: Als winkelbeheerder wil ik gepersonaliseerde productaanbevelingen kunnen weergeven op basis van kijkgeschiedenis, zodat ik de verkoop kan verhogen.

  • Het systeem toont gerelateerde producten op basis van kijkgeschiedenis
  • Ik kan configureren hoeveel aanbevelingen worden getoond
  • Ik kan regels instellen voor het genereren van aanbevelingen
  • Ik kan statistieken bekijken over de effectiviteit van aanbevelingen

19. Winkelzoeker

Gebruikersverhaal 1: Als klant wil ik fysieke winkellocaties kunnen vinden, zodat ik persoonlijk kan bezoeken.

  • Ik kan naar winkels zoeken op postcode of stad
  • Ik kan winkels op een kaart bekijken
  • Ik kan winkeldetails zien (adres, openingstijden, telefoonnummer)
  • Ik kan een routebeschrijving naar een winkel krijgen

Gebruikersverhaal 2: Als winkelbeheerder wil ik informatie over winkellocaties kunnen beheren, zodat klanten nauwkeurige details hebben.

  • Ik kan winkellocaties toevoegen, bewerken en verwijderen
  • Ik kan openingstijden bijwerken, inclusief speciale feestdagopeningstijden
  • Ik kan winkelspecifieke informatie toevoegen (aangeboden diensten, evenementen in de winkel)
  • Ik kan winkels indien nodig als tijdelijk gesloten markeren

20. Productbundels

Gebruikersverhaal 1: Als winkelbeheerder wil ik productbundels kunnen maken, zodat ik pakketdeals aan klanten kan aanbieden.

  • Ik kan meerdere producten groeperen in een bundel
  • Ik kan een speciale prijs voor de bundel instellen
  • Ik kan bepaalde producten in de bundel optioneel maken
  • Ik kan minimum- en maximumhoeveelheden instellen voor gebundelde items

Gebruikersverhaal 2: Als klant wil ik productbundels kunnen kopen, zodat ik geld kan besparen in vergelijking met het apart kopen van items.

  • Ik kan zien welke producten in een bundel zijn opgenomen
  • Ik kan zien hoeveel ik bespaar door de bundel te kopen
  • Ik kan bepaalde aspecten van de bundel aanpassen als dat is toegestaan
  • Ik kan de hele bundel met één klik aan mijn winkelwagen toevoegen

Core ERD:

Shows the fundamental relationships between users, products, orders, and roles

erDiagram
    User ||--o{ Order : places
    User ||--o{ Address : has
    User ||--o{ Review : writes
    User }|--o{ Role : has
    
    Role }|--o{ Permission : includes
    
    Product ||--o{ OrderItem : contains
    Product ||--o{ ProductVariant : has
    Product ||--o{ Review : receives
    Product }|--o{ Category : belongs_to
    
    Order ||--o{ OrderItem : contains
    Order ||--o{ OrderStatus : tracks
    
    ProductVariant ||--o{ StockLevel : has
    
    Category }o--o{ Category : has_parent
Loading

E-Commerce ERD:

Focuses on shopping features like cart, wishlist, and payment processing

    erDiagram
    User ||--o{ CartItem : has
    User ||--o{ Wishlist : owns
    
    Product ||--o{ CartItem : added_to
    Product ||--o{ WishlistItem : saved_in
    Product ||--o{ ProductImage : displays
    
    Wishlist ||--o{ WishlistItem : contains
    
    Order }o--o{ Coupon : applies
    Order ||--o{ PaymentTransaction : processes
    
    Product }o--o{ ProductBundle : part_of
    ProductBundle ||--o{ BundleItem : consists_of
Loading

Customer Service ERD:

Displays service-related entities like support tickets, notifications and store locations

erDiagram
    User ||--o{ SupportTicket : creates
    User ||--o{ Notification : receives
    User ||--o{ RecentlyViewed : tracks
    
    Product ||--o{ RecentlyViewed : appears_in
    Product }o--o{ Tag : has
    Product }o--o{ Attribute : has
    
    SupportTicket ||--o{ TicketMessage : contains
    SupportTicket }o--|| SupportAgent : assigned_to
    
    Store ||--o{ StoreHours : schedules
Loading

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages