EPIC: Gestion utilisateur - loyde07/RDI25 GitHub Wiki

Description de l'EPIC

L'EPIC consiste à permettre à un utilisateur non connecté de créer un compte sur la plateforme via un formulaire d'inscription, en stockant ses informations de manière sécurisée dans la base de données, avec association à une école existante. Cette fonctionnalité est le point d’entrée essentiel pour accéder aux autres services tel que l'inscription ou l'adhésion à une team sur la plateforme. Cet EPIC vise à implémenter le processus complet d'inscription d’un utilisateur . Il comprend la création d’un formulaire React, la communication avec une API Express, le traitement des données en backend avec gestion des fichiers, et l’enregistrement sécurisé de l’utilisateur dans MongoDB. L’utilisateur pourra ainsi accéder à son espace personnel, avec un profil associé à une école et une team, et modifier ses informations par la suite.

Page d'inscription

C'est un formulaire contenant plusieurs champs qui sont les suivants:

  • le nom : NOM du nouvel utilisateur connecté
  • le prénom : PRENOM du nouvel utilisateur connecté
  • l'email: EMAIL qui doit être unique, servant à l'authentification de l'utilisateur concerné.
  • le mot de passe: MOT DE PASSE exigeant de respecter les règles conventionnelles d'introduction d'un mot de passe à savoir :
    • contenir une majuscule
    • posséder au moins un chiffre
    • posséder au moins un caractère spécial
    • posséder au moins 8 caractère d'autant plus que le mot de passe sera lui chiffrer dans la base de données

Une fois les informations entrées et valides, un bouton de confirmation vous redirige vers la page du compte nouvellement crée

Page de connexion

Permet à un utilisateur possédant déjà un compte de venir entrée ses informations afin d'accéder aux services de la platform. Elle comprend les champs email et mot de passe permettant d'identifier l'utilisateur connecté. Tout comme pour la page d'inscription un bouton se connecter pour redirigé l'utilisateur vers sa page de compte.

Page du compte

La page où un utilisateur connecté peut voire toutes ses informations de compte (le nom, le prénom et l'email), elle offre également la possibilité à un utilisateur de modifier son profil sous forme d'un formulaire avec les champs similaire en changeant les valeurs tantôt cité en plus du mot de passe. Le joueur peut également importer un logo qui remplacera l'image par défaut.

Dans cette fenêtre, il sera également possible de créer ou de voire les information relatif à la team et ses différents membres.

User Stories

USR01 – Inscription en tant que visiteur

En tant que visiteur (utilisateur non connecté),
je veux accéder à une page d’inscription avec un formulaire,
afin de créer un compte personnel et commencer à utiliser la plateforme.

Critères d'acceptation :

  • Tous les champs requis sont visibles : prénom, nom, email, mot de passe, école et niveau.
  • Le mot de passe respecte les règles de sécurité.
  • Le bouton "S’inscrire" est actif seulement si tous les champs sont valides.
  • En cas d’erreur (email déjà pris, mot de passe faible), un message clair est affiché.
  • Une fois inscrit, je suis redirigé vers la page de mon compte.

USR02 – Connexion en tant que visiteur

En tant que visiteur,
je veux accéder à une page de connexion,
afin d’entrer mes identifiants et accéder à mon compte joueur.

Critères d'acceptation :

  • Je peux entrer mon email et mon mot de passe.
  • Je suis redirigé vers ma page de compte si mes identifiants sont valides.
  • Un message d’erreur s’affiche si l’un des champs est incorrect.
  • L’authentification sécurisée est respectée (vérification hash + token/session).

USR03 – Consultation du compte en tant que joueur

En tant que joueur (utilisateur connecté),
je veux accéder à la page de mon compte,
afin de consulter mes informations personnelles.

Critères d'acceptation :

  • Je vois mon prénom, nom, email, niveau, école et logo (si défini).
  • Je vois les informations de ma team s’il y en a une.

USR04 – Modification du profil en tant que joueur

En tant que joueur,
je veux pouvoir modifier mes informations personnelles,
afin de mettre à jour mes données (pseudo, mot de passe, logo, etc.).

Critères d'acceptation :

  • Tous les champs sont pré-remplis.
  • Je peux modifier chaque champ (sauf l’email).
  • Je peux importer un nouveau logo.
  • Le mot de passe est soumis aux mêmes règles de sécurité que lors de l’inscription.
  • Je suis notifié en cas de succès ou d’échec.

USR05 – Création ou adhésion à une team

En tant que joueur,
je veux créer une nouvelle team ou rejoindre une team existante,
afin d’interagir avec d’autres joueurs sur la plateforme.

Critères d'acceptation :

  • Je peux voir les équipes existantes.
  • Si je n’ai pas de team, je peux en créer une ou rejoindre une.
  • Je vois les membres de ma team.

USR06 – Gestion des utilisateurs en tant qu’admin

En tant qu’admin,
je veux voir tous les utilisateurs inscrits sur la plateforme,
afin de pouvoir modérer, supprimer ou modifier leurs droits si besoin.

Critères d'acceptation :

  • Je peux voir une liste de tous les utilisateurs inscrits.
  • Je peux supprimer un utilisateur ou modifier ses informations (hors mot de passe).
  • Je peux leur attribuer un rôle (joueur, modérateur, etc.).