# Le Juste Poids Monorepo contenant: - API NestJS (`apps/api`) - Front NextJS (`apps/web`) - Base PostgreSQL (via Docker Compose) ## Demarrage rapide 1. Installer les dependances ```bash npm install ``` 2. Configurer l'environnement Le fichier `.env` est deja present a la racine pour Docker Compose. 3. Lancer toute la stack ```bash 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_USERNAME` - `ADMIN_PASSWORD` Connexion JWT: ```bash 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: ```bash curl -X POST http://localhost:3001/auth/refresh \ -H "Content-Type: application/json" \ -d '{"refreshToken":""}' ``` ## API admin: gestion des comptes Routes protegees par JWT + role `ADMIN`: - `POST /users` creer un compte - `GET /users` lister les comptes - `PATCH /users/:id` modifier username/password/role - `DELETE /users/:id` supprimer un compte Routes utilisateur connecte (ADMIN ou FAMILY): - `GET /users/me` recuperer son profil - `PATCH /users/me` modifier son pseudo (`displayName`) - `POST /users/me/photo` uploader sa photo de profil (multipart `file`, PNG/JPG/WEBP) Exemple creation d'utilisateur: ```bash curl -X POST http://localhost:3001/users \ -H "Authorization: Bearer " \ -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: ```bash curl http://localhost:3001/health ```