Epic Us Backlog - ZosiscoIV/Dev-Web-2024 GitHub Wiki

Résumé coaching 2b

+ Les utilisateurs de l'application sont identifiés et présentés dans le Wiki dans le backlog, éventuellement en utilisant des personas. 
+ Les EPIC(regroupement logique de fonctionnalités) sont définies et décrites pour le projet, un EPIC par étudiant. 
+ Les User stories des EPIC sont listées (pas encore le détail). 
+ Les EPICS s'accompagnent de maquettes pour comprendre l'application visée.
+ Le groupe a défini où il rédigera son Backlog, soit la liste des user stories. Si c'est dans un outil en dehors du wiki, il donne le lien.

1. Liste des utilisateurs

  • Administrateur : Didier, le gérant des magasins

  • Client : La clientèle qui veux acheter des produits

2. EPICs

  • EPIC-001 - Gestion du stock : Permet d'afficher les différents produits présents dans le stock, gérer le stock
  • EPIC-002 - Gestion du panier : Permet à l'utilisateur de rechercher, ajouter à ses favoris, ajouter à son panier, voir son panier
  • EPIC-003 - Gestion des produits : Tout ce qui touche aux produits, de la recherche et le triage à l'ajout au panier et/ou aux favoris.
  • EPIC-004 - Gestion des comptes : Créer, connecter et gérer un compte utilisateur

EPIC-001 - Gestion du stock

Description

Cette fonctionnalité permet au gérant de gérer les produits disponibles dans le magasin et d’obtenir une vision claire de l’état des articles en temps réel. Il pourra ajouter de nouveaux produits, en supprimer ou les marquer comme hors stock. Des alertes seront envoyées lorsque la quantité est inférieure à un seuil (5 pièces).

Objectifs

  • Permettre au gérant d’accéder rapidement à une liste complète du stock
  • Offrir la possibilité d’ajouter, modifier et rendre indisponible un produit
  • Gérer les statuts des produits (en stock, faible stock, hors stock)
  • Afficher la date de réapprovisionnement prévue des produits hors stock
  • Émettre une alerte automatique lorsque le stock atteint un seuil (5 pièces)

Critères d’acceptation :

  • Le gérant peut consulter la liste des produits en stock en un clic
  • Un produit peut être ajouté, modifié, indisponible ou mis hors stock via une interface dédiée
  • Les produits hors stock sont clairement identifiables
  • Une notification est envoyée lorsque le stock atteint 5 unités
  • Une date de réapprovisionnement, de fin de mise en vente peut être ajoutée pour chaque produit

Maquette :

image image


EPIC-002 - Gestion du Panier d'Achat

Description

Cette fonctionnalité permet aux utilisateurs de sélectionner et de gérer les produits qu'ils souhaitent acheter.
Elle inclut l'ajout, la modification, la suppression d'articles dans le panier, ainsi que le calcul dynamique du total de la commande.

Problème à résoudre

Les clients doivent pouvoir constituer et modifier facilement leur sélection de produits avant de finaliser leur achat, assurant ainsi une expérience utilisateur fluide et intuitive.

Objectifs

  • Permettre aux utilisateurs d'ajouter des produits au panier depuis la page produit ou la liste de produits.
  • Offrir la possibilité de modifier les quantités ou de supprimer des articles directement depuis le panier.
  • Afficher en temps réel le montant total de la commande, incluant les taxes et les frais éventuels.

Critères d’acceptation

  • Un utilisateur peut ajouter un produit au panier en un clic depuis la page produit.
  • Le panier affiche une liste détaillée des articles sélectionnés avec leurs quantités, prix unitaires et sous-totaux.
  • Les modifications de quantités ou les suppressions d'articles sont reflétées instantanément dans le total de la commande.

Maquette :

image


EPIC-003 - Gestion des produits

Description

Cette fonctionnalités regroupe toutes les fonctionnalités liées aux produits et comment ils sont gérer sur la plateforme, le triage, les filtres, l'ajout aux favoris. Ainsi que les interactions qui permettent aux clients de naviguer efficacement parmi les produits

Problème à résoudre

L'utilisateur devrait pouvoir facilement rechercher une catégorie ou un produit et pouvoir ajouter se produit à une liste de favoris (ou au panier). Avoir de manière général une bonne expérience utilisateur.

Objectifs

  • Permettre aux clients de rechercher, trier et filtrer pour trouver les produits souhaité le plus facilement possible
  • Offrir une expérience utilisateur intuitive
  • Favoriser la rétention client en proposant une liste de leurs items favoris pour leur faire gagner du temps
  • proposer les produits populaire en page d'accueil

Critères d’acceptation

  • Les utilisateurs peuvent afficher une liste de produits avec différentes options de tri et filtrage
  • les utilisateurs peuvent ajouter des articles aux favoris mais doivent être connecté
  • la page d'accueil doit déjà proposer des produits phares

All categories (1)


EPIC-004 - Gestion des comptes

Description

Ce EPIC regroupe toutes les fonctionnalités liées à la gestion des comptes sur la plateforme. Il permet aux utilisateurs finaux et aux administrateurs de créer, modifier, personnaliser et supprimer leur compte. Il inclut également les processus de connexion/déconnexion, d'ajout de fonds et de paiement pour faciliter l'achat de produits.

Problème à résoudre

Les utilisateurs doivent pouvoir :

  • Créer et gérer leur compte de manière autonome et sécurisée.
  • Se connecter et se déconnecter rapidement.
  • Ajouter de l'argent à leur compte pour faciliter le processus d'achat.
  • Mettre à jour leurs informations personnelles et leurs préférences.

L'enjeu est d'offrir une expérience utilisateur fluide et sécurisée qui encourage l'engagement et la fidélisation.

Objectifs

  • Création et suppression de compte : Permettre aux utilisateurs de s'inscrire rapidement et de supprimer leur compte si nécessaire.
  • Gestion de compte : Offrir une interface intuitive pour modifier et personnaliser les informations personnelles.
  • Connexion / Déconnexion : Assurer une connexion sécurisée et une déconnexion simple.
  • Gestion financière : Permettre l'ajout de fonds sur le compte et l'utilisation de ce solde pour payer des produits.
  • Administration : Pour les utilisateurs ayant des droits d'administration, offrir la possibilité de gérer et de personnaliser des réglages spécifiques.

Critères d’Acceptation

  • L'utilisateur peut créer son compte en fournissant les informations obligatoires.

  • La suppression du compte demande une confirmation explicite et supprime toutes les données associées.

  • L'utilisateur peut modifier ses informations personnelles et voir les changements en temps réel.

  • Le processus de connexion et de déconnexion est rapide, sécurisé et inclut des mesures pour prévenir les accès non autorisés.

  • L’ajout de fonds et le paiement sont réalisés via des API sécurisées et respectent les normes de sécurité des transactions.

3. User Stories

US-101- Lister les produits en stock

En tant que gérant, je veux voir la liste complète des produits disponibles, leur quantité actuelle, leur prix et leur statut (en stock, faible stock ou hors stock), afin de mieux gérer l’état de mon inventaire et d’anticiper les commandes.

Description :

Cette fonctionnalité affichera une liste des produits disponibles dans le stock avec leur nom, quantité actuelle, prix et statut. Les produits seront triés sur le nom et un filtre sera disponible sur la catégorie ou le statut.

Critères d’acceptation :

  • Une interface affiche tous les produits avec leur nom, quantité, prix, statut, date de début de commerce, date de livraison et date de fin de commerce
  • Les produits hors stock sont clairement signalés
  • Possibilité de filtrer par catégorie ou statut

Priorité : Elevée

Taches techniques :

  • Créer une base de données des produits.
  • Développer une interface d’affichage et de triage.

US-102 – Ajouter un nouveau produit

En tant que gérant, je veux pouvoir ajouter un produit à mon stock avec son nom, quantité et statut, afin de l’intégrer dans l’inventaire et de le rendre disponible à la vente.

Description :

Le gérant pourra renseigner le nom du produit, sa quantité initiale et son statut pour l’ajouter. Une validation empêchera l’ajout d’un produit sans nom ou sans quantité définie.

Critères d’acceptation :

  • Un formulaire permet d’entrer le nom, la quantité (par défaut 0), le prix, la taxe (par défaut 0) et les différentes dates (début de commerce - obligatoire, livraison, fin de commerce) du produit
  • Le produit ajouté apparaît dans la liste des stocks
  • Une vérification empêche d’ajouter un produit sans données sauf pour la date de livraison et date de fin de commerce *Un popup demande la confirmation avant de créer le produit

Priorité : Elevée

Tâches techniques :

  • Créer un formulaire avec validation
  • Créer un popup de confimation
  • Enregistrer le produit dans la base de données

US-102b – Afficher le nouveau produit à l'utilisateur

En tant que gérant, je veux que lorsque je crée un nouveau produit il s'affiche du coté de l'utilisateur.

Description : Un champ d'image dans le formulaire de création est disponible afin de pouvoir l'afficher à l'utilisateur.

Critères d’acceptation :

  • Un champ d'image est présent dans le formulaire de création

Priorité : Moyenne


US-103 – Recevoir une alerte lorsque le stock atteint un seuil critique

En tant que gérant, je veux être averti lorsque la quantité d’un produit est inférieure à 5 unités, afin de recommander ce produit avant qu’il soit épuisé.

Description : Lorsqu’un produit atteint le seuil de 5 unités, une notification visuelle apparaîtra pour alerter le gérant.

Critères d’acceptation :

  • Une notification s’affiche au chargement de la page dès qu’un produit passe sous 5 unités
  • Une cloche de notification reste en alerte tant qu'il y a des produits sous le seuil et permet d'aller vers le faible stock

Priorité : Elevée


US-104 – Modifier un produit du stock

En tant que gérant, je veux modifier un produit de l’inventaire, afin de changer ses informations par rapport au marché.

Description :

Le gérant doit pouvoir modifier un produit via un bouton dédié. Une confirmation est requise pour éviter les erreurs.

Critères d’acceptation :

  • Un bouton "Modifier" est visible pour chaque produit
  • Une confirmation est demandée avant la modification
  • Le produit modifié apparaît dans la liste des stocks avec ses nouvelles valeurs

Priorité : Moyenne

Tâches techniques :

  • Ajouter une fonction de modification
  • Implémenter une confirmation avant modification

US-105 – Rendre un produit indisponible

En tant que gérant, je veux qu'un produit puisse être indisponible à la vente, afin de garder uniquement les produits disponibles sur le marché.

Description :

Le gérant doit pouvoir changer la disponibilité d'un produit via une case dédiée.

Critères d’acceptation :

  • Un case à décocher est visible pour chaque produit afin de le rendre indisponible
  • Le produit apparaît toujours dans la liste mais plus aucune manipulation est possible sur lui-même
  • Le produit n'apparait plus pour les utilisateurs

Priorité : Moyenne

Tâches techniques :

  • Ajouter une fonction de disponibilité de produit

US-106 – Afficher la date de réapprovisionnement

En tant que gérant, je veux indiquer une date de réapprovisionnement prévue pour un produit, afin de planifier mes commandes et d’informer le client.

Description : Un champ permettra d’entrer la date de réapprovisionnement pour un produit hors stock.

Critères d’acceptation :

  • Une date de réapprovisionnement peut être enregistrée via un bouton dédié
  • Une date de réapprovisionnement peut être modifiée via le bouton de modification

Priorité : Moyenne


US-107 – Login Admin

En tant que gérant, je veux pouvoir me logger à partir de la page principale et avoir accès à l'inventaire du stock

Description : Un bouton permettra d’entrer dans l'inventaire des produits

Critères d’acceptation :

  • Le login doit être en admin
  • La page où se trouve la liste de tous les produits doit être accessible via le bouton de inventaire

Priorité : Moyenne


US-201 : Modifier la quantité d'un produit dans le panier

En tant qu'utilisateur, je veux modifier la quantité d'un produit dans mon panier pour ajuster ma commande.

  • Description :
    L'utilisateur doit pouvoir changer la quantité d’un article déjà présent dans le panier sans avoir à le supprimer puis le rajouter.
  • Critères d’acceptation :
    • Chaque produit dans le panier affiche un champ de sélection ou un bouton pour modifier la quantité.
    • En augmentant ou diminuant la quantité, le sous-total du produit est recalculé dynamiquement.
    • Une validation empêche les quantités négatives ou supérieures au stock disponible.
    • Le total général du panier est recalculé automatiquement.
  • Priorité : Élevée

Tâches techniques :

  • Vérifier que la quantité ne puisse pas être modifiée si le produit n'est pas disponible en stock en assez grande quantité
  • Empêcher la quantité de passer en négatif
  • Si la quantité atteint zéro, afficher un message de validation à l'utilisateur pour le retirer du panier ou le remettre à 1

US-202 : Supprimer un article du panier

En tant qu'utilisateur, je veux supprimer un article de mon panier si je ne souhaite plus l'acheter.

  • Description :
    L'utilisateur doit pouvoir retirer facilement un produit de son panier, en un clic.
  • Critères d’acceptation :
    • Chaque article du panier dispose d'un bouton "Supprimer".
    • En cliquant sur ce bouton, l’article est retiré du panier instantanément.
    • Le total de la commande est recalculé dynamiquement.
    • Un message de confirmation ou une option “Annuler” est proposée immédiatement après la suppression.
  • Priorité : Élevée

US-203 : Mise à jour automatique du total de la commande lors d'une suppression ou une modification

En tant qu'utilisateur, je veux voir le total de ma commande se mettre à jour automatiquement lorsque je modifie mon panier.

  • Description :
    Le montant total du panier doit être recalculé dynamiquement en fonction des ajouts, modifications et suppressions d'articles.
  • Critères d’acceptation :
    • Le total général (produits + taxes + frais de livraison) est affiché en permanence dans le panier.
    • Toute modification de la quantité ou suppression d’un article entraîne une mise à jour immédiate du total.
    • En cas de rupture de stock d’un article, un message d’alerte empêche l’ajout ou l’augmentation de la quantité.
  • Priorité : Moyenne

US-204 - Ajouter un produit au panier

En tant que client, je souhaite ajouter un produit à mon panier afin de préparer mon achat. Valeur pour le client : Simplification de la gestion de ses achats. Description :

  • Lorsqu’un produit est affiché, inclure un bouton "Ajouter au panier".
  • Mettre à jour dynamiquement la quantité du produit dans le panier.

Critères d’acceptation :

  • Cliquer sur le bouton "Ajouter au panier" augmente la quantité dans le panier.
  • Si le produit n’est pas encore dans le panier, il est ajouté avec une quantité de 1.
  • Une alerte s’affiche si la quantité en stock n’est pas suffisante.

Tâches techniques :

  • Créer une API pour gérer les ajouts au panier.
  • Mettre à jour dynamiquement l’interface utilisateur du panier.
  • Gérer les erreurs côté serveur pour vérifier les quantités disponibles.

US-301 : Rechercher un produits par son nom dans le but de gagner du temps

En tant que client, je souhaite pouvoir chercher des produits par nom avec une barre de recherche Valeur pour le client : recherche rapide des produits. Description :

  • Lorsque l'utilisateur navigue sur notre site d'e-commerce il peut-être vite submerger d'information, une barre de recherche permet de cibler le/les * articles que l'utilisateur est susceptible de vouloir pour lui faire gagner du temps et rendre sa navigation dans le site plus simple et user-friendly.
  • La recherche est disponible via une barre de recherche disponible en permanence dans l'en-tête donc accessible depuis "n'importe quelle page"
  • Lorsque l'utilisateur tape un nom de produits, les produits correspondant s'affichent sur la page

Critères d’acceptation :

  • Chaque produits doit pouvoir être retrouver à partir de son nom
  • Afficher un message d'erreur si le nom ne correspond à aucun produits
  • La liste est composé du nom du produit, de son prix

Tâches techniques : *Frontend :

  • Ajouter une barre de recherche
  • Afficher les produits filtré dans une liste
  • Backend :
  • Retourner les produits correspondant à la recherche

US-302 : trier les produits par catégorie

En tant que client, je souhaite pouvoir trier les produits par catégorie afin de ne voir que des produits qui de la catégorie qui m'intéresse m'"intéresse"

  • Description :
    un bouton avec un menu déroulant qui permet à l'utilisateur d'afficher les articles appartenant à une catégorie spécifique, Si l'utilisateur clique sur le bouton et choisit la catégorie légumes alors une liste de produits de la catégorie légume s'affichera.
  • Critères d’acceptation :
    • Les différentes catégories doivent être "cliquable"
    • Lorsqu'une catégorie est sélectionnée, la liste des produits affichés doit être mise à jour
    • Le filtre doit rester actif tant que l'utilisateur ne le désactive pas (avec un bouton "réinitialiser"
  • Priorité : Moyenne

US-303 : Gèrer les favoris

En tant que client j'aimerais pouvoir afficher les produits mis en favoris afin de voir mes produits préféré.

  • Description :
    Un affichage qui montre les produits mis en favoris.

  • Critères d’acceptation :

    • Un affichage différent avec que les produits favoris de l'utilisateur
  • Priorité : Moyenne


US-304 : ajouter le produit aux favoris

En tant que client, je souhaite pouvoir ajouter le produit aux favoris dans le but d'acceder plus facilement au produit dans le futur. Description :

  • un bouton qui ajoute le produit à la liste des favoris, l'utilisateur pourra ajouter le produit à la liste si il à un compte. Et la liste des favoris que l'on pourra acceder si l'on est connecté à un compte.
  • Critères d’acceptation :
    • Doit avoir un bouton permettant d'ajouter ou retirer des favoris
    • Seuls les utilisateurs connecté peuvent ajouter des produits aux favoris
    • le produit est sauvegardée à la liste même après déconnexion de l'utilisateur
  • Priorité : Moyenne

US-305 : Gérer l'affichage

En tant que client je voudrais voir les produits trié que je cherche pour que ce soit plus simple Description :

  • Après avoir trier par catégorie ou bien par mot clé l'affichage principale de la page change et affiche le résultat du triage.
  • Critères d’acceptation :
    • L'affichage doit changer après un nouveau triage
    • L'affichage doit être cohérent avec le triage (catégorie fruits affiche des fruits).
  • Priorité : Haute

US-306 : Gérer l'affichage des catégories

En tant que client j'aimerais avoir un menu déroulant avec les différentes catégories sur lesquels je peux trié les produits afin de faire une recherche ciblé Description :

  • L'envoie d'une requête à la DB pour en retirer les différentes catégories disponible pour ensuite les afficher dans un menu.
  • Critères d’acceptation :
    • L'utilisateur doit pouvoir voir les différentes catégories
    • L'affichage doit être cohérent les catégories disponible (épicerie donc pas de meubles, voitures, etc.)
  • Priorité : Haute

US-307 : Voir les informations complémentaire d'un produit

En tant que client j'aimerais pouvoir voir les informations complémentaire d'un produit désiré (comme ces allèrgènes) Description :

  • une page supplémentaire qui s'affiche une fois qu'un produit est sélectionné et qui montre toutes les informations complémentaire du produit tel que les allergènes.
  • Critères d’acceptation :
    • L'utilisateur doit pouvoir accèder à la page avec les infos
    • L'affichage doit être cohérent avec le produits (allèrgènes des bananes alors que c'est des fraises).
  • Priorité : Haute

US-401 – Création d’un compte

Épic : Gestion des comptes
Importance : Haute
En tant que Utilisateur·ice final·e
Je veux créer un compte avec email et mot de passe
Afin de contrôler mon accès à la plateforme et mes données personnelles

Description

  • Formulaire d’inscription :

    • Email
    • Mot de passe
  • Validation client & serveur

Critères d’acceptation

  1. Email
    • Unicité garantie (pas d’email en double).
  2. Mot de passe
    • ≥ 8 caractères
    • ≥ 1 majuscule et 1 chiffre
  3. Session
    • Génération d’un JWT à l’inscription
    • JWT renvoyé dans la réponse (ou via cookie sécurisé)
  4. UX
    • Messages d’erreur clairs et contextualisés
    • Possibilité future d’ajouter SSO / MFA

Tâches techniques

  • APIPOST /register : hash du mot de passe & création user
  • Validation des données d’entrée
  • Génération & configuration du JWT
  • Tests unitaires & d’intégration

US-402 – Connexion

Épic : Gestion des comptes
Importance : Haute

En tant que Utilisateur·ice
Je veux me connecter avec mon email et mon mot de passe
Afin de accéder à mon espace personnalisé

Description

  • Formulaire de login :

    • Email
    • Mot de passe
  • Vérification des identifiants côté serveur

Critères d’acceptation

  1. Champs obligatoires : email + mot de passe
  2. Vérification
    • Email confirmé et mot de passe correct
  3. Session
    • Génération d’un JWT valide
    • Redirection automatique vers le dashboard
  4. Sécurité
    • Limitation des tentatives (anti-brute‑force)
    • Middleware de protection des routes privées

Tâches techniques

  • APIPOST /login : authentification & JWT
  • Middleware d’authentification JWT
  • UI : gestion des erreurs & feedback utilisateur
  • Tests fonctionnels

US-403 – Déconnexion

Épic : Gestion des comptes
Importance : Haute

En tant que Utilisateur·ice final·e
Je veux me déconnecter
Afin de sécuriser mon accès et éviter l’usage non autorisé de mon compte

Description

  • Bouton “Déconnexion” dans le menu utilisateur
  • Appel serveur pour invalider la session

Critères d’acceptation

  1. Action
    • POST /logout déclenché au clic
  2. Session
    • Destruction du JWT côté client
    • (Optionnel) Blacklist du token côté serveur
  3. Redirection
    • Retour à la page de login ou d’accueil

Tâches techniques

  • APIPOST /logout
  • UI : bouton & feedback (toast, spinner)
  • Tests de bout-en‑bout



Mettre ici le lien vers le logiciel que vous utiliser pour définir votre backlog, ou décrire directement les US ici i c'est votre choix. Au fur et à mesure de l'avancement di projet, vous complèterez les User Stories. Il est attendu un soin tout particulier pour la description des US personelles. Le nom de l'auteur de l'US est clairement indiqué dans le backlog.

Pour rappel, une US analysée comporte :

  • un nom correct (Le titre est sous forme "en tant que …, je souhaite… afin de…")
  • un code unique, il faut pouvoir les TRIER PAR ORDRE DE PRIORITE toutes les US du projet, chacune avec un code, numéro ou nom unique, permettant d'ordonner.
  • la valeur pour le client
  • une description textuelle claire et complète, accompagnée de maquettes, définissant précisément la US, notamment son début et sa fin.
  • les US sont bien découpées. Une US devrait porter sur un ajout fonctionnel utile au client. Idéalement une US devrait pouvoir être implémentée en une journée.
  • la référence aux autres US liées, à faire avant ou après, est indiquée pour bien comprendre le contexte
  • les critères d'acceptation clairs et complets, sous forme de scénario (voire de checklist), permettant de définir précisément si une US est bien implémentée, complètement (attention aux cas d'erreurs également)

Fournir également avant d'implémenter :

  • une découpe en tâches techniques avec les infos nécessaires à l'implémentation, notamment les dépendances techniques de la US : prérequis, endpoints API, tables de la DB, librairies utilisées,
  • la complexité/durée estimée, pour aider à planifier le développement et pour comparer par la suite avec l'effort réellement apporté