Dans le cadre des Ateliers de Professionnalisation du BTS SIO SLAM, j’ai participé au développement de l’application GSB Frais, une application métier destinée à centraliser la gestion des frais professionnels des visiteurs médicaux du laboratoire pharmaceutique Galaxy Swiss Bourdin (GSB).
L’objectif de l’application est de fournir une interface web sécurisée permettant aux visiteurs d’enregistrer leurs frais (forfaitisés ou hors forfait), de suivre l’état de leurs remboursements, et aux comptables de gérer la validation, la régularisation et la mise en paiement. Le projet s’intègre dans une logique de modernisation du suivi terrain et d’amélioration de la qualité de service interne.
L’architecture suit une logique MVC PHP “maison” (sans framework), avec un modèle de données relationnel en MySQL, une interface en HTML/CSS (normée), et une documentation technique générée automatiquement.
AC14.01 – Exploiter de manière autonome un environnement de développement efficace et productif
Dans ce projet, j’ai mis en place un environnement de développement complet basé sur NetBeans, configuré pour la gestion de projets PHP avec support MySQL et la génération automatique de documentation. J’ai également utilisé Git pour le versionnage du code. Cela m’a permis de travailler de façon autonome et structurée, en m’assurant que mes développements étaient reproductibles, bien documentés et faciles à maintenir. La maîtrise de mon environnement m’a permis d’optimiser mon temps, d’anticiper les erreurs et de mieux organiser mes tâches, comme dans un contexte professionnel réel.
AC14.02 – Produire des pages Web fluides incluant un balisage sémantique efficace et des interactions simples
Une attention particulière a été portée à la qualité du code HTML et CSS. Les pages que j’ai développées respectent les standards du W3C, en utilisant des balises sémantiques pour structurer les contenus (titres, tableaux, boutons d’action, formulaires) et en assurant une bonne accessibilité. J’ai veillé à rendre l’interface intuitive, épurée, et ergonomique, en m’appuyant sur des principes simples d’UX design. Cela permet à l’utilisateur de comprendre rapidement comment naviguer et interagir avec l’application, même sans formation préalable.
AC14.03 – Générer des pages Web à partir de données structurées
L’application repose sur une base de données relationnelle modélisée en MySQL. Grâce au modèle PDO encapsulé dans une classe dédiée, les données sont interrogées de manière sécurisée, puis utilisées pour construire dynamiquement les vues (liste des frais, fiches validées, détails de remboursement). J’ai su exploiter cette logique pour créer des pages dynamiques, adaptées aux besoins des utilisateurs (visiteurs et comptables), en veillant à respecter les contraintes de sécurité, de performance et de clarté.
AC14.04 – Mettre en ligne une application Web en utilisant une solution d’hébergement standard
J’ai été amené à mettre en ligne l’application sur un serveur distant, en respectant les procédures de configuration (transfert FTP, paramétrage du fichier config.php, gestion des permissions et des chemins relatifs, encodage UTF-8, etc.). Cette étape m’a permis d’acquérir une vision globale du processus de mise en production d’une application web, depuis l’environnement local jusqu’à la version finale déployée et testée dans des conditions proches de celles du réel.
AC14.05 – Modéliser les données d’une application Web
Avant le développement de certaines fonctionnalités, j’ai étudié la base de données existante et son modèle relationnel. Cela m’a permis de comprendre les relations entre les entités clés (fiche de frais, frais forfaitisés, frais hors forfait, visiteurs, états, véhicules). J’ai ensuite adapté ou exploité cette modélisation pour gérer de nouveaux cas d’usage (par exemple, le traitement différencié des frais kilométriques selon la puissance du véhicule). Cette étape de modélisation m’a appris à anticiper les besoins applicatifs tout en garantissant la cohérence des données.
AC14.06 – Déployer et personnaliser une application Web en utilisant un CMS ou un framework MVC
Même si aucun CMS ou framework n’a été imposé, j’ai respecté une structuration stricte de type MVC (Modèle – Vue – Contrôleur), en me basant sur les cas d’utilisation fournis. Chaque fonctionnalité est associée à un contrôleur spécifique, qui traite les données via les modèles et affiche les résultats dans des vues dédiées. Ce découpage clair m’a permis de mieux organiser mon code, de faciliter les tests et les évolutions, et de développer une rigueur essentielle pour travailler sur des projets plus complexes ou en équipe dans un cadre professionnel.
1. Intégration d’une logique métier complexe (validation, clôture, refus)
La gestion des fiches de frais nécessitait un suivi précis de l’état des demandes (en attente, validée, refusée). Pour cela, j’ai mis en place des contrôleurs dédiés, adaptés aux cas d’usage et respectant le cycle métier décrit dans les spécifications.
2. Sécurisation des données (authentification, hashage)
Les mots de passe des utilisateurs étaient à stocker de manière sécurisée. J’ai utilisé SHA-256 pour le hashage et justifié le refus de SHA-1/MD5 en expliquant leurs failles de collision.
3. Prise en charge des frais kilométriques variables
Les remboursements varient selon la puissance du véhicule. Une logique conditionnelle a été codée pour appliquer dynamiquement le bon barème à chaque fiche.
4. Cohérence visuelle et validation CSS/HTML
L’interface devait respecter les normes HTML5/CSS3. J’ai utilisé les validateurs W3C pour m’assurer de la conformité du rendu, tout en harmonisant les formulaires entre les modules visiteur et comptable.