Mon CV
← Retour aux projets
⚙️ Atelier Professionnel · BTS SIO SLAM

🛠️ Service Web et Site — Laboratoire GSB

🏢 Client : Galaxy Swiss Bourdin (GSB) 👤 Rôle : Collaborateur SLAM 🤝 Projet SLAM + SISR 🛠️ PHP · MVC · MySQL · Architecture MVC

📋 Contexte

Le laboratoire Galaxy Swiss Bourdin (GSB) dispose de visiteurs médicaux qui se déplacent pour présenter des produits pharmaceutiques aux prescripteurs. Ces déplacements génèrent des frais pris en charge par la comptabilité. Une application web de gestion de ces frais est en cours de développement et notre équipe a été chargée d'en poursuivre le développement tout en proposant une solution d'hébergement sécurisée.

Ce projet réunissait deux filières : la filière SLAM pour le développement applicatif, et la filière SISR pour l'infrastructure serveur. L'objectif final était de livrer une solution complète, opérationnelle, sécurisée et conforme aux exigences techniques et juridiques du laboratoire.

🎯 Périmètre du projet

🖥️ Mission SISR — Infrastructure

  • Configuration serveur Debian 12 virtualisé (INTRALABE)
  • Déploiement Apache2, PHP, DNS (Bind9)
  • Mise en place du service FTPS (ProFTPD + SSL)
  • Comptes FTP dédiés par site (websgecom, websgefr…)
  • Script de sauvegarde/restauration + CRON
  • Synchronisation cloud via rclone (Proton Drive → Google Drive)
  • POC sécurisation des échanges Web ↔ BDD (SSL, SSH, VPN)

💻 Mission SLAM — Développement

  • Prise en main de l'application GSB-AppliFrais (architecture MVC)
  • Débogage des saisies existantes (fiches de frais)
  • Hachage des mots de passe en base de données
  • Développement du service comptable
  • Gestion des rôles visiteur / comptable
  • Implémentation des états de fiche (Validée, Mise en Paiement)
  • Analyse juridique (RGPD, protection des données)

👤 Ma contribution personnelle

  • Hachage des mots de passe Dès la première semaine, j'ai implémenté le système de hachage des mots de passe dans la base de données MySQL, assurant la protection des données d'authentification des visiteurs médicaux et des comptables. Cette modification a nécessité d'adapter également le contrôleur de connexion pour que la vérification se fasse sur le mot de passe haché.
  • Mise en place des outils de collaboration Configuration des outils de travail collaboratif (Kanboard pour le suivi des tâches, tableau Excel d'avancement) et participation aux stand-up meetings pour coordonner les équipes SLAM et SISR.
  • Conception de l'architecture du service comptable J'ai analysé deux approches possibles pour distinguer visiteurs et comptables, et proposé la solution retenue : l'ajout d'un attribut role dans la table visiteur de la base de données. Cette décision a structuré l'ensemble du développement qui a suivi.
  • Développement du service comptable Modification de la table visiteur (ALTER TABLE visiteur ADD role VARCHAR(20)), adaptation de la méthode getInfosVisiteur pour inclure le rôle dans les requêtes SQL avec paramètres préparés, modification de c_connexion.php pour rediriger selon le rôle, création des vues v_sommaire_comptable.php, v_listeFichesAValider.php et v_validerFiche.php, et création du contrôleur c_validerFrais.php.
  • Évolution du schéma des états de fiche Après analyse avec le laboratoire GSB, j'ai proposé de séparer les états "Validée" et "Mise en Paiement" en deux étapes distinctes plutôt qu'un état combiné, améliorant la traçabilité et la flexibilité pour corriger les fiches avant paiement.
  • Correction de bugs et tests Résolution d'un bug de calcul des totaux dans le contrôleur (les ajouts de frais hors forfait n'étaient pas recalculés dynamiquement), correction de l'affichage des statuts de fiches pour les comptables, et mise en place de la gestion des frais refusés reportés sur le mois suivant.
  • Partie juridique Contribution à l'analyse RGPD de l'application : qualification des données personnelles traitées, identification de la base légale de leur collecte et évaluation des régimes de protection applicables.

⚡ Défis techniques rencontrés côté SLAM

Distinction des statuts de fiches Les statuts "Validée" et "Mise en Paiement" n'apparaissaient pas clairement dans l'interface, créant une ambiguïté pour les comptables.
✅ Résolu par des indicateurs visuels dans v_validerFiche.php
Bug de calcul des totaux En ajoutant un frais hors forfait de 50 €, le total restait bloqué à 1 500 € au lieu de passer à 1 550 €. Erreur dans la logique de mise à jour du contrôleur.
✅ Corrigé via la logique de recalcul dynamique dans c_validerFrais.php
Flux des fiches mal compris L'équipe partait sur un flux linéaire simple, incompatible avec les besoins réels du laboratoire.
✅ Séparation des états "Validée" et "Mise en Paiement" après discussion avec GSB
Frais refusés non reportés Les frais refusés n'étaient pas automatiquement reportés sur le mois suivant, créant des pertes pour les visiteurs.
✅ Implémentation du report automatique dans le script de clôture mensuelle

🔄 Évolution du workflow des fiches de frais

Le schéma initial prévoyait un processus linéaire fusionnant validation et paiement. Après analyse avec le laboratoire GSB, l'état a été scindé en deux pour un meilleur contrôle :

Créée (CR) Clôturée (CL) Validée (VA) Mise en Paiement (MP) ✨ Remboursée (RB)

Cette évolution améliore la traçabilité, offre plus de flexibilité pour corriger une fiche validée avant son paiement, et répond aux exigences opérationnelles du laboratoire.

⚖️ Analyse juridique — RGPD

Données traitées Adresses IP, identifiants de visiteurs, frais de déplacement — qualifiées comme données personnelles au sens de l'article 4 du RGPD.
Base légale Traitement dans un cadre contractuel (exécution du contrat de travail), pouvant dispenser du consentement préalable si les personnes concernées sont informées.
Mesures de protection Hachage des mots de passe, restriction des accès par rôle, authentification sécurisée, journalisation des actions, sauvegardes régulières.
Protection de la BDD La base de données peut bénéficier du droit sui generis (Union européenne) protégeant les investissements réalisés pour sa constitution, indépendamment du droit d'auteur.

🛠️ Environnement technique

PHP (architecture MVC) MySQL / MariaDB phpMyAdmin Apache2 Debian 12 ProFTPD / FTPS rclone CRON Kanboard VirtualBox RGPD

📊 Bilan

✅ Projet terminé

Ce projet m'a permis de travailler sur une application métier réelle en architecture MVC, dans un contexte professionnel avec des contraintes techniques et des délais à respecter. Ma contribution principale a porté sur la sécurisation de l'authentification, la conception et le développement du service comptable, et la résolution de bugs complexes liés aux calculs et aux états des fiches. La collaboration continue avec l'équipe SISR a également renforcé ma capacité à travailler dans un environnement multi-filières.

🎓 Compétences mobilisées

Architecture MVC Développement PHP MySQL / SQL Hachage des mots de passe Gestion des rôles Débogage applicatif Analyse RGPD Coordination SLAM/SISR Kanboard Tests fonctionnels Documentation technique