User Stories ‐ Gestion utilisateur ‐ Guillaume Delferiere - Tablify-Developement/Tablify-Web GitHub Wiki
🚀 US013 - Inscription d'un utilisateur
Code :US013
Auteur : Guillaume DELFERIERE
Priorité : Haute
Date de création : 18-02-2025
🔷 Description
En tant que nouvel utilisateur,
Je souhaite pouvoir m'inscrire via un formulaire
Afin de créer un compte et accéder aux fonctionnalités de l'application
🔷 Valeur pour le client
Permet aux nouveaux utilisateurs d'accéder à l'application et d'utiliser ses fonctionnalités, comme la réservation de tables
🔷 Critères d'acceptation
- Un formulaire doit contenir les champs : nom, prénom, email, mot de passe avec confirmation
- Une validation des champs est effectuée (mot de passe sécurisé, email valide)
- Un email de confirmation est envoyé à l'utilisateur après l'inscription (à voir si c'est possible ou pas)
🔷 Scénario de test
- Scénario 1 : Inscription réussie
- L'utilisateur remplit le formulaire avec des informations valides
- Le compte est créé dans la base de données
- (Un email de confirmation est envoyé)
- Scénario 2 : Inscription échouée (email déjà utilisé)
- L'utilisateur tente de s'inscrire avec un email déjà existant
- Un message d'erreur s'affiche indiquant que le mail est déjà pris
- Scénario 3 : Inscription échouée (mot de passe trop faible)
- L'utilisateur entre un mot de passe ne respectant pas les critères de sécurité
- Le système affiche une erreur demandant un mot de passe plus sécurisé
🔷 Dépendances
- (Dépend du système de gestion des mails pour l'envoi du mail de confirmation)
🔷 Tâches Techniques
- Implémenter un formulaire d'inscription avec validation
- Développer la logique backend pour la création d'un compte utilisateur
- (Mettre en place l'envoi d'un email de confirmation via un service (SendGrid par exemple))
🔷 Prérequis techniques
- Base de données (PostgreSQL) : Table users avec les champs id, nom, prenom, email, password_hash, is_verified
- API : endpoint Post /auth/register pour gérer l'inscription
- Frontend : Formulaire d'inscription en React avec validation des champs
🔷 Complexité estimée : Moyenne
Durée estimée : 1 jour
Ressources : Frontend (React, ShadCN), Backend (Node.js, PostgreSQL), Email service (SendGrid)
🚀 US014 - Connexion utilisateur
Code : US014
Auteur : Guillaume DELFERIERE
Priorité : Haute
Date de création : 18-02-2025
🔷 Description
En tant qu' utilisateur enregistré,
Je souhaite pouvoir me connecter en utilisant mon email et mon mot de passe,
Afin d' accéder à mon compte et utiliser les fonctionnalités de l'application
🔷 Valeur pour le client
Permet aux utilisateurs enregistrés d'accéder à leurs réservations et préférences personnelles
🔷 Critères d'acceptation :
- La connexion se fait via un formulaire avec un email et un mot de passe
- Un message d'erreur s'affiche en cas d'identifiant incorrects
- Une session utilisateur est créée après connexion
🔷 Scénario de test
- Scénario 1 : Connexion réussie
- L'utilisateur entre son identifiant et son mot de passe correctement
- La session est créée et l'utilisateur est redirigé vers son espace personnel
- Scénario 2 : Connexion échouée (mot de passe incorrect)
- L'utilisateur entre un mauvais mot de passe
- Un message d'erreur s'affiche indiquant que les informations sont incorrectes
- Scénario 3 : Connexion échouée (compte inexistant)
- L'utilisateur tente de se connecter avec un email non enregistré
- Le système affiche un message indiquant que le compte n'existe pas
🔷 Dépendances
Dépend du système de gestion des sessions utilisateur et de la base de données utilisateur
🔷 Tâches Techniques
- Implémenter un formulaire de connexion avec validation des champs
- Développer la logique backend pour l'authentification des utilisateurs
- Mettre en place la gestion des sessions et tokens d'authentification (JWT)
🔷 Prérequis techniques
- Base de données (PostgreSQL) : Table users avec les champs email, password_hash
- API : Endpoint Post /auth/login pour gérer la connexion
- Frontend : Formulaire de connexion en React avec gestion des erreurs
🔷 Complexité estimée : Moyenne
Durée estimée : 1 jour
Ressources : Frontend(React, ShadCN), Backend(Node.js, PostgreSQL)
🚀 US015 - Interface utilisateur
Code: US015
Auteur: Guillaume DELFERIERE
Priorité: Haute
Date de création: 18-02-2025
🔷 Description
En tant qu' utilisateur connecté,
Je souhaite avoir une interface utilisateur Settings avec des rubriques regroupant les informations personnelles, les préférences, les centres d'intérêt,
Afin d' avoir une centralisation de mes informations.
🔷 Valeur pour le client
Permet à l'utilisateur d'avoir toutes ses informations regroupées sur une seule page pour améliorer son expérience d'utilisation.
🔷 Critères d'acceptation
- Une page Settings regroupant des rubriques sur les informations personnelles, les préférences et les centres d'intérêt.
- Les modifications sont enregistrées et appliquées immédiatement.
- L'interface est intuitive et facile à naviguer.
🔷 Scénario de test
-
Scénario 1 : Accès à la page Settings
- L'utilisateur se connecte à son compte.
- L'utilisateur accède à la page Settings.
- La page affiche les rubriques : Informations personnelles, Préférences, Centres d'intérêt.
-
🔷 Scénario 2 : Modification des informations personnelles
- L'utilisateur accède à la rubrique "Informations personnelles".
- L'utilisateur modifie son nom et enregistre les changements.
- Les modifications sont enregistrées et affichées immédiatement.
-
🔷 Scénario 3 : Modification des préférences
- L'utilisateur accède à la rubrique "Préférences".
- L'utilisateur modifie ses préférences de langue et enregistre les changements.
- Les modifications sont appliquées immédiatement à l'interface.
-
🔷 Scénario 4 : Modification des centres d'intérêt
- L'utilisateur accède à la rubrique "Centres d'intérêt".
- L'utilisateur ajoute un nouveau centre d'intérêt et enregistre les changements.
- Les modifications sont enregistrées et utilisées pour les recommandations.
🔷 Dépendances
- Dépend de la gestion des utilisateurs pour l'authentification et la récupération des informations.
- Dépend de la gestion des préférences et des centres d'intérêt pour l'affichage et la mise à jour des données.
🔷 Tâches techniques
- Implémenter une page Settings avec différentes rubriques (Informations personnelles, Préférences, Centres d'intérêt).
- Créer des formulaires pour chaque rubrique permettant la modification des données.
- Mettre en place la sauvegarde immédiate des modifications dans la base de données.
- Assurer la synchronisation des modifications avec l'interface utilisateur.
🔷 Prérequis techniques
- Base de données (PostgreSQL) : Tables
users
,preferences
,interests
pour stocker les informations. - API : Endpoints pour la récupération et la mise à jour des informations (
GET /users/settings
,PUT /users/settings
). - Framework Frontend : ShadCN pour les interfaces utilisateur et les formulaires.
🔷 Complexité estimée
Durée estimée : 1 jour
Ressources : Frontend (React, ShadCN), Backend (Node.js, PostgreSQL).
🚀 US016 - Mise à jour des préférences utilisateur
Code : US016
Auteur : Guillaume DELFERIERE
Priorité : Haute
Date de création : 18-02-2025
🔷 Description
En tant qu' utilisateur connecté,
Je souhaite pouvoir mettre à jour mes préférences (langue, notifications, etc.)
Afin de personnaliser mon expérience sur la plateforme
🔷 Valeur pour le client
Permet à l'utilisateur de personnaliser son expérience en fonction de ses préférences, améliorant ainsi son confort d'utilisation
🔷 Critères d'acceptation :
- Une rubrique Préférences dans la page Settings permet l'édition des préférences
- Les modifications sont enregistrées et appliquées immédiatement
- Les préférences sont utilisées pour personnaliser l'interface et les notifications
🔷 Scénario de test
- Scénario 1 : Mise à jour des préférences
- L'utilisateur accède à la page Préférences
- L'utilisateur modifie ses préférences et enregistre les changements
- Les préférences sont mises à jour dans la base de données
- Scénario 2 : Application des préférences
- L'utilisateur modifie la langue de l'interface
- L'interface est immédiatement mise à jour avec la nouvelle langue
🔷 Dépendances
Dépend du système de gestion des utilisateurs pour l'authentification et la récupération des préférences
🔷 Tâches Techniques
- Implémenter une rubrique Préférences dans la page settings avec un formulaire d'édition
- Enregistrer les préférences dans la base de données
- Appliquer les préférences à l'interface et aux notifications
🔷 Prérequis techniques
- Base de données (PostgreSQL) : Table preferences pour enregistrer les préférences des utilisateurs
- API : Endpoint Put /users/preferences pour la mise à jour des préférences
- Framework Frontend : ShadCN pour les formulaires de modifications
🔷 Complexité estimée : Moyenne
Durée estimée : 1 jour
Ressources : Frontend(React, ShadCN), Backend(Node.js, PostgreSQL)
🚀 US017 - Mise à jour des centres d'intérêts
Code : US017
Auteur : Guillaume DELFERIERE
Priorité : Haute
Date de création : 18-02-2025
🔷 Description:
En tant que utilisateur connecté,
Je souhaite pouvoir mettre à jour mes centres d'intérêt (sports, musique, voyages, etc.),
Afin de recevoir des recommandations personnalisées.
🔷 Valeur pour le client:
Permet à l'utilisateur de recevoir des recommandations et des contenus personnalisés en fonction de ses centres d'intérêt.
🔷 Critères d'acceptation
- Une rubrique Centres d'intérêt dans la page Settings permet l’édition des centres d'intérêt.
- Les modifications sont enregistrées et utilisées pour les recommandations.
- Les recommandations sont mises à jour en fonction des nouveaux centres d'intérêt.
🔷 Scénario de test :
-
Scénario 1 : Mise à jour des centres d'intérêt
- L'utilisateur accède à la page "Centres d'intérêt".
- L'utilisateur modifie ses centres d'intérêt et enregistre les changements.
- Les centres d'intérêt sont mis à jour dans la base de données.
-
Scénario 2 : Application des centres d'intérêt
- L'utilisateur ajoute un nouveau centre d'intérêt.
- Le système propose des recommandations basées sur le nouveau centre d'intérêt.
🔷 Dépendances :
- Dépend de la gestion des utilisateurs pour l'authentification et la récupération des centres d'intérêt.
🔷 Tâches techniques :
- Implémenter une rubrique Centres d'intérêt dans la page Settings avec un formulaire d'édition.
- Enregistrer les centres d'intérêt dans la base de données.
- Utiliser les centres d'intérêt pour les recommandations.
🔷 Prérequis techniques :
- Base de données (PostgreSQL) : Table
interests
pour enregistrer les centres d'intérêt des utilisateurs. - API : Endpoint
PUT /users/interests
pour la mise à jour des centres d'intérêt. - Framework Frontend : ShadCN pour les formulaires de modification.
🔷 Complexité estimée : Moyenne
Durée estimée : 1 jour
Ressources : Frontend (React, ShadCN), Backend (Node.js, PostgreSQL).
🚀 US018 - Suppression du compte utilisateur
Code : US018
Auteur : Guillaume DELFERIERE
Priorité : Moyenne
Date de création : 18-02-2025
🔷 Description
En tant qu' utilisateur,
Je souhaite pouvoir supprimer définitivement mon compte,
Afin de ne plus utiliser l'application et de supprimer mes données
🔷 Valeur pour le client
Permet à l'utilisateur de supprimer son compte et toutes ses données personnelles de la plateforme, assurant ainsi le respect de sa vie privée
🔷 Critères d'acceptation
- Une option de suppression disponible dans les paramètres du compte
- Une confirmation est requise avant suppression
- Toutes les données personnelles de l'utilisateur sont supprimées de la base de données
🔷 Scénario de test
- Scénario 1 : Suppression du compte
- L'utilisateur accède aux paramètres de son compte
- L'utilisateur clique sur l'option de suppression du compte
- Le système demande une confirmation
- L'utilisateur confirme la suppression
- Le compte et les données associées sont supprimés de la base de données
- Scénario 2 : Annulation de la suppression**
- L'utilisateur accède aux paramètres du compte
- L'utilisateur clique sur l'option de suppression du compte
- Le système demande une confirmation
- L'utilisateur annule la suppression
- Le compte reste actif et les données sont conservées
🔷 Dépendances
Dépend de la gestion des utilisateurs pour l'authentification et la suppression des données
🔷 Tâches Techniques
- Implémenter une option de suppression de compte dans les paramètres
- Mettre en place une confirmation avant suppression
- Supprimer toutes les données personnelles de l'utilisateur de la base de données
🔷 Prérequis techniques
- Base de données(PostgreSQL) : Table users pour enregistrer les informations des utilisateurs
- API : Endpoint DELETE /users pour la suppression de compte
- Framework Frontend : ShadCN pour les interfaces de paramètres
🔷 Complexité estimée : Moyenne
Durée estimée : 1 jour
Ressources : Frontend(React, ShadCN), Backend(Node.js, PostgreSQL)
🚀 US019 - Déconnexion d'un utilisateur
Code : US019
Auteur : Guillaume DELFERIERE
Priorité : Moyenne
Date de création : 18-02-2025
🔷 Description
En tant qu' utilisateur connecté,
Je souhaite pouvoir me déconnecter,
Afin de sécuriser mon compte et mettre fin à ma session
🔷 Valeur pour le client
Assure la sécurité du compte utilisateur et évite les accés non autorisés
🔷 Critères d'acceptation
- Un bouton Déconnexion est accessible depuis l'interface utilisateur
- La session utilisateur est détruite après la déconnexion
- L'utilisateur est redirigé vers la page d'accueil après la déconnexion
🔷 Scénario de test
- Scénario 1 : Déconnexion réussie
- L'utilisateur clique sur Déconnexion
- La session est supprimée
- L'utilisateur est redirigé vers la page d'accueil
- Scénario 2 : Tentative d'accès après déconnexion
- L'utilisateur se déconnecte
- L'utilisateur tente d'accéder à une page protégée
- Le système redirige l'utilisateur vers une page de connexion
🔷 Dépendances
Dépend du système des gestions des utilisateurs pour l'authentification et la gestion des sessions
🔷 Tâches Techniques
- Ajout d'un bouton Déconnexion dans l'interface utilisateur
- Invalider la session côté serveur lors de la déconnexion
- Rediriger l'utilisateur vers la page de connexion ou d'accueil après la déconnexion
🔷 Prérequis techniques
- Base de données (PostgreSQL) : Table sessions pour gérer les sessions utilisateurs
- API : Endpoint Post /users/logout pour la déconnexion
- Framework Frontend : ShadCN pour les interfaces utilisateur
🔷 Complexité estimée : Faible
- Durée estimée : 1 jour
- Ressources : Frontend (React, ShadCN), Backend(Node.js, PostgreSQL)