Retour aux projets

Étude de cas

Gestion de Scolarité - Application Symfony

Page d'accueil
Liste des étudiants
Détail d'un étudiant
Gestion des diplômes
Gestion des promotions
Formulaire d'édition
Projet de formation

Contexte

Ce projet de formation vise à maîtriser le framework Symfony, référence du développement web PHP en entreprise. Le cas d'usage est une application de gestion académique avec un modèle de données relationnel complexe.

Le projet mobilise les compétences Réaliser (développement full-stack avec framework MVC) et Gérer (modélisation relationnelle avec ORM). Il permet de mettre en pratique l'architecture MVC, l'ORM Doctrine, le système de sécurité et les formulaires avec validation.

Problème & objectifs

Problème

  • Maîtriser un framework full-stack structurant (architecture MVC)
  • Modéliser des relations complexes entre entités avec un ORM
  • Implémenter un système d'authentification et d'autorisation par rôles
  • Appliquer des règles de validation métier côté serveur

Objectifs

  • Développer une application CRUD complète avec Symfony 7.3
  • Modéliser les relations Étudiant-Diplôme (ManyToMany) et Étudiant-Promotion (ManyToOne)
  • Implémenter la sécurité avec authentification et autorisations par rôles (USER, ADMIN)
  • Utiliser les outils de productivité Symfony (maker-bundle, fixtures)

Approche

Le développement suit les conventions et bonnes pratiques du framework Symfony :

  • modélisation du domaine métier avec Doctrine ORM et définition des relations ;
  • génération des controllers CRUD via le maker-bundle ;
  • implémentation du système de sécurité avec attributs PHP 8 (#[IsGranted]) ;
  • templating Twig avec layouts réutilisables et intégration Bootstrap.

Cette approche illustre la compétence Réaliser : utiliser efficacement un framework pour développer une application maintenable.

Points techniques

Backend : Symfony 7.3 avec PHP 8.2+, architecture MVC, controllers générés via maker-bundle, attributs PHP 8 pour les routes et autorisations (#[Route], #[IsGranted]).

Base de données : Doctrine ORM 3.3 avec relations bidirectionnelles ManyToMany (Étudiant-Diplôme), ManyToOne (Étudiant-Promotion), repositories personnalisés.

Sécurité : Symfony Security Bundle avec authentification (login/register/logout), hashing Argon2/bcrypt, protection CSRF, autorisations par rôles (ROLE_USER, ROLE_ADMIN).

Frontend : Twig avec layouts et partials (_form, _delete_form), Bootstrap 5.3 thème Bootswatch Cerulean, Stimulus JS, Asset Mapper avec importmap.

Outils : Cocur/Slugify pour les URLs lisibles, Faker et Zenstruck/Foundry pour les fixtures (50 étudiants, 10 diplômes, 5 promotions), PHPStan pour l'analyse statique.

Résultats

L'application développée propose :

  • un CRUD complet pour les trois entités avec gestion des relations complexes ;
  • un système d'authentification sécurisé avec gestion des rôles ;
  • des URLs SEO-friendly générées automatiquement via slugification ;
  • une interface responsive avec feedback utilisateur (flash messages).

Le projet respecte les conventions Symfony et démontre la maîtrise des concepts fondamentaux d'un framework full-stack.

Ce que j'ai appris

  • Réaliser : maîtriser l'architecture MVC et le cycle de vie des requêtes Symfony ;
  • Gérer : modéliser des relations complexes avec Doctrine ORM ;
  • Réaliser : implémenter un système de sécurité complet (authentification, autorisations) ;
  • Réaliser : utiliser les attributs PHP 8 pour les annotations déclaratives ;
  • Réaliser : exploiter les outils de productivité (maker-bundle, fixtures, analyse statique).

Ce projet constitue un apprentissage approfondi du développement avec un framework structurant, compétence essentielle pour le développement d'applications métier en entreprise.

Ce projet vous intéresse ?

Discutons de vos besoins et voyons comment je peux vous aider à concrétiser votre projet.