RM Fil_Rouge_roadmap
Feuille de route : construire un site e-commerce complet avec Symfony 7
1) Préparer l’environnement de travail
Avant d’écrire une seule ligne de code, il faut disposer d’un environnement complet et cohérent :
- Un serveur web, une base de données MariaDB, et l’écosystème PHP/Symfony.
- Un conteneur Docker pour isoler chaque service et simplifier l’installation.
- Un éditeur de code adapté (comme VS Code) et un navigateur pour tester.
Objectif pédagogique : comprendre la structure de base d’un projet Symfony et être capable de lancer l’application localement.
2) Poser les fondations de l’application
Une application Symfony repose sur des composants standards :
- Twig pour gérer les pages HTML et les gabarits.
- Doctrine pour dialoguer avec la base de données.
- Le système de formulaires et de validation pour sécuriser les entrées utilisateurs.
- Un système de tests (PHPUnit) pour vérifier que les fonctionnalités fonctionnent comme prévu.
Objectif pédagogique : découvrir comment Symfony organise le code et comment chaque brique se combine.
3) Concevoir les données et la base
L’étape clé est de réfléchir aux informations à stocker :
- Les produits (nom, prix, stock, description, images).
- Les catégories de produits.
- Les clients (comptes utilisateurs, adresses).
- Les commandes (articles choisis, montant, état de paiement).
- Les factures, les bons de livraison et les paiements.
- Les fournisseurs et les commandes d’achat pour la gestion du stock.
Objectif pédagogique : comprendre comment modéliser des données métier dans une base relationnelle.
4) Créer le catalogue et la navigation
Les premières pages visibles permettent de consulter le catalogue :
- Une page d’accueil.
- Des listes de produits par catégorie.
- Une page de détail pour chaque produit.
- Une navigation claire et accessible (menus, filtres, moteur de recherche simple).
Objectif pédagogique : apprendre à utiliser Twig pour générer des pages dynamiques à partir de données.
5) Mettre en place les comptes et la sécurité
Un site marchand doit gérer des utilisateurs :
- Inscription et connexion sécurisées.
- Protection des mots de passe.
- Différents rôles (client, administrateur).
- Page “Mon compte” pour consulter ses commandes.
Objectif pédagogique : comprendre l’importance de la sécurité et des rôles utilisateurs dans Symfony.
6) Gérer le panier et la commande
C’est le cœur de l’expérience e-commerce :
- Ajouter et retirer des produits d’un panier.
- Conserver le panier même après avoir quitté la page (session).
- Résumer la commande et collecter les adresses de facturation et livraison.
- Créer une commande en attente.
Objectif pédagogique : apprendre à manipuler l’état d’une application (sessions, calculs de prix, TVA).
7) Intégrer le paiement en ligne
Une boutique doit proposer un paiement sécurisé.
- Créer une commande “en attente”.
- Envoyer le montant à Stripe pour créer un paiement.
- Laisser le client saisir ses informations bancaires dans un module sécurisé.
- Recevoir la confirmation de Stripe (succès ou échec).
- Mettre à jour le statut de la commande en fonction de la réponse.
Objectif pédagogique : comprendre comment intégrer un service externe (Stripe) et sécuriser les flux financiers.
8) Gérer le back-office (administration)
Le site doit permettre au personnel de gestion de travailler efficacement :
- Ajouter, modifier ou supprimer des produits et des catégories.
- Consulter et gérer les commandes des clients.
- Créer et suivre des factures et des bons de livraison.
- Gérer les fournisseurs et les commandes d’achat pour réapprovisionner le stock.
- Suivre les mouvements de stock et les ajustements.
Objectif pédagogique : comprendre la différence entre les écrans côté client et côté administrateur.
9) Générer les documents (factures, BL)
Les documents commerciaux doivent être clairs et conformes :
- Numérotation automatique (unique et chronologique).
- Génération de factures PDF immuables.
- Bons de livraison lors des expéditions.
- Possibilité de créer des avoirs en cas de remboursement.
Objectif pédagogique : relier la gestion métier (commandes, expéditions) à la production de documents légaux.
10) Garantir la qualité et la conformité
Un projet sérieux doit intégrer :
- Des tests automatiques pour limiter les bugs.
- Le respect des règles de sécurité (authentification, validation des données, conformité RGPD).
- Une accessibilité minimale (contrastes, navigation clavier, respect du RGAA).
- Une surveillance des performances et une documentation claire.
Objectif pédagogique : sensibiliser aux exigences professionnelles qui vont au-delà du simple code.
11) Déployer et maintenir
Enfin, l’application doit être mise en ligne :
- Préparer un environnement de pré-production pour tester.
- Mettre en place l’intégration continue (tests, qualité, déploiement automatisé).
- Surveiller les erreurs et les sauvegardes.
- Organiser la maintenance : mises à jour, sécurité, nouvelles fonctionnalités.
Objectif pédagogique : comprendre le cycle de vie complet d’une application web professionnelle.