🎯 Objectif
Développer une application web fullstack JavaScript (React + Node/Express + MongoDB) permettant à chaque utilisateur de gérer son carnet de contacts personnel.
L’application doit être sécurisée par une authentification JWT et offrir un CRUD complet sur les contacts.
🔑 Fonctionnalités attendues
Authentification
- Inscription (/auth/register) : email unique, mot de passe hashé (bcrypt).
- Connexion (/auth/login) : renvoie un token JWT.
- Middleware d’autorisation : protège toutes les routes /contacts.
Gestion des contacts
- Modèle Contact :
- firstName (obligatoire)
- lastName (obligatoire)
- phone (obligatoire) (10–20 caractères, bonus)
- Plus encore si possible
- CRUD complet :
- GET /contacts (uniquement mes contacts).
- POST /contacts (ajout).
- PATCH /contacts/:id (mise Ă jour partielle).
- DELETE /contacts/:id (suppression).
🖥️ Frontend (React)
- Pages :
- Login / Register (connexion à l’API backend).
- Contacts (liste + ajout via formulaire).
- Édition/suppression
- Bon à avoir : recherche, design amélioré.
🔒 Sécurité
- Hash des mots de passe avec bcrypt.
- JWT obligatoire pour toutes les routes /contacts.