2.0 KiB
2.0 KiB
Le Juste Poids
Monorepo contenant:
- API NestJS (
apps/api) - Front NextJS (
apps/web) - Base PostgreSQL (via Docker Compose)
Demarrage rapide
- Installer les dependances
npm install
- Configurer l'environnement
Le fichier .env est deja present a la racine pour Docker Compose.
- Lancer toute la stack
docker compose up --build
Services:
- Front: http://localhost:3002
- API: http://localhost:3001
- DB: localhost:5432
Authentification
L'admin est un vrai compte en base de donnees. Au demarrage de l'API, un compte admin est cree (ou mis a jour) avec:
ADMIN_USERNAMEADMIN_PASSWORD
Connexion JWT:
curl -X POST http://localhost:3001/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"change_me_admin_password"}'
La reponse contient accessToken (JWT Bearer).
La reponse contient aussi refreshToken pour renouveler la session.
Renouveler la session:
curl -X POST http://localhost:3001/auth/refresh \
-H "Content-Type: application/json" \
-d '{"refreshToken":"<REFRESH_TOKEN>"}'
API admin: gestion des comptes
Routes protegees par JWT + role ADMIN:
POST /userscreer un compteGET /userslister les comptesPATCH /users/:idmodifier username/password/roleDELETE /users/:idsupprimer un compte
Routes utilisateur connecte (ADMIN ou FAMILY):
GET /users/merecuperer son profilPATCH /users/memodifier son pseudo (displayName)POST /users/me/photouploader sa photo de profil (multipartfile, PNG/JPG/WEBP)
Exemple creation d'utilisateur:
curl -X POST http://localhost:3001/users \
-H "Authorization: Bearer <JWT_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"username":"maman","password":"motdepassefort","role":"FAMILY"}'
Frontend
/: page de login utilisateur/admin: login admin + creation/liste/modification/suppression des comptes/profile: page profil pour les utilisateurs non-admin (pseudo + photo)
Healthcheck API:
curl http://localhost:3001/health