Un projet de dev d'une API de KanBan & Gestion de sprint agile pour devenir autonome sur SpringBoot et faire le tour des fonctionnalités avec la doc
This repository has been archived on 2026-01-12. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Find a file
2025-11-10 19:48:24 +01:00
.mvn/wrapper 🎉 feat(project): Init Project 2025-11-09 16:21:22 +01:00
ForgeSprint feat(crud): Ajout CRUD pour Card et Column + test API en vibecoding 2025-11-10 19:32:24 +01:00
src feat(crud): Ajout CRUD pour Card et Column + test API en vibecoding 2025-11-10 19:32:24 +01:00
.env.exemple feat(entites): Création des entités de base 2025-11-09 20:19:47 +01:00
.gitattributes 🎉 feat(project): Init Project 2025-11-09 16:21:22 +01:00
.gitignore feat(entites): Création des entités de base 2025-11-09 20:19:47 +01:00
docker-compose.yml feat(entites): Création des entités de base 2025-11-09 20:19:47 +01:00
mvnw 🎉 feat(project): Init Project 2025-11-09 16:21:22 +01:00
mvnw.cmd 🎉 feat(project): Init Project 2025-11-09 16:21:22 +01:00
pom.xml 🚨 style(lint): Ajout de spotless pour linter le code 2025-11-10 11:16:12 +01:00
README.md 📝 docs(readme): Ajout README 2025-11-10 19:48:24 +01:00

SpringForge

SpringForge est un projet pédagogique Spring Boot développé pas à pas pour apprendre le framework en s'appuyant sur la documentation officielle. Chaque étape introduit de nouveaux concepts (validation, persistance JPA, mapping DTO/MapStruct, services transactionnels, contrôleurs REST) tout en conservant une base de code simple à explorer.

Description fonctionnelle

L'application modélise un espace de gestion de projets inspiré d'un tableau Kanban :

  • Project : regroupe des Boards.
  • Board : tableau rattaché à un projet, contenant des ColumnEntity.
  • ColumnEntity : colonne (Backlog, In Progress, Done, etc.) qui organise les Cards.
  • Card : tâche positionnée dans une colonne.

Chaque ressource dispose d'un CRUD complet exposé par des contrôleurs REST (/projects, /boards, /api/columns, /api/cards). Les DTOs valident les entrées, les services orchestrent les règles métier et les repositories Spring Data gèrent la persistance.

Démarrer le projet

  1. Prérequis : Java 17+, Maven 3.9+ et une base PostgreSQL (docker-compose fourni).
  2. Installer les dépendances : ./mvnw clean install.
  3. Lancer la base : docker compose up -d depuis la racine.
  4. Démarrer l'application : ./mvnw spring-boot:run puis accéder aux endpoints sur http://localhost:8080.

Des requêtes Bruno prêtes à l'emploi sont disponibles dans ForgeSprint/ pour tester rapidement chaque API (projects, boards, columns, cards).

Architecture rapide

  • entity/ : entités JPA annotées Lombok.
  • dto/ : contrats d'entrée/sortie avec validation Jakarta.
  • mapper/ : interfaces MapStruct pour convertir entités/DTOs.
  • repository/ : interfaces Spring Data JpaRepository.
  • service/ : interfaces + implémentations transactionnelles.
  • controller/ : endpoints REST documentés par conventions Spring MVC.

En suivant le code et les commits, vous pouvez progressivement découvrir comment construire une API Spring Boot robuste en gardant la documentation comme fil conducteur.