SAE : Application Web de Gestion des Sauveteurs (Spéléo-secours)
Développement Fullstack d'une application de gestion de crise en milieu souterrain pour le Spéléo-Secours Français. Implémentation d'une authentification multi-profils, modélisation d'une BDD complexe, et affichage dynamique d'un planning horaire par intervalle de 30 minutes.
1. Le Défi de la Gestion de Crise et de la Fatigue
Lors d'une opération de secours souterrain pouvant durer plus de 72 heures, la gestion efficace des équipes est vitale. L'enjeu était de créer un outil simple et fiable permettant aux bénévoles du SSF de planifier les temps de travail et de repos de plus de 50 sauveteurs en temps réel, afin de prévenir les accidents liés à la fatigue.
Exigences Fonctionnelles Clés
- Sécurité et Accès : Implémentation d'un système d'authentification robuste avec gestion des profils (Administrateur, Gestionnaire, Lecture).
- Gestion des Données : Enregistrement des sauveteurs, de leurs spécialités (médicale, désobstruction, communication, etc.) et des informations générales de l'opération.
- Planning Chronologique : Affichage d'un tableau dynamique où chaque colonne représente un intervalle de 30 minutes depuis le début de l'opération.
- Visualisation Instantanée : Utilisation d'un code couleur pour indiquer l'état de chaque sauveteur (disponible, sous terre, repos, préparation), garantissant une lecture rapide par des utilisateurs non-informaticiens.
2. La Solution Technique & Architecture Fullstack
La solution a été développée en PHP (côté serveur) pour gérer la logique et l'interaction avec la base de données MariaDB. Un accent particulier a été mis sur la modélisation de la BDD pour gérer la dimension temporelle du planning.
Modélisation de la Base de Données (SQL)
- MariaDB 10+ : Base de données relationnelle.
- Tables Maîtresses : Gestion des utilisateurs (profils), des sauveteurs, des spécialités et des types de mission/statuts.
- Table Planning (Cruciale) : Stockage des affectations en fonction d'un index temporel, permettant de relier un sauveteur à un statut pour chaque tranche de 30 minutes.
- Sécurité des Mots de Passe : Utilisation de fonctions de hachage sécurisées lors de l'authentification.
Développement PHP et Sécurité
- PHP 7.4+ : Langage de programmation pour la logique de connexion, les requêtes BDD et la génération HTML.
- Sessions : Gestion des sessions et des droits d'accès pour implémenter les profils Administration, Gestionnaire et Lecture.
- Frise Chronologique : Logique PHP pour calculer dynamiquement le nombre de colonnes du planning en fonction de l'heure de début de l'opération et de l'heure actuelle.
- Validation des Saisies : Vérification et sécurisation des données POST/GET pour prévenir les injections SQL et failles XSS.
3. Validation & Compétences Acquises
L'application a permis de valider la faisabilité d'un système de gestion de ressources complexe, critique et à forte contrainte temporelle, en se basant sur une architecture Web robuste et sécurisée.
Bénéfices Techniques Confirmés
- Développement Fullstack : Maîtrise de l'intégration des technologies PHP (Backend) et SQL (BDD) pour une application dynamique.
- Sécurité des Utilisateurs : Implémentation réussie de l'authentification et de la gestion des droits d'accès complexes.
- Modélisation BDD Avancée : Capacité à concevoir une BDD relationnelle pour gérer des données temporelles (planning par tranches de 30 min).
- Ergonomie : Conception d'une interface simple, visuelle et utilisant le code couleur pour faciliter la prise de décision rapide en situation de crise.
Leçons Apprises
Ce projet a été l'occasion d'approfondir la gestion des droits et des rôles utilisateurs, ainsi que la manière d'optimiser les requêtes SQL pour la construction d'un tableau d'affichage dynamique et potentiellement très grand (longue durée d'opération * grand nombre de sauveteurs).