Architecture technique - 0x485254/brief-26 GitHub Wiki
Ce document décrit l’architecture globale du projet EasyGroup, en précisant les modules techniques, la stack choisie, et les interactions entre les composants.
Côté | Technologie |
---|---|
Frontend | Angular 17+, TypeScript |
Backend | Java 17, Spring Boot |
Base de données | MySQL ou MariaDB |
Authentification | Spring Security (JWT recommandé) |
Tests | JUnit, Mockito |
CI/CD | GitLab CI |
Conteneurs | Docker, Caddy |
+------------------+ HTTPS +-------------------+
| Frontend | <----------------> | Backend Spring |
| (Angular SPA) | | Boot REST API |
+------------------+ +-------------------+
| |
v v
+------------------+ +-------------------+
| Authentification | | Base de données |
| (JWT / Session) | | relationnelle |
+------------------+ +-------------------+
Le backend est organisé en modules métiers, chacun possédant :
- une entité (
entity
) - un contrôleur (
controller
) - un service (
service
) - un repository JPA (
repository
) - des DTO (
dto
) pour exposer les données
Modules :
- Authentification (
Auth
) - Utilisateurs (
User
) - Listes de personnes (
List
,ListShare
) - Personnes (
Person
) - Tirages (
Draw
) - Groupes (
Group
,GroupPerson
)
L’API suit une structure RESTful avec préfixe /api
.
Ressource | Exemple de route |
---|---|
Auth | POST /api/auth/login |
Utilisateur | GET /api/users/me |
Listes | GET /api/lists |
Personnes | POST /api/lists/{id}/persons |
Tirages | POST /api/lists/{id}/draws |
Groupes | GET /api/draws/{id}/groups |
- Authentification par JWT (ou session HTTP Only)
- Spring Security + CORS config
- Accès public restreint aux routes d’inscription/connexion
- Couverture des services et contrôleurs
- Données mockées avec Mockito
- Tests unitaires : JUnit5
- TDD recommandé (test-first)
- Dockerisation des services :
backend
,frontend
,db
- Proxy : Nginx Proxy Manager
- CI/CD GitLab : test + build + push