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 projet | Hernandez Kenny |
| Modalité | Projet individuel |
| Période | Septembre 2025 → Décembre 2025 |
| Hébergement | OVH (mutualisé CGI) |
| Dépôt GitHub | github.com/Kenny-Her/Gsb_Appli_Web |
| URL production | kenny-hernandez.com/Gsb_Appli_Web |
🎯 Objectifs
| # | Objectif | Statut |
|---|---|---|
| 1 | Authentification sécurisée avec gestion des rôles (Visiteur, Délégué, Responsable, Admin) | ✔ Réalisé |
| 2 | Rédaction et gestion des rapports de visites médicales | ✔ Réalisé |
| 3 | Gestion des praticiens (type, région, coordonnées) | ✔ Réalisé |
| 4 | Gestion des produits pharmaceutiques avec famille thérapeutique | ✔ Réalisé |
| 5 | Tableau de bord avec statistiques adaptées au rôle | ✔ Réalisé |
| 6 | Système de régions géographiques (Nord / Sud / Est / Ouest) | ✔ Réalisé |
| 7 | API REST JSON pour l'application mobile complémentaire | ✔ Réalisé |
| 8 | Architecture 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égorie | Outil / Technologie | Rôle dans le projet |
|---|---|---|
| Hébergement | OVH (mutualisé) | Serveur web + base de données en production |
| Éditeur de code | Visual Studio Code | Développement PHP, HTML, CSS |
| Gestion BDD | PHPMyAdmin | Administration et requêtes MySQL |
| Versioning | GitHub | Suivi des versions et sauvegarde du code |
| Front-end | HTML5 / CSS3 | Structure et mise en forme des pages |
| Back-end | PHP 8 / PDO | Logique métier, sessions, API REST |
| SGBD | MySQL | Stockage de toutes les données applicatives |
| Format d'échange | JSON | Réponses de l'API REST pour l'app mobile |
| Modélisation | Draw.io | Conception du MCD |
| FTP | FileZilla | Déploiement des fichiers sur OVH |
🗄 Structure de la base de données
| Table | Description | Relations principales |
|---|---|---|
utilisateurs | Comptes utilisateurs avec rôle et région | → regions |
visites | Visites planifiées pour chaque visiteur | → utilisateurs, praticiens |
rapports | Comptes rendus de visites médicales | → utilisateurs, praticiens |
rapport_produits | Table pivot rapports ↔ produits | → rapports, produits |
praticiens | Médecins et spécialistes visités | → type_praticiens |
produits | Médicaments présentés lors des visites | → familles |
familles | Familles thérapeutiques des produits | — |
type_praticiens | Types de praticiens (généraliste, cardiologue…) | — |
regions | Régions géographiques (Nord/Sud/Est/Ouest) | — |
⚠️ Gestion des risques
| Risque | Niveau | Solution 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
| Livrable | Description | Statut |
|---|---|---|
| Application web en production | Accessible à l'URL OVH avec 4 rôles fonctionnels | ✔ Livré |
| API REST PHP | Dossier api/ avec 9 endpoints JSON | ✔ Livré |
| Scripts SQL de migration | Création tables, insertions de données de référence | ✔ Livré |
| Architecture MVC | Dossier models/ avec 3 classes PHP | ✔ Livré |
| Dépôt GitHub | Code source versionné et accessible | ✔ Livré |
| Comptes de démonstration | 4 comptes (un par rôle) opérationnels | ✔ Livré |