sonicfury / good-food-front Goto Github PK
View Code? Open in Web Editor NEWCESI MAALSI 2022 PROJET CUBE - web frontend
Home Page: good-food-cesi.vercel.app
CESI MAALSI 2022 PROJET CUBE - web frontend
Home Page: good-food-cesi.vercel.app
En tant que restaurateur,
Je veux afficher les produits disponibles,
Afin d'accéder au détail de leurs informations
Documentation des routes et des règles de gestion associées
En tant qu'utilisateur,
je veux me connecter à l'application,
Afin d'accéder aux différentes fonctionnalités
En tant que développeur,
je veux consulter la charte graphique
En tant qu'administrateur,
Je veux modifier la liste des restaurants,
Afin d'ajouter un restaurant qui va ouvrir à l'application
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)
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é.
En tant que restaurateur,
Je veux modifier une catégorie,
Afin de la mettre à jour dans l'application
En tant que client,
je veux régler ma commande,
afin de la confirmer
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.
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.
En tant que client,
je veux pouvoir ajouter plusieurs adresses,
afin de pouvoir me faire livrer à différents endroits facilement
Tests unitaires manquants sur features sprint 1.
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
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
Si possible, utilisation d'un broker de messages ou autre pattern publisher/subscriber (observable) pour notification du frontend en cas d'event backend.
En tant que client,
je veux modifier mes moyens de paiement,
afin d'en ajouter un nouveau ou d'en retirer un obsolète
En tant qu'utilisateur
je veux pouvoir naviguer entre les pages de l'application
En tant que restaurateur,
je veux gérer des promotions,
afin de proposer des prix réduits pendant certaines périodes
En tant qu'administrateur,
je veux voir les informations de plusieurs restaurants,
afin de gérer la chaîne
En tant que client,
je veux voir la carte d'un restaurant,
afin de choisir mon repas
Mise en place des environnements de travail
En tant que restaurateur,
Je veux modifier un produit,
Afin de le mettre à jour dans l'application
En tant que client,
je veux recevoir une notification lorsque ma commande change de statut,
afin de me préparer à réceptionner la commande
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
En tant que restaurateur,
Je veux afficher les menus disponibles,
Afin d'accéder au détail de leurs informations
En tant que client,
je veux être guidé jusqu'au restaurant sélectionné
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
En tant que livreur,
je veux gérer une livraison,
afin de terminer une commande
En tant que client,
je veux modifier ma commande,
afin d'ajouter ou retirer des éléments
En tant que client,
je veux modifier mes informations personnelles
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
En tant qu'administateur
Je veux administrer un restaurant
Afin de le piloter avec un meilleur niveau de détail
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)
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}
En tant que restaurateur,
je veux voir les commandes en cours de mon restaurant,
afin de pouvoir les réaliser
En tant qu'administrateur,
Je veux modifier la liste des collaborateurs,
Afin d'ajouter un employé à un restaurant
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)
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
Le fonctionnement est le même que pour la #59
En tant que restaurateur,
Je veux afficher les promotions disponibles,
Afin d'accéder au détail de leurs informations
En tant que restaurateur,
je veux modifier une commande,
afin de préciser son statut
En tant que client,
je veux voir les informations générales d'un restaurant
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.
En tant que restaurateur,
je veux modifier ma carte,
afin d'ajouter, modifer ou retirer des éléments
En tant que client,
je veux m'inscrire sur l'application,
afin de pouvoir commander des repas
En tant que client, je veux lister les restaurants à proximité
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
En tant que restaurateur,
je veux voir la carte de mon restaurant,
afin de pouvoir la mettre à jour
En tant que client,
je veux supprimer mon compte
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
En tant que livreur,
je veux être guidé jusqu'au client de la livraison sélectionnée
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
En tant que client,
je veux voir le résumé de ma commande,
afin de pouvoir en vérifier le statut
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
En tant qu'administrateur,
Je veux visualiser un tableau de bord,
Afin de piloter l'entreprise efficacement
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
RG_57_01: Chiffres à afficher:
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
Présentation de la note de cadrage
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.