Gestion de Projet
Application Web GSB — PHP / MySQL

📋 Présentation du projet

Contexte : Dans le cadre du BTS SIO option SLAM (session 2026), développement d'une application web de gestion des visites médicales pour l'entreprise fictive GSB (Galaxy Swiss Bourdin), hébergée sur OVH.
Réalisation n°1
Chef de projetHernandez Kenny
ModalitéProjet individuel
PériodeSeptembre 2025 → Décembre 2025
HébergementOVH (mutualisé CGI)
Dépôt GitHubgithub.com/Kenny-Her/Gsb_Appli_Web
URL productionkenny-hernandez.com/Gsb_Appli_Web

🎯 Objectifs

#ObjectifStatut
1Authentification sécurisée avec gestion des rôles (Visiteur, Délégué, Responsable, Admin)✔ Réalisé
2Rédaction et gestion des rapports de visites médicales✔ Réalisé
3Gestion des praticiens (type, région, coordonnées)✔ Réalisé
4Gestion des produits pharmaceutiques avec famille thérapeutique✔ Réalisé
5Tableau de bord avec statistiques adaptées au rôle✔ Réalisé
6Système de régions géographiques (Nord / Sud / Est / Ouest)✔ Réalisé
7API REST JSON pour l'application mobile complémentaire✔ Réalisé
8Architecture MVC légère (Models / Controllers / Views)✔ Réalisé

📅 Planning (Diagramme de Gantt)

Tâche Sept.Oct.Nov.Déc.
Analyse et conception (MCD, cahier des charges)
Création de la base de données MySQL
Authentification & gestion des sessions
Interface et navigation (accueil, sidebar)
Module rapports de visites
Module praticiens & produits
Tableau de bord & statistiques
Système de régions, familles, types
API REST PHP (pour app mobile)
Architecture MVC (Models PHP)
Tests & déploiement OVH

🛠 Ressources techniques

CatégorieOutil / TechnologieRôle dans le projet
HébergementOVH (mutualisé)Serveur web + base de données en production
Éditeur de codeVisual Studio CodeDéveloppement PHP, HTML, CSS
Gestion BDDPHPMyAdminAdministration et requêtes MySQL
VersioningGitHubSuivi des versions et sauvegarde du code
Front-endHTML5 / CSS3Structure et mise en forme des pages
Back-endPHP 8 / PDOLogique métier, sessions, API REST
SGBDMySQLStockage de toutes les données applicatives
Format d'échangeJSONRéponses de l'API REST pour l'app mobile
ModélisationDraw.ioConception du MCD
FTPFileZillaDéploiement des fichiers sur OVH

🗄 Structure de la base de données

TableDescriptionRelations principales
utilisateursComptes utilisateurs avec rôle et région→ regions
visitesVisites planifiées pour chaque visiteur→ utilisateurs, praticiens
rapportsComptes rendus de visites médicales→ utilisateurs, praticiens
rapport_produitsTable pivot rapports ↔ produits→ rapports, produits
praticiensMédecins et spécialistes visités→ type_praticiens
produitsMédicaments présentés lors des visites→ familles
famillesFamilles thérapeutiques des produits
type_praticiensTypes de praticiens (généraliste, cardiologue…)
regionsRégions géographiques (Nord/Sud/Est/Ouest)

⚠️ Gestion des risques

RisqueNiveauSolution apportée
OVH bloque les en-têtes HTTP Authorization Élevé Token transmis en paramètre GET ?token=xxx dans l'API REST
Injections SQL Élevé Requêtes préparées PDO avec paramètres liés sur toutes les requêtes
Double soumission de formulaire (F5) Moyen Pattern POST → Redirect → GET appliqué sur tous les formulaires
MySQL OVH ne supporte pas IF NOT EXISTS sur ALTER TABLE Moyen Migration SQL découpée en instructions séparées sans condition
Accès non autorisé aux pages d'administration Élevé Vérification du rôle en session PHP sur chaque page protégée
Perte de données lors du développement Faible Versioning GitHub avec commits réguliers

📦 Livrables

LivrableDescriptionStatut
Application web en productionAccessible à l'URL OVH avec 4 rôles fonctionnels✔ Livré
API REST PHPDossier api/ avec 9 endpoints JSON✔ Livré
Scripts SQL de migrationCréation tables, insertions de données de référence✔ Livré
Architecture MVCDossier models/ avec 3 classes PHP✔ Livré
Dépôt GitHubCode source versionné et accessible✔ Livré
Comptes de démonstration4 comptes (un par rôle) opérationnels✔ Livré