LaLegionDuPhenix est une plateforme web développée avec Symfony, conéºue pour gérer une communauté autour de jeux en ligne ou de jeux de ré┤le personnalisés. Elle permet aux utilisateurs de s’inscrire, de gérer leur profil, et d'interagir avec différents jeux disponibles sur le site. Chaque utilisateur peut se voir attribuer un statut spécifique dans chaque jeu, ce qui reflète son ré┤le ou sa progression dans l’univers du jeu concerné. Les jeux sont présentés avec un titre, une description, et des visuels dédiés. Les utilisateurs peuvent également personnaliser leur profil avec une image, ce qui améliore l’expérience communautaire. L’interface semble pensée pour l'administration collaborative et l’organisation d’activités autour d’univers ludiques. Le projet inclut une interface de gestion cé┤té admin pour ajouter ou modifier des jeux, des utilisateurs et leurs statuts.
Compétences associées :Organiser son développement professionnel
Structure relationnelle complète legion du phenix
La base de données du projet LaLegionDuPhenix repose sur un modèle relationnel structuré autour des entités : User, Game, StatusUserInGame, GamePicture, et ProfilPicture. Chaque utilisateur peut participer à plusieurs jeux, et un statut lui est attribué pour chacun via une table intermédiaire. Les jeux disposent de visuels, tout comme les utilisateurs, ce qui renforce la personnalisation de l’interface. Cette structure permet une gestion évolutive des ré┤les, des permissions, et des contenus liés à chaque jeu. Elle pose les fondations solides pour le développement d’un système complet de suivi de l’activité des joueurs. L’intégrité des données est assurée par un ensemble cohérent de clés étrangères.
Modélisation des entités
Le projet repose sur 5 entités Doctrine : User, Game, StatusUserInGame, GamePicture, ProfilPicture. Celles-ci sont automatiquement synchronisées avec la base MySQL à l’aide des migrations. Chaque relation est clairement exprimée en annotations (@ORMManyToOne, etc.), avec des champs bien typés.
Le modèle relationnel met en évidence les liens entre utilisateurs, jeux, statuts et visuels, avec un schéma clair et complet.
Gestion des utilisateurs cé┤té administration
Cette fonctionnalité permet aux administrateurs de consulter, modifier ou supprimer des comptes utilisateurs à travers un panneau d’administration sécurisé. Depuis l’interface /admin/manage/user, les administrateurs accèdent à la liste complète des utilisateurs enregistrés. Ils peuvent modifier le profil d’un utilisateur (nom, prénom, email, date de naissance, adresse, ville, statut de séniorité) via un formulaire AJAX dynamique. Chaque mise à jour déclenche une notification (via bus d’événement) confirmant les modifications apportées. L’interface propose également la suppression d’un compte utilisateur via une méthode sécurisée, accessible uniquement aux administrateurs disposant du ré┤le ROLE_SUPER_ADMIN. Cette gestion complète permet de superviser la communauté de manière fluide et centralisée.
Affichage de la liste des utilisateurs
La méthode index() du contré┤leur récupère tous les utilisateurs via le UserRepository et les passe à la vue admin_manage_user/index.html.twig. Cette page affiche une table contenant tous les utilisateurs avec leurs ré┤les, statuts, et options d'action.
Affiche le contré┤leur Symfony préparant les données (utilisateurs, ré┤les, statuts) pour le tableau d’administration.
Modification d’un utilisateur (AJAX)
La méthode editUser() permet de modifier les informations d’un utilisateur via des requêtes AJAX. Elle vérifie les champs reéºus (nom, prénom, ville, code postal, statut...), les applique sur l’entité User, puis enregistre les changements via flush(). Une notification (MailUpdateUserByAdmin) est ensuite envoyée à l’utilisateur concerné pour confirmer la mise à jour.
Le contré┤leur traite dynamiquement chaque champ reéºu et déclenche une notification après la mise à jour.
Suppression d’un utilisateur
La méthode deleteUser() permet de supprimer définitivement un utilisateur via une requête POST. L’accès à cette route est protégé par un contré┤le de ré┤le (ROLE_SUPER_ADMIN). Une fois supprimé, l’utilisateur est retiré de la base de données et l’admin est redirigé vers la liste principale.
Cette capture montre la suppression d’un utilisateur avec gestion des permissions et retour sécurisé.
Gestion des jeux cé┤té administration
Cette fonctionnalité permet aux administrateurs de créer, modifier ou supprimer des jeux directement depuis l’interface d’administration. Lorsqu’un jeu est ajouté, l’admin peut spécifier un titre, une description, un game master, un créneau horaire (semaine/heure), et un nombre de places. Une fois créé, des notifications sont automatiquement envoyées aux utilisateurs et au maé«tre du jeu concerné. L’édition d’un jeu permet de modifier dynamiquement toutes ses propriétés via des requêtes AJAX, tout en gérant les ré┤les liés et les envois de mails de mise à jour. La suppression d’un jeu entraé«ne le retrait de tous les liens utilisateurs et l’envoi d’un message d’information à chaque joueur. Ce module est essentiel pour assurer une animation régulière et structurée de la communauté.
Affichage de la liste des jeux
La méthode index() récupère tous les jeux via le GameRepository et les passe à la vue Twig. Elle fournit aussi les statuts (NEW_GAME, ACTIVE_GAME, FINISH_GAME) et les créneaux de semaine et d’horaire.
Le contré┤leur envoie tous les jeux, les utilisateurs et les paramètres d'affichage à la vue admin.
Ajout d’un nouveau jeu
La méthode addGame() construit un objet Game à partir des données AJAX envoyées par formulaire. Elle gère la création du jeu, l’association du game master, les créneaux, les places, et déclenche des emails d’information à toute la communauté.
Montre la création complète d’un jeu avec enregistrement, affectation d’un MJ et envoi de mails.
Modification et suppression d’un jeu
La méthode editGame() met à jour dynamiquement toutes les informations d’un jeu (titre, description, créneaux, MJ, etc.) et notifie les joueurs concernés. La méthode deleteGame() supprime un jeu, ses images, ses participants et envoie un mail de confirmation à tous les utilisateurs liés.
Regroupe les traitements de modification et de suppression, ainsi que les appels aux services de notification et de nettoyage des fichiers.