# Gestion du personnel des ligues de la M2L **Application console pour gérer des ligues et employés, avec persistance configurable, tests unitaires et architecture orientée objet.** ## Description du projet Ce projet Java implémente un gestionnaire de personnel orienté ligues, conçu pour illustrer les bonnes pratiques de conception orientée objet et de persistance des données. L'application fournit un modèle **GestionPersonnel** gérant des **Ligue** et des **Employe**, avec deux modes de persistance interchangeables : - sérialisation Java - accès JDBC Le code inclut une couche passerelle pour isoler la stratégie de sauvegarde, des tests unitaires et une interface console pour les opérations courantes comme la création de ligues, la gestion des droits, ou la sauvegarde/restauration. Le projet a été réalisé en équipe avec : - Java SE<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/java/java-original.svg" height="23" alt="java logo" /> - IDE Eclipse - MySQL <img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/mysql/mysql-original.svg" height="23" alt="mysql logo" /> - Git<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/git/git-original.svg" height="23" alt="git logo" /> - GitHub<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/github/github-original.svg" height="23" alt="github logo" /> --- ## Points techniques & fonctionnalités clés ### Architecture ### Package personnel #### Résumé des Interfaces - Passerelle Interface de persistance utilisée par `GestionPersonnel`. Fournit les opérations nécessaires pour récupérer et sauvegarder l'objet unique `GestionPersonnel` et pour insérer des entités (par ex. `Ligue`). (Méthodes observées par usage : `getGestionPersonnel()`, `sauvegarderGestionPersonnel(GestionPersonnel)`, `insert(Ligue)` — interface responsable des mécanismes de stockage : sérialisation ou accès JDBC. #### Résumé des classes - Employe Employé d'une ligue hébergée par la M2L. Représente un utilisateur/acteur d'une `Ligue`. Implemente `Comparable<T>` et `Serializable`. - GestionPersonnel Gestion du personnel. Un seul objet de cette classe existe (singleton). Responsable de la collection de `Ligue`, de la création/suppression de ligues, et de la coordination avec une `Passerelle` pour la persistance (sauvegarde / chargement). Implemente `Serializable`. - Ligue Représente une ligue. Contient les informations et la gestion des employés/administrateurs d'une ligue. Implemente `Comparable<T>` et `Serializable`. #### Résumé des Exceptions - DroitsInsuffisants Levée si un administrateur tente d'effectuer une opération sur une autre ligue que la sienne (droits insuffisants). - ImpossibleDeSupprimerRoot Levée si l'on tente de supprimer le super-utilisateur `root`. - SauvegardeImpossible Exception levée lorsqu'il est impossible de sauvegarder le gestionnaire (problème de persistance). #### Hiéarchie de tous les packages - Personnel - commandLine - jdbc - personnel - serialization - testsUnitaires #### Hierarchie de toutes les classes - java.lang.Object - personnel.Employe (implémente java.lang.Comparable<T>, java.io.Serializable) - personnel.GestionPersonnel (implémente java.io.Serializable) - personnel.Ligue (implémente java.lang.Comparable<T>, java.io.Serializable) - java.lang.Throwable (implémente java.io.Serializable) - java.lang.Exception - java.lang.RuntimeException - personnel.DroitsInsuffisants - personnel.ImpossibleDeSupprimerRoot - personnel.SauvegardeImpossible #### Hierarchie des interfaces - personnel.Passerelle #### Tests & qualité #### Package testsUnitaires - Tests unitaires présents : `TestDateIncoherenceException`,`testLigue`,`TestDatesincoherentes`. - Configuration Maven : `pom.xml`. - Règles de style : `checkstyle.xml`. ### Interface CLI Interface console : - `PersonnelConsole` - `EmployeConsole` - `LigueConsole` --- ### Bibliothèques - **Bibliothèques** : - Collections Java - Java Serialization - JDBC - JUnit (tests) --- 2026 © Nathan Michel