- Front (Vite/React) : http://localhost:3000
- Back (Express) : http://localhost:4000
Redis sert à blacklister un JWT (logout + invalidation). Si Redis n'est pas dispo, le back tourne quand même.
cd .
docker compose up -dcd back
cp .env.example .env
npm install
npm run seed # crée l'utilisateur demo + quelques films
npm run devCompte de test seed:
- username:
demo - email:
demo@example.com - password:
password123
cd front
cp .env.example .env
npm install
npm run dev- ✅ get liste :
GET /api/movies - ✅ get un objet (id) :
GET /api/movies/:imdbID - ✅ search :
GET /api/movies/search?q=... - ✅ fiche utilisateur publique :
GET /api/users/:username(et page front/user/:username)
- ✅ register :
POST /api/auth/register - ✅ login :
POST /api/auth/login - ✅ logout clean front/back :
POST /api/auth/logout - ✅ session JWT avec expiration (
JWT_EXPIRES_IN, défaut 1h) - ✅ invalidation du JWT sur requête invalide (ex: modifier/supprimer un objet qui ne vous appartient pas) via blacklist Redis
- ✅ créer un objet :
POST /api/movies - ✅ éditer ses objets :
PUT /api/movies/:imdbID(owner-only) - ✅ supprimer ses objets :
DELETE /api/movies/:imdbID(owner-only) - ✅ favoris (tous utilisateurs confondus) :
POST /api/movies/:imdbID/favorite+GET /api/me/favorites
- ✅ Proxy Vite:
/api→http://localhost:4000(voirfront/vite.config.ts) - ✅ Base URL configurable côté front via
VITE_API_BASE_URL.
- Les modèles (MongoDB) sont dans
back/src/models. - Le seed est dans
back/src/utils/seed.jset injecte des films en base. - Identifiant côté front =
imdbID(compatibilité avec l'ancien projet OMDb).