Mon vieux grimoire
Cette page présente l’étude de cas du projet Open Source Mon vieux grimoire, incluant son aperçu, les outils utilisés, ainsi que des liens directs vers les ressources associées.
Description
Présentation
Ce projet consiste à développer le back-end du site de notation de livres "Mon Vieux Grimoire".
Il permet aux utilisateurs inscrits de :
- ajouter des livres
- les noter
- consulter les évaluations publiques
L’objectif est de créer une API sécurisée et performante, c’est-à-dire un système qui gère les données et la communication entre le site et la base de données.
Fonctionnalités principales
- Gestion complète des livres : ajout, consultation, modification et suppression (CRUD)
- Notation et avis par les utilisateurs
- Gestion sécurisée des comptes utilisateurs
- Optimisation automatique des images des couvertures pour un chargement rapide
Sécurité
- Authentification avec tokens JWT : chaque utilisateur reçoit un identifiant unique pour sécuriser l’accès à ses données
- Hachage des mots de passe : les mots de passe sont cryptés pour empêcher toute lecture en clair
- Validation et gestion des erreurs pour garantir l’intégrité des données et éviter les problèmes d’utilisation
Architecture et organisation
Le projet suit le modèle MVC (Model–View–Controller), une manière de structurer le code pour le rendre clair et maintenable :
- Modèles (Model) : définition et stockage des données via MongoDB (base de données) et Mongoose (outil de manipulation des données)
- Contrôleurs (Controller) : logique du site, par exemple calculer la moyenne des notes ou vérifier qu’un utilisateur peut modifier un livre
- Routes (View) : chemins permettant d’accéder aux différentes fonctionnalités de l’API
Cette organisation sépare clairement données, logique métier et accès aux fonctions, ce qui facilite les modifications futures.
Optimisation des performances
- Traitement et compression des images avec Sharp, pour un affichage rapide et moins gourmand en ressources
- Code optimisé et structuré pour accélérer le site et réduire les temps d’attente
- Respect des bonnes pratiques, notamment la gestion propre des erreurs et la sécurité des données
Pédagogique
Projet réalisé en 2024