| .mvn/wrapper | ||
| ForgeSprint | ||
| src | ||
| .env.exemple | ||
| .gitattributes | ||
| .gitignore | ||
| docker-compose.yml | ||
| mvnw | ||
| mvnw.cmd | ||
| pom.xml | ||
| README.md | ||
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
- Prérequis : Java 17+, Maven 3.9+ et une base PostgreSQL (docker-compose fourni).
- Installer les dépendances :
./mvnw clean install. - Lancer la base :
docker compose up -ddepuis la racine. - Démarrer l'application :
./mvnw spring-boot:runpuis accéder aux endpoints surhttp://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 DataJpaRepository.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.