Gestion de Projet
Application Mobile GSB — Java / Android
📋 Présentation du projet
Contexte : Dans le cadre du BTS SIO option SLAM (session 2026), développement
d'une application Android en Java pour les équipes terrain de GSB (Galaxy Swiss Bourdin),
communiquant avec l'API REST PHP de l'application web.
| Réalisation n° | 2 |
| Chef de projet | Hernandez Kenny |
| Modalité | Projet individuel |
| Période | Janvier 2026 → Avril 2026 |
| Environnement | Android Studio / API REST OVH |
| Dépôt GitHub | github.com/Kenny-Her/Gsb_Appli_Mobile |
| APK | Télécharger l'APK |
🎯 Objectifs
| # | Objectif | Statut |
|---|---|---|
| 1 | Authentification sécurisée via token (stocké en SharedPreferences) | ✔ Réalisé |
| 2 | Tableau de bord personnalisé selon le rôle de l'utilisateur | ✔ Réalisé |
| 3 | Consultation et gestion des visites planifiées | ✔ Réalisé |
| 4 | Rédaction, modification et suppression des rapports de visite | ✔ Réalisé |
| 5 | Validation des rapports (rôle Délégué) | ✔ Réalisé |
| 6 | Gestion des praticiens avec type et région (spinners dynamiques) | ✔ Réalisé |
| 7 | Gestion des produits avec famille thérapeutique | ✔ Réalisé |
| 8 | Inscription avec sélection du rôle et de la région | ✔ Réalisé |
| 9 | Architecture MVC légère (POJOs Model + Activities Controller + XML View) | ✔ Réalisé |
📅 Planning (Diagramme de Gantt)
| Tâche | Janv. | Fév. | Mars | Avr. |
|---|---|---|---|---|
| Analyse & architecture Android (activités, API) | ▓ | |||
| Connexion API REST + authentification token | ▓ | ▓ | ||
| Écran de connexion & tableau de bord | ▓ | |||
| Module visites planifiées | ▓ | |||
| Module rapports (ajout, modification, suppression) | ▓ | ▓ | ||
| Module validation des rapports | ▓ | |||
| Module praticiens (spinners type + région) | ▓ | |||
| Module produits (spinner famille) | ▓ | |||
| Inscription avec rôle & région dynamiques | ▓ | |||
| Architecture MVC (POJOs model/) | ▓ | |||
| Tests, corrections & génération APK | ▓ |
🏗 Architecture MVC appliquée
📦 MODEL
model/Praticien.javamodel/Produit.javamodel/Rapport.javamodel/Visite.java
POJOs construits depuis JSON. Encapsulent les données et exposent des getters.
🎮 CONTROLLER
MainActivity.javaDashboardActivity.javaRapportsActivity.javaPraticiensActivity.javaProduitsActivity.javaVisitesActivity.javaValiderRapportsActivity.javaInscriptionActivity.java
Activities gérant les appels API (Volley), la logique métier et les interactions utilisateur.
🖼 VIEW
activity_main.xmlactivity_dashboard.xmlactivity_rapports.xmlactivity_praticiens.xmlactivity_produits.xmlactivity_visites.xmlactivity_inscription.xml
Layouts XML définissant l'interface. CardViews générés dynamiquement en Java.
🛠 Ressources techniques
| Catégorie | Outil / Technologie | Rôle dans le projet |
|---|---|---|
| IDE | Android Studio | Développement, débogage et génération de l'APK |
| Éditeur back-end | Visual Studio Code | Développement de l'API REST PHP |
| Langage front | Java / XML | Logique applicative et interfaces utilisateur |
| Bibliothèque réseau | Volley | Requêtes HTTP asynchrones vers l'API REST |
| Format d'échange | JSON | Communication entre l'app et l'API PHP |
| Persistance locale | SharedPreferences | Stockage du token d'authentification |
| Back-end API | PHP / PDO | API REST hébergée sur OVH |
| SGBD | MySQL | Base de données hébergée sur OVH |
| Versioning | GitHub | Suivi des versions du code source |
| Gestion BDD | PHPMyAdmin | Administration de la base MySQL OVH |
⚠️ Gestion des risques
| Risque | Niveau | Solution apportée |
|---|---|---|
OVH bloque l'en-tête Authorization: Bearer en CGI |
Élevé | Token transmis en paramètre GET ?token=xxx sur tous les appels API |
| Volley ne supporte pas nativement PUT avec corps de requête | Élevé | Workaround : POST + paramètre _method=PUT détecté côté PHP |
| Chevauchement de la toolbar avec la barre de statut Android | Moyen | Attribut android:fitsSystemWindows="true" sur tous les layouts |
Couleurs hex courtes (#777) causant un crash |
Moyen | Color.parseColor() exige 6 chiffres → remplacé par #777777 |
| Spinners non remplis si l'API est lente ou indisponible | Moyen | Fallback statique (liste locale) en cas d'erreur réseau sur chaque spinner |
| Perte de données lors du développement | Faible | Versioning GitHub avec commits réguliers |
📦 Livrables
| Livrable | Description | Statut |
|---|---|---|
| APK Android | Application installable sur tout appareil Android | ✔ Livré |
| Code source | Projet Android Studio complet sur GitHub | ✔ Livré |
| Classes Model MVC | 4 POJOs dans le package model/ | ✔ Livré |
| 8 Activities (Controllers) | Gestion de toutes les fonctionnalités applicatives | ✔ Livré |
| 7 Layouts XML (Views) | Interfaces utilisateur de chaque écran | ✔ Livré |
| Comptes de démonstration | 4 comptes (un par rôle) sur le serveur OVH | ✔ Livré |