CCH (Cyclo Club Horizon) est une application qui permet la gestion des courses contre la montre de cyclisme. Chaque coureur concourt individuellement pour réaliser le meilleur temps sur un parcours donné. L'application permet la gestion des coureurs, des compétitions, des inscriptions, des résultats, et des classements.
L'application est destinée à être utilisée par le Cyclo Club Horizon pour organiser et gérer des compétitions cyclistes, avec des fonctionnalités telles que l'ajout de coureurs, la gestion des compétitions, l'inscription aux courses, et la gestion des résultats et classements.
- Ajouter un coureur : nom, prénom, date de naissance, nationalité, équipe
- Modifier/Supprimer un coureur
- Consulter la liste des coureurs avec options de tri (nom, nationalité, équipe)
- Créer, modifier, supprimer une compétition : nom, date, lieu, distance
- Consulter la liste des compétitions avec filtres (date, lieu)
- Inscrire ou retirer des coureurs d'une compétition
- Consulter la liste des inscrits
- Enregistrer les temps des coureurs
- Calcul automatique des classements
- Afficher les classements individuels et cumulés
- Générer des rapports sur les résultats et classements
- Consulter l'historique des compétitions et performances
- Java
- Spring IoC : gestion des dépendances
- Hibernate : persistance des données
L'application doit inclure les trois types de configurations Spring :
- Annotations : Utilisation de
@Component
,@Service
,@Repository
,@Autowired
- Java Configuration : Utilisation de
@Configuration
pour déclarer des beans
- Utiliser Spring MVC pour la couche web
- Utilisation de
@Configuration
pour la configuration - Utiliser
ResponseEntity
pour gérer les réponses HTTP - DTOs pour la communication avec la couche service
- Pagination optionnelle
- Tests unitaires avec JUnit et Mockito
- Développement piloté par les tests (TDD)
GET /api/v1/teams
GET /api/v1/teams/{id}
POST /api/v1/teams
PUT /api/v1/teams/{id}
DELETE /api/v1/teams/{id}
GET /api/v1/cyclists
GET /api/v1/cyclists/{id}
POST /api/v1/cyclists
PUT /api/v1/cyclists/{id}
DELETE /api/v1/cyclists/{id}
GET /api/v1/competitions
GET /api/v1/competitions/{id}
POST /api/v1/competitions
PUT /api/v1/competitions/{id}
DELETE /api/v1/competitions/{id}
GET /api/v1/stages
GET /api/v1/stages/{id}
POST /api/v1/stages
PUT /api/v1/stages/{id}
DELETE /api/v1/stages/{id}
GET /api/v1/general-results
GET /api/v1/general-results/{competitionId}/{cyclistId}
POST /api/v1/general-results
DELETE /api/v1/general-results/{competitionId}/{cyclistId}
GET /api/v1/stage-results
GET /api/v1/stage-results/{stageId}/{cyclistId}
POST /api/v1/stage-results
DELETE /api/v1/stage-results/{stageId}/{cyclistId}
- JPA, Hibernate, Spring IoC, JUnit, Mockito
- Spring MVC, Tomcat, ModelMapper, MapStruct
- Postman, DTO