Problème → Solution → Impact
Le problème clientThe client problem
Le service de transport de l'Université des Montagnes gérait sa flotte (bus, trajets, carburation, vidanges) entre des fichiers Excel et des carnets papier dispersés entre 6 rôles métier.The transport department of the University of Mountains was managing its fleet (buses, trips, fuel, oil changes) across Excel files and paper notebooks scattered between 6 business roles.
Conséquences : rapports mensuels prenant 3 h, doublons et pertes d'info, aucune visibilité temps réel sur la disponibilité et la maintenance.Consequences: monthly reports taking 3 hours, duplicates and information loss, no real-time visibility on availability and maintenance.
Ma solutionMy solution
Plateforme web Flask 2.3 + SQLAlchemy + MySQL avec RBAC à 6 rôles, services métier (Trajet, Rapport), validations centralisées et déploiement Docker multi-stage reproductible.Web platform Flask 2.3 + SQLAlchemy + MySQL with 6-role RBAC, business services (Trip, Report), centralized validations and reproducible multi-stage Docker deployment.
Impact concretConcrete impact
Génération des rapports passe de 3 h à ~5 min, traçabilité 100 % des actions, alertes maintenance automatiques.Report generation goes from 3 h to ~5 min, 100% action traceability, automatic maintenance alerts.
Audit SonarQube A / A / A avec 70,2 % de couverture, 0 hotspot de sécurité.SonarQube audit A / A / A with 70.2% coverage, 0 security hotspots.