Ce projet est une application API développée dans le cadre d’une compétition annuelle organisée par la Fédération Marocaine des Pigeons Voyageurs. Elle vise à simplifier et automatiser la gestion des compétitions, de l’enregistrement des éleveurs à la publication des résultats.
- Description
- Fonctionnalités
- Architecture
- Diagramme UML
- Règles de Calcul des Résultats
- Exigences Techniques
- Installation
- Documentation de l'API (Swagger UI)
La compétition annuelle implique plusieurs éleveurs et pigeons. Elle se divise en trois étapes principales :
- Vitesse
- Demi-fond
- Fond
L’application permet de :
- Gérer les éleveurs et leurs pigeons
- Configurer les compétitions
- Collecter et calculer les résultats
- Publier des classements et des performances globales
- Enregistrement et authentification
- Ajout de pigeons pour la saison active
- Consultation des résultats et export en PDF
- Définition des compétitions (point de lâcher, distance prévisionnelle, etc.)
- Ajout des pigeons participants
- Upload des données collectées après une course
- Clôture des compétitions et calcul automatique des résultats
- Classement des pigeons pour chaque compétition
- Classement général basé sur le cumul des points
- Export des résultats en PDF
L’application est organisée en plusieurs couches :
- Controller : Gestion des requêtes HTTP
- Service : Logique métier
- Repository : Interaction avec la base de données MongoDB
- Model : Représentation des entités
Le diagramme UML des classes représente les principales entités et leurs relations dans l’application.
- Entités principales :
User
: Gestion des utilisateurs (éleveurs et organisateurs)Pigeon
: Informations sur chaque pigeonCompetition
: Détails des compétitionsResult
: Calculs et stockage des résultats
- Relations :
- Un
User
possède plusieursPigeons
- Une
Competition
est liée à plusieursResults
- Un
Result
associe unPigeon
à uneCompetition
- Un
- Upload des heures d’arrivée et des numéros de bague des pigeons.
- Distance : Utilisation de la formule de Haversine.
- Temps de Vol : Différence entre l’heure de départ et l’heure d’arrivée.
- Vitesse :
vitesse = distance / temps
- Ajustement de la Vitesse :
- Coefficient =
distance moyenne / distance parcourue par le pigeon
- Vitesse ajustée =
vitesse x coefficient
- Coefficient =
- Les pigeons sont classés par vitesse ajustée.
- Attribution des points en fonction du classement.
- Calcul du classement général par cumul des points des 5 meilleurs pigeons par éleveur.
- Framework : Spring Boot
- Base de Données : MongoDB
- Validation : Validation des données et gestion centralisée des exceptions.
- Tests : Tests unitaires pour les services.
- Fichier de Configuration : Utilisation de YAML.
- Clonez le dépôt :
git clone https://github.com/kholoud001/PigeonSkyRace.git
L'API est accessible via Swagger UI à l'adresse suivante :
- Vous pouvez accéder à la documentation interactive de l'API en visitant l'URL ci-dessus.
- Swagger UI vous permettra de tester les différentes API exposées par le projet, ainsi que de consulter la documentation générée automatiquement.
Si votre API nécessite une authentification, assurez-vous de vous connecter ou d'ajouter un token JWT valide dans l'en-tête des requêtes pour accéder aux endpoints protégés.