Contexte du projet

Vous êtes un développeur web full-stack chez YouCode, et votre mission consiste à mettre en place une application web pour digitaliser le système de gestion d'école.

Histoire d'utilisateurs :

En tant qu'utilisateur, je veux pouvoir me connecter avec mon adresse email et mon mot de passe pour accéder à mon compte. ​

En tant qu'utilisateur, je veux pouvoir m'inscrire en fournissant mon nom, prénom, adresse email et choisir un mot de passe pour créer un compte. ​

En tant qu'administrateur, je veux pouvoir attribuer des rôles aux utilisateurs (formateur, apprenant, administrateur, etc.) lors de leur inscription ou après confirmation de leur compte.

En tant qu'administrateur, je veux pouvoir accéder à un tableau de bord pour consulter les statistiques et avoir une vision globale.

En tant qu'administrateur, je veux pouvoir modifier, supprimer et banner un formateur.

En tant qu'administrateur, je veux pouvoir modifier, supprimer et banner un compte apprenant.

En tant que formateur, je veux pouvoir créer, modifier et supprimer une classe.

En tant que formateur, je veux pouvoir ajouter un ou plusieurs apprenants à ma classe.

En tant qu'apprenant, je veux pouvoir consulter ma classe.

Bonus :

En tant qu'administrateur, je veux pouvoir modifier les rôles des utilisateurs existants.

En tant qu'administrateur, je veux avoir un accès spécial pour gérer les rôles et les permissions des utilisateurs.

Extra bonus (WebSocket):

En tant qu'utilisateur, je veux pouvoir envoyer un message en temps réel à un autre utilisateur connecté.

En tant qu'utilisateur, je veux recevoir une confirmation lorsque mon message est envoyé avec succès.

En tant qu'utilisateur, je veux être notifié instantanément lorsqu'un nouveau message est reçu.