Easy2Drive (E2D) est un projet d'application web multi-utilisateurs destiné à la gestion d'auto-écoles (Directeurs, Formateurs, Élèves). Réalisé dans le cadre de deux sessions "piscines" intensives en 1ère année de BTS SIO, le projet imposait la conception d'une solution applicative complète couplée à une infrastructure réseau virtualisée sous Proxmox.
En tant que Chef de projet, j'ai orchestré le travail d'une équipe de 4 personnes (2 développeurs SLAM et 2 administrateurs système SISR). Mon rôle a été d'assurer la coordination transversale entre le pôle Développement et le pôle Infrastructure, tout en participant activement au codage de l'application. Le projet s'est déroulé en 2 grandes phases : Piscine 1 (Fonctionnelle) : Développement des fonctionnalités métier et déploiement d'infrastructures. Piscine 2 (Sécurité & Audit) : mise en conformité RGPD, gestion fine des privilèges et journalisation des événements.
Besoins :
- Offrir une interface Web responsive avec gestion des rôles (Directeur, Formateur, Élève) et cloisonnement des données par auto-école.
- Repenser l'architecture logicielle vers un modèle MVC Orienté Objet robuste et maintenable.
- Assurer une sécurité applicative et base de données maximale ( chiffrement, gestion d'accès, traçabilité RGPD ).
- Permettre un déploiement continu fluide entre l'équipe Dev (Git) et l'équipe SISR (Serveur Web/BDD).
Réalisations :
- Pilotage & Gouvernance (Chef de projet) : Suivi des tâches via Trello, gestion du versioning sur Gitea/Git, et coordination avec l'équipe SISR pour les scripts de déploiement sur le serveur de production.
- Développement Web & Architecture MVC : Implémentation du pattern MVC en PHP / MySQL avec programmation orientée objet (Utilisateur, Eleve, Formateur). Développement des modules CRUD complets selon la matrice des droits.
- Sécurisation Applicative & Base de données (Piscine 2) :
- Hachage et salage des mots de passe en base via bcrypt / password_hash() et isolation des identifiants dans une table dédiée.
- Politiques de mots de passe strictes (complexité, expiration à 90 jours, renouvellement obligatoire à la 1ère connexion).
- Gestion des privilèges MySQL avec des comptes utilisateurs restreints par rôle (cpt_dir, cpt_for, cpt_ele, cpt_auth).
- Conformité RGPD & Auditabilité : Création d'un système de traçage automatique des événements sensibles (gererLog()) enregistrant les actions (connexions, modifications, suppressions) dans une base de données d'audit dédiée (bdRgpdLog)
Coordination entre les pôles Dev (SLAM) et Infra (SISR) :
- Difficulté : Alignements complexes entre l'avancement du code applicatif et l'architecture réseau hébergée sur l'hyperviseur Proxmox (connexions BDD à distance, droits d'accès au serveur).
- Solution : En tant que chef de projet, mise en place de réunions de journalière, création d'un script de mise à jour de production automatisé (majcode.sh) avec droits restreints pour les devs, et centralisation de la documentation technique sur DokuWiki.
Sécurisation des accès et compartimentage des données en BDD :
- Difficulté : Permettre à l'application de s'interfacer avec la BDD sans donner un accès administrateur global (root) qui compromettrait l'infrastructure.
- Solution : Définition d'une matrice CRUD stricte et création de comptes MySQL spécifiques par type d'utilisateur. Le compte d'authentification (cpt_auth) est isolé et restreint au strict nécessaire.
Conformité RGPD et journalisation non intrusive :
- Difficulté : Tracer les opérations sensibles sur les données utilisateurs.
- Solution : Architecture de logs pointant vers une base de données séparée bdRgpdLog , permettant de garantir l'immuabilité des traces et de simplifier la politique de rétention/purge des logs.
Gérer le patrimoine informatique : Vérifier les niveaux d'habilitation (privilèges MySQL dédiés), gérer des sauvegardes et vérifier le respect des règles d'utilisation (journalisation RGPD).
Répondre aux incidents et aux demandes d'assistance et d'évolution : Evolution du projet en matière de sécurité (logs, salage et hashage, politique de complexité des mots de passe, respects des normes RGPD...).
Développer la présence en ligne de l'organisation : Participer à l'évolution d'un site Web exploitant les données de l'organisation (développement web PHP).
Travailler en mode projet : Analyser les objectifs, planifier les activités et évaluer les indicateurs de suivi via Trello (coordination des équipes SLAM/SISR en tant que chef de projet).
Mettre à disposition des utilisateurs un service informatique : Déployer un service (mise en production de l'application sur serveur web Apache).