Application GSB — Gestion des frais de services
Application web de gestion des notes de frais pour Galaxy Swiss Bourdin (GSB), entreprise pharmaceutique issue de la fusion de deux groupes. Projet officiel du référentiel BTS SIO SLAM (réalisation professionnelle n°1, épreuve E6).
Fonctionnalités principales // features
Authentification sécurisée (rôles visiteur / comptable)
Saisie de fiches mensuelles : frais forfaitisés (repas, nuitées, km) + frais hors forfait avec justificatif
Workflow complet : saisie → clôture → validation → mise en paiement → remboursement
Contrôle et validation des fiches par le service comptable (validation, refus, correction)
Export PDF récapitulatif
Statistiques : total remboursé, demandes en attente, suivi par visiteur
Déroulement du projet // process
Contexte : GSB, issue d'une fusion, doit centraliser la gestion des notes de frais générées par sa force commerciale de visiteurs médicaux répartis sur plusieurs zones. Budget annuel conséquent → besoin d'optimiser le contrôle et de fiabiliser le suivi.
Étape 1 — Analyse du cahier des charges fourni avec le sujet GSB : identification des rôles utilisateurs (visiteur, comptable), des types de frais (forfaitisés / hors forfait), et du processus de validation.
Étape 2 — Modélisation des données : MCD (entité-association), passage au MLD, schéma SQL implémenté sous MySQL 8.0 via phpMyAdmin.
Étape 3 — Modélisation UML de l'application et maquettage des interfaces homme-machine (IHM) : page de connexion, dashboard visiteur, création/édition de fiche, vue récapitulative PDF, dashboard comptable, vues de validation/refus.
Étape 4 — Mise en place de l'architecture MVC en PHP POO (modèles métier, contrôleurs, vues, routeur).
Étape 5 — Développement des fonctionnalités : authentification, saisie de fiche mensuelle (frais forfait + hors forfait), suivi des états (saisie en cours, clôturée, validée, mise en paiement, remboursée).
Étape 6 — Côté comptable : interface de contrôle, validation, refus avec motif, correction si besoin.
Étape 7 — Exploitation des données : totaux remboursés, demandes en attente, statistiques par utilisateur.
Étape 8 — Tests fonctionnels avec les comptes de démo, sécurisation (requêtes préparées PDO, échappement HTML), documentation et dépôt sur GitHub.
Difficultés & solutions // learnings
Difficultés rencontrées
- Bien séparer la logique métier de l'affichage au début (tentation de tout mettre dans la vue).
- Gérer proprement les états successifs d'une fiche de frais (machine à états).
- Sécuriser les accès utilisateurs : sessions PHP, échappement des entrées, autorisations selon le rôle.
Solutions apportées
- Refactor strict en classes Modèle / Contrôleur / Vue, application rigoureuse du pattern MVC.
- Définition d'une énumération d'états (saisie, clôturée, validée, en paiement, remboursée) et transitions encadrées côté contrôleur.
- Utilisation systématique de PDO avec requêtes préparées et de htmlspecialchars sur tout affichage.
Comptes de démonstration // test access
visiteur@gsb.fr
Visiteur123!
Visiteur médical — crée et soumet ses fiches de frais
comptable@gsb.fr
Comptable123!
Comptable — valide ou refuse les demandes de remboursement
Compétences BTS SIO mobilisées // référentiel
Livrables // outputs
- Code source PHP POO (architecture MVC)
- Modèle conceptuel de données (MCD, MLD)
- Modélisation UML de l'application
- Maquette des IHM
- Dossier technique BTS SIO 2026 (annexe VII-1-B)
Bilan personnel // retour d'expérience
Premier projet web d'envergure du référentiel BTS SIO SLAM. M'a permis de mettre en pratique le cycle complet : analyse → modélisation (MCD/MLD/UML) → architecture MVC → développement → tests → documentation. Sensibilisation forte à la sécurité (injections SQL, XSS, gestion des sessions). Code maintenable et extensible, prêt pour une présentation en épreuve E6.