Backend & applications web
Task Management System · Symfony
Le modèle de domaine, en Symfony et Doctrine, d’une application où une équipe organise son travail : utilisateurs hiérarchisés, projets, tâches, notifications et valeurs métier typées.
- Centré sur le modèle de domaine
- Projet individuel
- entités Doctrine
- 7
- énumérations PHP natives
- 4
- sous-types d’utilisateur (JOINED)
- 3
01Le point de départ
Contexte & mission
Le problème
Dans une application de gestion de tâches, presque tous les bugs viennent d’un modèle mal posé : des rôles en chaînes libres, des statuts incohérents, des relations floues.
La mission
Poser d’abord un modèle de domaine solide, avant les écrans et les workflows.
Mon rôle
Projet personnel, distinct de l’application confidentielle réalisée pendant mon stage chez ALTEN en 2024, malgré un sujet proche.
02Réalisation
Ce que j’ai fait
Hiérarchie d’utilisateurs
Une entité de base Utilisateur et trois sous-types (Admin, Manager, User), mappés avec l’héritage JOINED de Doctrine.
Projets et tâches
Un projet a une description, une échéance, un statut et ses tâches ; une tâche a une échéance, un statut, une priorité, un projet et un utilisateur assigné.
Valeurs métier typées
Quatre énumérations PHP natives : rôle, statut de projet, statut de tâche et priorité.
Notifications
Une entité Notification liée à l’utilisateur, base des futurs workflows de notification.
03Conception
Architecture
Symfony 5.4 et Doctrine ORM : entités, énumérations, repositories et migrations versionnées. Les workflows applicatifs viendront ensuite sur ce modèle.
- UtilisateurAdmin · Manager · User
- ProjetStatut · échéance
- TâcheStatut · priorité
- Notification
- Enums PHPRole · statuts · Priority
- DoctrineJOINED · migrations
04Impact
Résultats
- Un modèle de domaine complet et typé, prêt à recevoir les workflows.
- Un schéma versionné par les migrations Doctrine.
05Bilan
Ce que j’en retiens
Ce que ce projet démontreQue je commence par le modèle : héritage, relations et valeurs typées posés avant la première vue.
06Technologies
Stack complète
- PHP 8.1
- Symfony 5.4
- Doctrine ORM
- Doctrine Migrations
- MySQL
- PHP enums
- Twig