# 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