Outils & Technologies
Contexte
Le site gallo-romain de Fâ, site archéologique et touristique, fait face à une affluence croissante qui engendre des difficultés d'organisation pour le personnel : gestion des entrées, suivi des ateliers proposés aux visiteurs, coordination des créneaux horaires et des réservations.
Dans le cadre du BTS SIO 2e année, cet atelier consistait à proposer une solution numérique pour fluidifier ces processus. L'objectif était de concevoir et développer une application web complète en PHP 8 reposant sur une architecture MVC robuste, les patterns PDO et DAO pour l'accès aux données, et une approche professionnelle incluant sécurité, tests et gestion de projet agile.
-
Gestion des événements, horaires et tarifs du site
-
Architecture MVC avec patterns PDO et DAO — accès aux données découplé
-
Analyse de risques sécurité : scénarios de menaces, gravité & vraisemblance, contre-mesures
-
Tests unitaires et d'intégration automatisés avec PHPUnit
-
Gestion de projet SCRUM — Product Backlog, priorisation par valeur métier et ROI
-
Gestion de versions GIT — création de branches et résolution de conflits
Gestion de projet — SCRUM
Le projet a été conduit selon la méthodologie SCRUM, avec la mise en place d'un Product Backlog listant l'ensemble des fonctionnalités à développer, priorisées selon leur valeur métier et leur retour sur investissement (ROI).
La gestion de versions a été assurée via GIT avec une stratégie de branches : chaque fonctionnalité développée dans sa propre branche, puis intégrée après révision et résolution des conflits de fusion.
-
Product Backlog — fonctionnalités priorisées par valeur métier et ROI
-
Sprints — développement itératif et incrémental des fonctionnalités
-
Branches GIT — une branche par fonctionnalité, fusion contrôlée
-
Résolution de conflits — gestion des merges et synchronisation d'équipe
Architecture technique — MVC
L'application repose sur l'architecture MVC :
les Modèles correspondent aux classes DAO (BaseDAO, EvenementDAO, HoraireDAO, TarifsDAO),
les Vues aux fichiers PHP dans le dossier vues/,
et les Contrôleurs aux classes dans controleurs/.
La connexion à la base de données est centralisée via PDO.
Modèles — Pattern DAO
Le pattern DAO (Data Access Object) isole la logique d'accès à la base de données dans des classes dédiées.
Chaque entité (événement, horaire, tarif) dispose de son propre DAO héritant d'un BaseDAO commun,
garantissant maintenabilité et testabilité du code.
Contrôleurs
Les contrôleurs font le lien entre les requêtes utilisateur et les données issues des DAO.
Chaque entité dispose de son propre contrôleur : ControleurEvenement pour les événements et
ControleurHoraire pour la gestion des créneaux horaires des ateliers.
Vues & Application
Les vues PHP affichent dynamiquement les données récupérées par les contrôleurs depuis les DAO. L'interface permet aux visiteurs de consulter les événements, de voir les détails d'un atelier avec ses créneaux horaires et tarifs, et de réserver leur place.
Sécurité applicative
La sécurité a été un axe central du projet. Une analyse des risques formelle a été menée : identification des scénarios de menaces, évaluation de leur gravité et de leur vraisemblance, puis mise en œuvre de contre-mesures techniques adaptées.
Contre-mesure : requêtes PDO préparées avec paramètres liés — aucune concaténation directe dans les requêtes.
Contre-mesure : échappement systématique des sorties avec htmlspecialchars() avant affichage dans les vues.
Contre-mesure : contrôle d'accès côté serveur, validation des entrées utilisateur et séparation des rôles.
Contre-mesure : gestion des erreurs PDO sans exposition de détails techniques, configuration de la base de données hors racine web.
Tests unitaires & d'intégration
Pour garantir la fiabilité du code, des tests unitaires et d'intégration automatisés ont été réalisés avec PHPUnit. Ces tests couvrent les méthodes des DAO (récupération, insertion, mise à jour) ainsi que les contrôleurs, afin de détecter rapidement toute régression lors des évolutions du code.
-
Tests unitaires — validation isolée des méthodes DAO (PDO, requêtes préparées)
-
Tests d'intégration — vérification du bon fonctionnement de la chaîne Contrôleur → DAO → BDD
-
Exécution automatisée — détection rapide des régressions lors des mises à jour
Ma contribution
-
Architecture MVC complète — mise en place de la structure Modèle / Vue / Contrôleur avec PDO et DAO
-
Classes DAO — implémentation de
BaseDAO,EvenementDAO,HoraireDAOetTarifsDAOavec requêtes PDO préparées -
Contrôleurs — développement de
ControleurEvenementetControleurHorairepour le routage des requêtes -
Analyse de risques sécurité — identification des menaces (SQL, XSS, accès non autorisé) et mise en œuvre des contre-mesures
-
Tests PHPUnit — rédaction des tests unitaires et d'intégration couvrant les DAO et les contrôleurs
-
Gestion de projet SCRUM — construction du Product Backlog, priorisation par valeur métier et gestion des sprints
Résultats & Apprentissages
Ce projet m'a permis de consolider mes compétences en conception logicielle professionnelle, en appliquant une architecture MVC rigoureuse et les patterns DAO/PDO dans un contexte concret. La dimension sécurité m'a sensibilisée à l'identification des risques applicatifs et à la mise en œuvre de contre-mesures adaptées dès la conception.
La méthodologie SCRUM et l'utilisation avancée de GIT (branches, conflits) m'ont donné une expérience de la gestion de projet agile et du travail collaboratif professionnel. Les tests automatisés avec PHPUnit ont renforcé ma rigueur dans la livraison d'un code fiable et maintenable.