← Exercices BD06

🦦 Mini-projet BD06

Plateforme de blog avec Mongoose — Auth JWT + CRUD complet

🎯 Objectif

Créer une API de blog complète avec Mongoose : authentification JWT, gestion des articles, commentaires, likes, et système de notifications avec discriminators.

Durée estimée : 4–5 heures

📋 Endpoints

POST /auth/register    — inscription + hash bcrypt (pre-save hook)
POST /auth/login       — vérification + JWT
GET  /articles         — liste paginée avec .lean()
GET  /articles/:slug   — détail + populate author + comments
POST /articles         — créer (authMiddleware)
PUT  /articles/:id     — modifier (vérif ownership)
DELETE /articles/:id   — soft delete
POST /articles/:id/like — toggle like
POST /articles/:id/comments — ajouter commentaire
GET  /users/:id/notifications — notifs non lues

🗺️ Étapes

1. Modèles Mongoose : User (hook hash), Article (virtual slug), Comment, Like
2. Auth : register + login + middleware JWT
3. CRUD articles avec virtual populate comments
4. Toggle like (findOneAndUpdate upsert)
5. Notifications avec discriminators
6. Optimisation .lean() sur les routes de liste

✅ Critères de validation