Mon Vieux Grimoire
Le Projet
Description du projet:
Dans le cadre de ma formation Développeur Web chez OpenClassrooms, j'ai développé le backend d'un site de notation de livres, appelé Mon Vieux Grimoire, avec Node.js et Express en respectant les bonnes pratiques de sécurité et en utilisant une base de données MongoDB.
Celui-ci devait permettre aux utilisateurs de créer un compte, se connecter, ajouter des livres, les noter et consulter les livres déjà ajoutés.
Problématiques rencontrées et solutions apportées :
La principale problématique rencontrée lors du développement de l'API a été la gestion des middlewares d'upload d'image avec multer et de changement de format avec sharp (webp).
Le formulaire Frontend faisant l'appel API pour la création ou la modification d'un livre, ne bloquant pas l'envoi si les champs ne correspondaient pas à ce qui était attendu, l'image était tout de même uploadée bien que le livre n'était pas créé car la base de données renvoyait une erreur de champs non conforme.
J'ai donc réglé le problème en ajoutant un middleware supplémentaire avant le middleware d'upload pour vérifier les champs avec express-validator, et donc empêcher l'upload si les champs ne correspondent pas aux types attendus par la base de données.
Compétences développées :
- Développement d'une API REST sécurisée avec Node.js et Express
- Gestion de la base de données NoSQL MongoDB (CRUD, modèles Mongoose)
- Sécurisation des données utilisateurs (authentification, gestion des tokens, bcrypt, variables d'environnement)
- Gestion des erreurs backend et communication claire avec un frontend React
- Suivi des meilleures pratiques de sécurisation via les règles de l'OWASP
