Refonte d'une application Java mono-utilisateur en solution multi-utilisateurs avec base de données MySQL, authentification sécurisée et trois niveaux d'habilitation distincts.
01 — Contexte
Un responsable M2L utilise une application pour gérer les employés des ligues sportives. L'objectif : transformer une application en ligne de commande mono-utilisateur en une solution robuste, multi-utilisateurs, avec base de données centralisée.
L'application initiale, écrite en Java et fonctionnant uniquement en ligne de commande, était mono-utilisateur et utilisait une sérialisation fichier. Elle ne permettait pas la gestion décentralisée par ligue.
Le projet consistait à conserver l'architecture 3-tiers existante et d'y ajouter une couche JDBC pour la persistance MySQL, un système d'authentification sécurisé avec BCrypt, et trois niveaux d'habilitation distincts.
Chaque ligue peut désormais être gérée par son propre administrateur, de façon autonome, tandis que le super-administrateur conserve une vue et un contrôle total sur l'ensemble du système.
02 — Habilitations
L'application distingue trois profils utilisateurs avec des droits progressifs, du simple employé lecture seule jusqu'au super-administrateur à accès total.
Niveau 01
Niveau 02
Niveau 03
03 — Architecture
Le projet imposait de conserver l'architecture applicative existante. La couche données a été remplacée par une implémentation JDBC, sans altérer les couches supérieures.
Couche Présentation
Interface en ligne de commande gérée par la bibliothèque CommandLineMenus. Les menus s'adaptent dynamiquement selon le rôle de l'utilisateur connecté.
Couche Métier
Les classes GestionPersonnel, Ligue et Employe encapsulent les règles métier : gestion des rôles, contrôle des droits, validation des données.
Couche Données
La classe JDBC implémente l'interface Passerelle, remplaçant la sérialisation fichier. Elle gère toutes les opérations SQL (CRUD) via PreparedStatement pour éviter les injections.
04 — Base de Données
Le MCD a été conçu pour représenter les entités principales du système et leurs relations, avant d'être traduit en schéma relationnel MySQL.
Schéma Relationnel
Modèle Conceptuel de Données
05 — Réalisation
Le code fourni a été étudié, puis complété par l'implémentation JDBC, la sécurisation des mots de passe et l'adaptation des menus selon les droits.
JDBC.java implémentant l'interface PasserellePreparedStatement) pour chaque opération CRUDBCrypt.checkpw() à la connexionDroitsInsuffisantsCommandLineMenus pour la navigationCaptures d'écran
06 — Technologies
07 — Compétences développées
08 — Ressources
Contact