Git Product home page Git Product logo

good-food-front's Introduction

create-svelte

Everything you need to build a Svelte project, powered by create-svelte.

Creating a project

If you're seeing this, you've probably already done this step. Congrats!

# create a new project in the current directory
npm create svelte@latest

# create a new project in my-app
npm create svelte@latest my-app

Developing

Once you've created a project and installed dependencies with npm install (or pnpm install or yarn), start a development server:

npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open

Building

To create a production version of your app:

npm run build

You can preview the production build with npm run preview.

To deploy your app, you may need to install an adapter for your target environment.

good-food-front's People

Contributors

sonicfury avatar justine-dequidt-gyb avatar justine-dequidt avatar

Watchers

 avatar

good-food-front's Issues

Connexion à l'application

User Story

En tant qu'utilisateur,
je veux me connecter à l'application,
Afin d'accéder aux différentes fonctionnalités

Scenari:

  1. |
    SOIT l'utilisateur est un client
    SOIT il dispose d'un compte,
    LORSQU'il entre son mot de passe
    ALORS il est redirigé vers l'accueil de l'app avec le statut connecté
  2. |
    SOIT l'utilisateur dispose d'un compte
    LORSQU'il entre un mot de passe erroné
    ALORS un message d'erreur est affiché
  3. |
    SOIT il ne dispose pas d'un compte
    LORSQU'il tente d'accéder à l'application
    ALORS il est redirigé vers le formulaire d'inscription
    -> #8
  4. |
    SOIT l'utilisateur est un restaurateur ou un livreur
    SOIT il dispose d'un compte,
    LORSQU'il entre son mot de passe
    ALORS il est redirigé vers son tableau de bord avec le statut connecté

Afficher les menus

User Story

En tant que restaurateur,
Je veux afficher les menus disponibles,
Afin d'accéder au détail de leurs informations

Tâches

  • onglet "menus"
  • tableau avec les menus
  • recherche dans le tableau de menus
  • tri du tableau
  • pagination du tableau
  • affichage du bouton "ajouter un menu"
  • affichage des boutons d'édition et suppression

Informations

  • sur le même modèle que les produits et catégories #45 #46

Modification de la liste des collaborateurs

User Story

En tant qu'administrateur,
Je veux modifier la liste des collaborateurs,
Afin d'ajouter un employé à un restaurant

Scenario

1.SOIT L'utilisateur est administrateur
SOIT L'utilisateur visualise la liste des collaborateurs
LORSQUE l'utilisateur clique sur "ajouter"
ALORS une modal/un drawer s'ouvre avec le formulaire de création de collaborateur

2.SOIT L'utilisateur est administrateur
SOIT L'utilisateur visualise la liste des collaborateurs
LORSQUE l'utilisateur clique sur le crayon dans la ligne d'un collaborateur
ALORS une modal/un drawer s'ouvre avec le formulaire de modification de collaborateur

3.SOIT l'utilisateur est administrateur
SOIT l'utilisateur visualise la modal/le drawer de création ou modification d'un collaborateur
LORSQUE L'utilisateur valide
ALORS le collaborateur est persisté en base de données

4.SOIT L'utilisateur est administrateur
SOIT l'utilisateur visualise la liste des collaborateurs
LORSQUE l'utilisateur clique sur la croix dans la ligne d'un collaborateur
ALORS une modal de confirmation apparait
SI l'utilisateur confirme son choix
ALORS le collaborateur est supprimé (soft delete)

Règles de gestion

RG_60_01: Un collaborateur desactivé ne peut plus se connecter, un message type "vous n'appartenez à aucun restaurant, veuillez contacter un administrateur" apparait

RG_60_02: Lors d'une suppression, le collaborateur n'est que désactivé: un champ deletedAt est rempli avec la date courante. Un collaborateur avec une date dans deletedAt est donc desactivé.

RG_60_03: Lors de la création d'un collaborateur, celui-ci reçoit un email avec ses informations de connexions et un mot de passe temporaire

Informations

Le fonctionnement est le même que pour la #59

Notification au changement de statut d'une commande

User story

En tant que client,
je veux recevoir une notification lorsque ma commande change de statut,
afin de me préparer à réceptionner la commande

Scenario

SOIT l'utilisateur est un client
SOIT l'utilisateur est connecté
SOIT l'utilisateur a une commande en cours
LORSQUE une commande en cours change de statut
SI l'utilisateur a accepté les notifications sur son terminal
ALORS une notification apparait sur le terminal de l'utilisateur
SINON une notification apparait dans l'application

Tâches

  • POC / investigation pertinence de l'implémentation d'un modèle publisher/subscriber, socket.io etc

Backend

  • mise en place publication d'events

Frontend

  • déclenchement toast lors d'un event de type changement de statut sur la commande

Dépendances

Voir le résumé d'une commande

User story

En tant que client,
je veux voir le résumé de ma commande,
afin de pouvoir en vérifier le statut

Scenario

SOIT l'utilisateur est un client
SOIT l'utilisateur est connecté
SOIT l'utilisateur déjà passé une commande
SOIT l'utilisateur visualise son profil
LORSQUE l'utilisateur clique sur une commande dans la section "Mes commandes"
ALORS le détail de la commande ainsi que son statut s'affiche

Afficher des promotions

User Story

En tant que restaurateur,
Je veux afficher les promotions disponibles,
Afin d'accéder au détail de leurs informations

Tâches

  • onglet "promotions"
  • tableau avec les promotions
  • recherche dans le tableau de promotions
  • tri du tableau
  • pagination du tableau
  • affichage du bouton "ajouter une promotion"
  • affichage des boutons d'édition et suppression

Scenario

  1. |
    SOIT l'utilisateur est un restaurateur
    SOIT l'utilisateur est connecté
    LORSQU'il clique sur l'onglet "Promotions"
    ALORS il peut voir, trier et filtrer les Promotions en cours et passées

Informations

  • sur le même modèle que les produits et catégories #45 #46

Charte graphique

User story

En tant que développeur,
je veux consulter la charte graphique

Tâches

  • Typographies
  • Couleurs
  • Design system

Modifier des promotions

User Story

En tant que restaurateur,
je veux gérer des promotions,
afin de proposer des prix réduits pendant certaines périodes

Tâches

  • modal d'édition
  • validation formulaire
  • modal confirmation
  • suppression
  • endpoint création [back]

Scenari

  1. |
    SOIT l'utilisateur est un restaurateur
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur est dans l'onglet Promotions
    LORSQU'il clique sur "ajouter"
    ALORS une modal s'ouvre avec un formulaire de Promotion
  2. |
    SOIT l'utilisateur est un restaurateur
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur est dans l'onglet Promotions
    LORSQU'il clique sur "Modifier" sur une promotion
    ALORS une modal s'ouvre avec un formulaire de Promotion pré-rempli
  3. |
    SOIT l'utilisateur visualise la modal de promotion
    SOIT les champs requis sont remplis
    LORSQU'il clique sur "Valider"
    ALORS la promotion est créée et est appliquée lors des commandes passées dans les dates correspondantes

Informations

  • sur le modèle de l'édition de produit #47

Être guidé jusqu'à un restaurant

User story

En tant que client,
je veux être guidé jusqu'au restaurant sélectionné

Scenario

SOIT l'utilisateur est un client
SOIT l'utilisateur affiche les détails d'un restaurant
LORSQUE l'utilisateur clique sur "Y aller"
SI l'utilisateur utilise un ordinateur
ALORS un nouvel onglet google maps avec le restaurant sélectionné en destination s'ouvre
(Nice to have)
SI l'utilisateur utilise un mobile ou une tablette
ALORS l'application GPS par défaut du terminal s'ouvre avec le restaurant en destination

Dépendances

Afficher des catégories

User Story

En tant que restaurateur,
Je veux afficher les catégories de produits disponibles,
Afin d'accéder au détail de pouvoir les gérer

Tâches

  • onglet "catégories"
  • tableau avec les catégories
  • lien vers tableau de produit filtré par catégorie
  • recherche dans le tableau de catégorie
  • tri du tableau
  • pagination du tableau
  • affichage du bouton "ajouter une catégorie"
  • affichage des boutons d'édition et suppression

Informations

  • À calquer sur le modèle de tableau de produits #45
  • tri/la pagination côté front end

Afficher les informations générales d'un restaurant

User story

En tant que client,
je veux voir les informations générales d'un restaurant

Scenario

SOIT l'utilisateur est un client
SOIT l'utilisateur a recherché les restaurants à proximité d'une adresse
LORSQUE l'utilisateur clique sur un résultat
ALORS les informations détaillées du restaurant s'affichent ainsi que les CTA.

Tâches

  • CTAs: réserver, emporter, livrer
  • Voir l'addresse / contact
  • Voir la photo du restaurant

Modifier une catégorie

User Story

En tant que restaurateur,
Je veux modifier une catégorie,
Afin de la mettre à jour dans l'application

Tâches

  • modal d'édition
  • validation formulaire
  • modal confirmation
  • suppression
  • endpoint création [back]

Informations

  • sur le modèle de l'édition de produit #47

Mise en place infrastructure et déploiement

Mise en place des environnements de travail

Tâches

  • Deploiement base de données commune
  • Déploiement de la solution backend
  • Déploiement de la solution frontend
  • Mise en place de pipeline CI backend
  • Mise en place de pipeline CI frontend

Gérer des livraisons

User story

En tant que livreur,
je veux gérer une livraison,
afin de terminer une commande

Scenari

  1. |
    SOIT l'utilisateur est un livreur
    SOIT l'utilisateur est connecté
    LORSQU'il se trouve sur l'accueil
    ALORS il peut voir les commandes qui lui sont assignées triées dans l'ordre (itinéraire)
  2. |
    SOIT l'utilisateur est un livreur
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur se trouve sur l'accueil
    LORSQU'il clique sur "Go"
    SI il y a encore des commandes à livrer
    ALORS l'application GPS s'ouvre avec le trajet vers la prochaine livraison
    SINON l'application GPS s'ouvre avec le trajet jusqu'au restaurant
  3. |
    SOIT l'utilisateur est un livreur
    SOIT l'utilisateur est connecté
    LORSQU'il clique sur une commande
    ALORS la commande est déplacée vers la liste correspondante et son statut change pour "terminée"

Tâches

  • voir les livraisons à effectuer/livrées (GET back)
  • marquer une commande comme livrée (PATCH backend)
  • ouvrir l'application GPS

Image

Voir la carte de mon restaurant

User story

En tant que restaurateur,
je veux voir la carte de mon restaurant,
afin de pouvoir la mettre à jour

Dépendances

Scenarii

  1. |
    SOIT l'utilisateur est un restaurateur
    SOIT l'utilisateur est connecté
    LORSQU'il clique sur la carte dans le menu
    ALORS il peut voir la liste des éléments classés par type
  2. |
    SOIT l'utilisateur est un restaurateur
    SOIT l'utilisateur visualise la carte de son restaurant
    LORSQU'il clique sur l'icône dédiée
    ALORS il peut filtrer et chercher dans la liste des éléments

Tâches

  • afficher la carte
  • filtrer la carte par type (menus, entrées, plats, desserts, boissons...)
  • recherche d'un produit

Voir la carte d'un restaurant

User story

En tant que client,
je veux voir la carte d'un restaurant,
afin de choisir mon repas

Scenarii

  1. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur a sélectionné un restaurant
    LORSQU'il clique sur la carte dans le menu
    ALORS il peut voir la liste des éléments classés par type
  2. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur a sélectionné un restaurant
    SOIT l'utilisateur visualise la carte
    LORSQU'il clique sur l'icône dédiée
    ALORS il peut filtrer et chercher dans la liste des éléments

Tâches

  • afficher la carte
  • filtrer la carte par type (menus, entrées, plats, desserts, boissons...)
  • recherche d'un produit

Dépendance

Modifier un produit

User Story

En tant que restaurateur,
Je veux modifier un produit,
Afin de le mettre à jour dans l'application

Tâches

  • modal d'édition
  • validation formulaire
  • modal confirmation
  • suppression
  • endpoint création [back]

Informations

Image

  • la modal pourrait être remplacée de façon avantageuse par un panel/drawer sur le côté rendant l'édition non bloquante

Notifications lors d'évènements dans l'application

User story

En tant qu'utilisateur,
Je souhaite être notifié en cas de succès ou d'erreur lors de ma connexion ou mon inscription,
Afin d'avoir un retour clair sur mon action.

Scenario

SOIT l'utilisateur se trouve sur le formulaire de connexion ou d'inscription
LORSQUE l'utilisateur clique sur Valider
SI le formulaire est valide et que la requête renvoie un code 200
ALORS une notification (toast) apparait avec la mention "connecté" ou "inscrit" le cas échéant
SINON une notification apparait avec la mention "un erreur est survenue", ou le message d'erreur directement s'il est explicite.

Taches

Frontend

  • Création d'un Store pour la gestion des toasts
  • Création du composant Toast qui sera affiché
  • Mise à jour des formulaires de login et de register

Backend

  • Vérification des messages d'erreurs envoyés sur les APIs concernées

Dépendances

Note de cadrage

  • contexte ;
  • objectifs ;
  • parties prenantes ;
  • périmètre fonctionnel ;
  • équipe, méthodologie ;
  • rétroplanning

Modifier les commandes

User story

En tant que restaurateur,
je veux modifier une commande,
afin de préciser son statut

Scenari

  1. |
    SOIT l'utilisateur visualise une commande
    LORSQU'il clique sur le sélecteur de statut
    ALORS il peut assigner un statut à la commande
  2. |
    SOIT l'utilisateur visualise une commande
    LORSQU'il clique sur une "Annoter"
    SI la commande comporte déjà une annotation
    ALORS l'utilisateur peut modifier l'annotation de la commande
    SINON il peut ajouter une annotation à la commande

Tâches

  • mettre à jour le statut d'une commande
  • annoter une commande

Modification de la liste des restaurants

User Story

En tant qu'administrateur,
Je veux modifier la liste des restaurants,
Afin d'ajouter un restaurant qui va ouvrir à l'application

Scenario

1.SOIT L'utilisateur est administrateur
SOIT L'utilisateur visualise la liste des restaurants
LORSQUE l'utilisateur clique sur "ajouter"
ALORS une modal/un drawer s'ouvre avec le formulaire de création de restaurant

2.SOIT L'utilisateur est administrateur
SOIT L'utilisateur visualise la liste des restaurants
LORSQUE l'utilisateur clique sur le crayon dans la ligne d'un restaurant
ALORS une modal/un drawer s'ouvre avec le formulaire de modification de restaurant

3.SOIT l'utilisateur est administrateur
SOIT l'utilisateur visualise la modal/le drawer de création ou modification d'un restaurant
LORSQUE L'utilisateur valide
ALORS le restaurant est persisté en base de données

4.SOIT L'utilisateur est administrateur
SOIT l'utilisateur visualise la liste des restaurants
LORSQUE l'utilisateur clique sur la croix dans la ligne d'un restaurant
ALORS une modal de confirmation apparait
SI l'utilisateur confirme son choix
ALORS le restaurant est supprimé (soft delete)

Règles de gestion

RG_59_01: Un restaurant desactivé devient inaccessible, en lieu et place du dashboard, un message type "ce restaurant est fermé, veuillez contacter un administrateur" apparait

RG_59_02: Lors d'une suppression, le restaurant n'est que désactivé: un champ deletedAt est rempli avec la date courante. Un restaurant avec une date dans deletedAt est donc fermé.

Connexion/Inscription à l'application via SSO

User Story

En tant qu'utilisateur,
je veux me connecter à l'application via un autre service (Apple, Google),
Afin d'accéder aux différentes fonctionnalités

Scenari:

  1. |
    SOIT l'utilisateur est un client
    LORSQU'il clique sur "Se connecter avec Apple"
    SI l'utilisateur est connecté avec Apple
    ALORS il est redirigé vers l'accueil de l'app avec le statut connecté
    SINON il est invité à se connecter à son compte iCloud
  2. |
    SOIT l'utilisateur est un client
    LORSQU'il clique sur "Se connecter avec Google"
    SI l'utilisateur est connecté avec Google
    ALORS il est redirigé vers l'accueil de l'app avec le statut connecté
    SINON il est invité à se connecter à son compte Google

Tâches

Frontend

  • implémentation de la récupération du User via SSO Google/Apple
  • ajout boutons de connexion dédiés

Dépendances

Afficher du dashboard administrateur

User Story

En tant qu'administrateur,
Je veux visualiser un tableau de bord,
Afin de piloter l'entreprise efficacement

Scenario

SOIT l'utilisateur est un administrateur
LORSQUE l'utilisateur se connecte
ALORS il est redirigé vers un dasboard avec les chiffres clés de l'entreprise et la liste des restaurants

Règles de gestion

RG_57_01: Chiffres à afficher:

  • CA (montant total des commandes passées)
  • Montant panier moyen (CA / Nb de commandes)
  • Restaurant star (celui avec le plus de commandes)
  • Restaurant en alerte (celui avec le moins de commandes)
  • Produit star
  • Produit deceptif

RG_57_02: Les chiffres affichés devront être filtrables par plage de date ("du jj/mm/yy au jj/mm/yy")

RG_57_03: La liste des restaurants devra être filtrable/triable sur le même modèle que les listes de produits etc, #47 #55 #49 #46

RG_57_04: l'url devra être https://{hôte}/admin

Nice to have => graphe tendance

Redirection vers un restaurant

User story

En tant qu'administateur
Je veux administrer un restaurant
Afin de le piloter avec un meilleur niveau de détail

Scenario

SOIT L'utilisateur est administrateur
SOIT l'utilisateur se trouve sur le dashboard administrateur
SOIT l'utilisateur visualise la liste des restaurants
LORSQUE l'utilisateur clique sur le nom du restaurant
ALORS un nouvel onglet s'ouvre avec la page d'administration du restaurant (vue restaurateur)

Règles de gestion

RG_58_01: dans le tableau, le uniquement le nom du restaurant doit être cliquable, avec une icône signalant l'ouverture d'un nouvel onglet

RG_58_02: l'url frontend des redirections devra être formulée de la façon suivante https://{hôte}/admin/restaurants/{id_restaurant}

Modifier un menu

User Story

En tant que restaurateur,
Je veux modifier un menu,
Afin de le mettre à jour dans l'application

Tâches

  • modal d'édition
  • validation formulaire
  • modal confirmation
  • suppression
  • endpoint création [back]

Informations

  • sur le même modèle que les produits et catégories #47 #48

Navbar

User story

En tant qu'utilisateur
je veux pouvoir naviguer entre les pages de l'application

Tâches

  • navbar
  • définition des règles de gestion pour les accès et redirections
  • implémentation de la navigation avec les règles

Règlement d'une commande

User story

En tant que client,
je veux régler ma commande,
afin de la confirmer

Scenari

  1. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur a validé une commande
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur a renseigné au moins un moyen de paiement
    SOIT l'utilisateur a renseigné une adresse
    LORSQUE l'utilisateur clique sur Payer
    SI le paiement est validé par l'API correspondante au moyen utilisé
    ALORS la commande est confirmée, une notification apparait avec la confirmation et l'utilisateur est redirigé vers ses commandes dans son profil
    SINON un message d'erreur apparait
  2. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur a une commande en cours
    SOIT l'utilisateur n'est pas connecté
    LORSQUE l'utilisateur clique sur Valider la commande
    ALORS l'utilisateur est invité à se connecté ou s'inscrire
  3. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur a validé une commande
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur n'a pas renseigné de moyen de paiement
    LORSQUE l'utilisateur clique sur renseigner un moyen de paiement
    ALORS une modal apparait avec les choix disponibles
  4. |
    SOIT l'utilisateur visualise la modal de choix de moyens de paiement
    LORSQUE l'utilisateur choisit un moyen de paiement
    ALORS un formulaire dédié apparaît
  5. |
    SOIT l'utilisateur a choisi un moyen de paiement dans la liste
    SOIT l'utilisateur a fourni les informations demandées
    LORSQUE l'utilisateur valide
    SI l'utilisateur n'a pas de moyen de paiement renseigné
    ALORS le moyen de paiement est ajouté dans la liste de ses moyens de paiement, il est sélectionné pour la commande en cours et il est défini comme celui à utiliser par défaut
    SINON le moyen de paiement est ajouté dans la liste de ses moyens de paiement, il est sélectionné pour la commande en cours

Tâches

  • choisir un moyen de paiement
  • lien vers la modification des moyens de paiement (modal ?)
  • revue des informations personnelles
  • paiement
  • confirmation paiement

Dépendances

Inscription sur l'application

User story

En tant que client,
je veux m'inscrire sur l'application,
afin de pouvoir commander des repas

Scenari

  1. |
    SOIT l'utilisateur est un client
    LORSQUE l'utilisateur clique sur "inscription"
    ALORS un formulaire apparaît à remplir avec ses informations
  2. |
    SOIT l'utilisateur est un client
    SOIT l'email de l'utilisateur n'existe pas en BDD
    SOIT tous les champs requis du formulaire sont remplis
    LORSQUE l'utilisateur clique sur Valider
    SI l'utilisateur a une commande en cours
    ALORS le compte est créé, l'utilisateur est connecté, et il est redirigé vers le règlement
    SINON le compte est créé, l'utilisateur est connecté, et il est redirigé vers la carte

Modifier la carte de mon restaurant

User story

En tant que restaurateur,
je veux modifier ma carte,
afin d'ajouter, modifer ou retirer des éléments

Dépendances

Scenari

  1. |
    SOIT l'utilisateur est un restaurateur
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur visualise un produit de la carte
    LORSQU'il clique sur le bouton "Éditer"
    ALORS une modal apparaît pour modifier le contenu
  2. |
    SOIT l'utilisateur visualise la modal d'édition
    LORSQU'il clique sur le bouton Valider
    ALORS les modifications sont confirmées
  3. |
    SOIT l'utilisateur est un restaurateur
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur visualise la carte
    LORSQU'il clique sur le bouton "Supprimer" à côté d'un produit
    SI l'utilisateur confirme son action
    ALORS le produit est retiré de la carte
  4. |
    SOIT l'utilisateur est un restaurateur
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur visualise la carte
    LORSQU'il clique sur le bouton "Ajouter"
    ALORS une modal avec les champs nécessaires apparait
  5. |
    SOIT l'utilisateur visualise la modal d'ajout
    SOIT l'utilisateur a rempli tous les champs requis
    LORSQU'il clique sur le bouton "Valider"
    ALORS le produit est ajouté à la carte

Être guidé jusqu'à un client

User story

En tant que livreur,
je veux être guidé jusqu'au client de la livraison sélectionnée

Scenario

SOIT l'utilisateur est un livreur
SOIT l'utilisateur a sélectionné une livraison
LORSQUE l'utilisateur clique sur Y aller
ALORS l'application GPS par défaut sur sont terminal s'ouvre avec l'adresse du client en destination

Modification des informations personnelles

User story

En tant que client,
je veux modifier mes informations personnelles

Scenario

SOIT l'utilisateur est un client
SOIT l'utilisateur est connecté
SOIT l'utilisateur visualise son profil
LORSQUE l'utilisateur clique sur modifier
ALORS il peut mettre à jour les valeurs des champs et valider

Voir les commandes

User story

En tant que restaurateur,
je veux voir les commandes en cours de mon restaurant,
afin de pouvoir les réaliser

Scenarii

  1. |
    SOIT l'utilisateur est un restaurateur
    SOIT l'utilisateur est connecté
    LORSQUE l'utilisateur se trouve sur l'accueil
    ALORS il peut voir la liste des commandes (sauf statut "terminé" par défaut) classés par date
  2. |
    SOIT l'utilisateur visualise les commandes
    LORSQUE l'utilisateur clique sur une commande
    ALORS il peut en voir le détail
  3. |
    SOIT l'utilisateur est un restaurateur
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur se trouve sur l'accueil
    LORSQU'il clique sur l'icône dédiée
    ALORS il peut filtrer et chercher dans la liste des commandes
  4. |
    SOIT l'utilisateur est un restaurateur
    SOIT l'utilisateur est connecté
    LORSQUE l'utilisateur se trouve sur l'accueil
    ALORS il voit le nombre de commandes pour chaque statut

Tâches

  • afficher les commandes
  • voir le détail d'une commande
  • filtrer les commandes (statut, date, lieu, montant...)
  • recherche d'une commande
  • voir les nombre de commandes par status

Notes

  • Les colonnes devront pourvoir être drag n droppable par la suite...

Ressources

Modifier une commande

User story

En tant que client,
je veux modifier ma commande,
afin d'ajouter ou retirer des éléments

Scenari

  1. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur visualise un produit de la carte
    LORSQU'il clique sur le bouton "+"
    ALORS une modal apparaît pour renseigner la quantité
  2. |
    SOIT l'utilisateur visualise la modal de quantité
    LORSQU'il clique sur le bouton Valider
    SI l'utilisateur n'a pas de commande en cours
    ALORS une nouvelle commande est créée incluant le produit souhaité dans la quantité souhaitée
    SINON le produit souhaité dans la quantité souhaitée est ajouté à la commande en cours
  3. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur a une commande en cours
    SOIT l'utilisateur visualise sa commande
    LORSQU'il clique sur le bouton "+" ou "-" à côté d'un produit
    SI la quantité du produit tombe à 0
    ALORS le produit est retiré de la commande
    SINON la quantité du produit est incrémentée ou décrémentée en conséquence.
  4. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur a une commande en cours
    SOIT l'utilisateur visualise sa commande
    LORSQU'il clique sur le bouton "Annuler"
    OU que la commande comporte un seul produit et qu'il clique sur le bouton "+" ou "-" à côté d'un produit
    SI le client confirme son action via une modal
    ALORS la commande est annulée.

Tâches

  • modifier la quantité
  • annuler la commande
  • retirer le produit du panier
  • voir le panier
  • nice to have - undo pendant 5 secondes à la suppression d'un produit

Gérer de multiples adresses

User story

En tant que client,
je veux pouvoir ajouter plusieurs adresses,
afin de pouvoir me faire livrer à différents endroits facilement

Scenari

  1. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur visualise son profil
    LORSQUE le client clique sur la poubelle à côté d'une adresse
    SI le client confirme son choix
    ALORS l'adresse est supprimée
  2. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur visualise son profil
    LORSQUE le client clique sur + dans la section "Adresse"
    ALORS une modal avec un formulaire correspondant à une adresse apparait
  3. |
    SOIT l'utilisateur visualise la modal d'ajout d'adresse
    SOIT les champs requis sont renseignés
    LORSQUE le client valide
    ALORS l'adresse est ajoutée à la liste
  4. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur visualise son profil
    LORSQUE le client clique sur "choisir par défaut" à côté d'une adresse
    ALORS l'adresse devient celle utilisée par défaut lors des commandes

Supprimer un compte

User story

En tant que client,
je veux supprimer mon compte

Scenario

SOIT l'utilisateur est un client
SOIT l'utilisateur est connecté
SOIT l'utilisateur visualise son profil
LORSQUE l'utilisateur clique sur "supprimer mon compte"
SI l'utilisateur confirme l'action en entrant son mot de passe
ALORS le compte est supprimé et l'utilisateur est redirigé vers l'accueil

Tâches

  • soft delete backend
  • bouton frontend dans profil
  • job de suppression RGPD

Gérer plusieurs restaurants

User story

En tant qu'administrateur,
je veux voir les informations de plusieurs restaurants,
afin de gérer la chaîne

Scenarii

  1. |
    SOIT l'utilisateur est un administrateur
    SOIT l'utilisateur est connecté
    LORSQUE l'utilisateur se trouve sur l'accueil
    ALORS il peut voir les indicateurs globaux de la chaine
  2. |
    SOIT l'utilisateur est un administrateur
    SOIT l'utilisateur est connecté
    LORSQUE l'utilisateur se trouve sur la liste des restaurants
    ALORS il peut rechercher un restaurant
  3. |
    SOIT l'utilisateur est un administrateur
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur visualise la liste des restaurants
    LORSQUE l'utilisateur clique sur un restaurant
    ALORS il peut voir les détails de ce restaurant (y compris ses indicateurs, ses commandes...)

Tâches

  • afficher le détail d'un restaurant
  • afficher les indicateurs globaux
  • filtrer les restaurants (lieu, nom, CA, nombre de commandes...)
  • recherche d'un restaurant

Dépendances

Afficher des produits

User Story

En tant que restaurateur,
Je veux afficher les produits disponibles,
Afin d'accéder au détail de leurs informations

Tâches

  • onglet "produits"
  • tableau avec les produits
  • recherche dans le tableau de produits
  • tri du tableau
  • pagination du tableau
  • affichage du bouton "ajouter un produit"
  • affichage des boutons d'édition et suppression

Informations

Image

  • On ne prévoit pas un nombre de produits démesuré, on peut se permettre le tri/la pagination côté front end
  • On aura beaucoup de tableaux du style à faire, il faut privilégier une lib ou le design d'un composant si nécessaire pour gérer les tris/paginations
  • Il faudrait gérer les filtres dans l'url, pour la persistence on peut aussi utiliser le sessionStorage, mais l'url permet surtout de l'envoyer à un collègue par exemple pour retrouver la même vision. (nice to have)
  • Pour le responsive, on peut gérer au plus bas les écrans 14", ce sera suffisant, pas besoin de gérer du mobile, on est sur un genre de mini ERP.

Modifier les moyens de paiement

User story

En tant que client,
je veux modifier mes moyens de paiement,
afin d'en ajouter un nouveau ou d'en retirer un obsolète

Scenari

  1. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur visualise son profil
    LORSQUE l'utilisateur clique sur le "+" dans la section Moyens de paiement
    ALORS une modal s'affiche avec différentes propositions
  2. |
    SOIT l'utilisateur visualise la modal avec les propositions de moyen de paiement
    SOIT l'utilisateur a choisi un moyen de paiement
    SOIT les informations sont correctes
    LORSQUE l'utilisateur valide
    ALORS le moyen de paiement est ajouté à la liste des moyens disponibles
  3. |
    SOIT l'utilisateur est un client
    SOIT l'utilisateur est connecté
    SOIT l'utilisateur visualise son profil
    LORSQUE l'utilisateur clique définir par défaut à côté d'un moyen de paiement
    ALORS l'élément sélectionné est défini comme moyen de paiement par défaut pour les prochaines commandes

Dépendances

Lister les restaurants à proximité

User story

En tant que client, je veux lister les restaurants à proximité

Scenari

SOIT l'utilisateur est un client
SOIT l'utilisateur se trouve sur l'interface de recherche
LORSQU'il entre une adresse dans la barre de recherche et valide
ALORS la liste des restaurants à moins de 20km s'affiche

Tâches

  • Recherche restaurant
  • Liste restaurants

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.