C'est une application web permettant aux utilisateurs de noter et de consulter des livres. Le projet implique le développement du back-end avec Node.js, Express, et une base de données MongoDB.
-
Clonez le dépôt
git clone [email protected]/Projet-6_Express_MongoDB.git
-
Installez les dépendances
npm install
-
Configurations 📊 Base de données et 🔒 JWT
Créez un fichier .env à la racine du projet et ajoutez les variables d'environnement nécessaires, y compris la clé secrète JWT pour l'authentification sécurisée.
Exemple de contenu du fichier .env :
MONGODB_URI=<votre_url_mongodb>
- Remplacez <votre_url_mongodb> par l'URL de votre base de données MongoDB.
JWT_SECRET=<votre_clé_secrète_jwt>
- Remplacez <votre_clé_secrète_jwt> par une chaîne de caractères sécurisée utilisée pour signer et vérifier les tokens JWT.
-
Démarrez l'application 🚀
npm start
-
CRUD pour les livres et notations :
- Créer, Lire, Mettre à jour et Supprimer des livres et leurs notations.
-
Authentification sécurisée :
- Système de connexion pour les utilisateurs avec gestion des sessions et sécurité renforcée.
-
Gestion des images :
- Téléchargement et optimisation des images de couverture des livres.
-
Calcul de la note moyenne :
- Calcul automatique de la note moyenne pour chaque livre basé sur les notations des utilisateurs.
-
Conformité Green Code :
- Implémentation des bonnes pratiques pour réduire l'empreinte écologique du site.
- Node.js : Pour le développement du serveur back-end.
- Express : Pour la gestion des routes et des middlewares.
- MongoDB : Pour le stockage des données des utilisateurs et des livres.
- Mongoose : Pour la modélisation des données MongoDB.
- JWT (JSON Web Tokens) : Pour l'authentification sécurisée des utilisateurs.
- Multer : Pour la gestion des fichiers et des images.
- Sharp : Pour le traitement et l'optimisation des images.
- Architecture MVC :
- Utilisation de l'architecture Modèle-Vue-Contrôleur pour structurer l'application.
- Sécurité des données :
- Chiffrement des mots de passe et protection des données sensibles.
- API RESTful :
- Création d'une API RESTful pour les opérations sur les livres et les utilisateurs.
- Optimisation des images :
- Compression et redimensionnement des images pour une meilleure performance.