Application complète de gestion des utilisateurs avec Spring Boot (Backend), PostgreSQL (Database) et Nuxt UI (Frontend).
- Backend: Spring Boot 3.2.1 avec Java 21
- Frontend: Nuxt 3 avec Nuxt UI
- Database: PostgreSQL 18
- Déploiement: Docker Compose
.
├── back/ # API Spring Boot
├── db/ # PostgreSQL + scripts d'initialisation
├── front/ # Application Nuxt UI
└── docker-compose.yml
# Démarrer tous les services
docker-compose up --build
# En arrière-plan
docker-compose up -d --build
# Arrêter les services
docker-compose down- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- Database: localhost:5432
Créez un fichier .env à la racine du projet :
# PostgreSQL
PG_USER=dbUser
PG_PWD=Test123=
PG_DB=dbPerson/- Liste des utilisateurs avec tableau/users/:id- Page de détail d'un utilisateur
- ✅ Créer un utilisateur (modal)
- ✅ Modifier un utilisateur (modal)
- ✅ Supprimer un utilisateur (avec confirmation)
- ✅ Voir les détails d'un utilisateur
- Email valide (format)
- Champs requis (nom, prénom, email)
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /api/users |
Liste tous les utilisateurs |
| GET | /api/users/{id} |
Récupère un utilisateur |
| POST | /api/users |
Crée un utilisateur |
| PUT | /api/users/{id} |
Modifie un utilisateur |
| DELETE | /api/users/{id} |
Supprime un utilisateur |
# Liste des utilisateurs
curl http://localhost:8080/api/users
# Créer un utilisateur
curl -X POST http://localhost:8080/api/users \
-H "Content-Type: application/json" \
-d '{"nom":"Doe","prenom":"John","email":"john@example.com"}'cd back
mvn spring-boot:runNote: Décommentez les lignes dans application.properties pour la config locale.
cd front
npm install
npm run devCréez un fichier .env :
NUXT_PUBLIC_API_BASE=http://localhost:8080Le container PostgreSQL doit être en cours d'exécution :
docker-compose up dbid- SERIAL PRIMARY KEYnom- VARCHAR(100)prenom- VARCHAR(100)email- VARCHAR(150) UNIQUEadresse- VARCHAR(255)ville- VARCHAR(100)code_postal- VARCHAR(10)telephone- VARCHAR(20)date_naissance- DATEdate_creation- TIMESTAMP
8 utilisateurs fictifs sont automatiquement insérés au démarrage.
- Spring Boot 3.2.1
- Spring Data JPA
- PostgreSQL Driver
- Maven
- Nuxt 3
- Nuxt UI (Tailwind CSS)
- TypeScript
- Vue 3
- Docker & Docker Compose
- Multi-stage builds
- Health checks
# Build tous les services
docker-compose build
# Build un service spécifique
docker-compose build frontend
docker-compose build backend- Vérifiez que CORS est activé (WebConfig.java)
- Vérifiez l'URL de l'API dans nuxt.config.ts
- Vérifiez que les variables d'environnement sont correctes
- Attendez que le healthcheck PostgreSQL soit OK
Changez les ports dans docker-compose.yml :
ports:
- "3001:3000" # Frontend
- "8081:8080" # Backend
- "5433:5432" # PostgreSQLMIT