Tous les projets

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

  1. 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.

  2. 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é.

  3. Valeurs métier typées

    Quatre énumérations PHP natives : rôle, statut de projet, statut de tâche et priorité.

  4. 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.

Le modèle de domaine
  1. UtilisateurAdmin · Manager · User
  2. ProjetStatut · échéance
  3. TâcheStatut · priorité
  4. Notification
En appui
  • 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émontre

Que je commence par le modèle : héritage, relations et valeurs typées posés avant la première vue.

Enseignements et suite

Prochaines étapes : les contrôleurs, l’authentification et les workflows CRUD sur ce modèle.

06Technologies

Stack complète

  • PHP 8.1
  • Symfony 5.4
  • Doctrine ORM
  • Doctrine Migrations
  • MySQL
  • PHP enums
  • Twig