Situation professionnelle #2 - Application Desktop Tableau de bord Formations
Contexte
Date : 25/03/26 au 06/04/26
Cadre : Projet école - Option SLAM - Suite de la Situation Professionnelle #1
Suite à l'application web de gestion de formations (Projet 1), le centre de formation aux métiers du cinéma souhaite développer une application desktop JavaFX pour permettre aux administrateurs et formateurs de consulter, suivre et analyser les données de formation depuis un client lourd.
Objectif
Créer une application desktop JavaFX (client lourd) qui se connecte à l'API REST du Projet 1 pour offrir aux administrateurs et formateurs une interface graphique permettant de visualiser les formations, sessions, inscriptions, présences et avis, avec un tableau de bord analytique et des graphiques.
Mon rôle
Développeuse full-stack - Travail individuel de conception et réalisation.
Réalisations
- Architecture MVC complète avec JavaFX et FXML (séparation Modèle/Vue/Contrôleur)
- Écrans développés en FXML : Login, Dashboard, Formations, Sessions, SessionDetail
- Système d'authentification sécurisée via API avec stockage du token JWT
- Communication avec l'API REST via HttpClient (GET, POST)
- Parsing JSON avec Gson pour sérialisation/désérialisation des entités (Formation, Session, Apprenant, Formateur, Inscription, Présence, Avis)
- Interface de consultation et recherche des formations et sessions avec filtres et tri
- Écran de détail de session : liste des apprenants inscrits, gestion des présences (cases à cocher), consultation des avis
- Tableau de bord graphique avec indicateurs clés : nombre de formations, sessions à venir, taux de présence moyen, moyenne des avis
- Graphiques interactifs : PieChart, BarChart, LineChart pour visualiser les données
- TableView paginées avec tri et recherche pour les listes de formations/sessions
- Gestion des erreurs réseau et API (API non disponible, JSON malformé, timeout)
- Utilisation de threads JavaFX pour ne pas bloquer l'interface lors des appels API
- Styles CSS uniformisés pour cohérence visuelle
Résultats
Application desktop JavaFX fonctionnelle connectée à l'API du Projet 1. Interface graphique ergonomique et responsive permettant la consultation et l'analyse des données de formation. Tableau de bord avec graphiques dynamiques offrant une vision synthétique de l'activité. Gestion robuste des erreurs garantissant la stabilité de l'application.
Technologies
Architecture technique
Modèle (Model)
7 entités principales avec sérialisation/désérialisation JSON :
- Formation : id, titre, description, durée, objectifs
- Session : id, formationId, formateurId, dateDebut, dateFin
- Formateur : id, nom, prénom, email
- Apprenant : id, nom, prénom, email
- Inscription : sessionId, apprenantId
- Presence : sessionId, apprenantId, date, statut
- Avis : sessionId, apprenantId, note, commentaire
Vue (View) - FXML
- Login.fxml : écran de connexion avec champs email/mot de passe
- Dashboard.fxml : tableau de bord avec graphiques et indicateurs
- Formations.fxml : liste des formations avec filtres et tri
- Sessions.fxml : liste des sessions et détails
- SessionDetail.fxml : suivi inscriptions, présences et avis
Contrôleur (Controller)
- LoginController : gestion connexion et stockage token JWT
- DashboardController : récupération données API, calcul indicateurs, mise à jour graphiques
- FormationsController : affichage, tri et filtrage formations
- SessionsController : affichage et gestion sessions
- SessionDetailController : gestion présences et consultation avis
Endpoints API utilisés
- POST /api/login : authentification et récupération token JWT
- GET /api/formations : récupération liste formations
- GET /api/sessions : récupération liste sessions
- GET /api/sessions/{id} : détails session (inscriptions, présences, avis)
Compétences BTS SIO mobilisées
✓ Répondre aux incidents et aux demandes d'assistance
Tests et validation de l'application, gestion des erreurs réseau et API.
✓ Développer la présence en ligne de l'organisation
Développement d'une application desktop professionnelle complémentaire à l'application web.
✓ Mettre à disposition des utilisateurs un service informatique
Développement et déploiement d'une application complète avec interface graphique ergonomique.