Backend

Mon Vieux Grimoire

API REST sécurisée pour une plateforme de gestion et notation de livres, avec authentification, gestion des médias et optimisation des performances.

Type de projetBackend
Technologies utiliséesNode.js, Express
LangagesJavaScript
Mon Vieux Grimoire

Présentation du projet

Mon Vieux Grimoire est une API REST développée dans le cadre d’un projet de formation, simulant une mission freelance pour une chaîne de librairies indépendante. L’objectif était de concevoir un backend robuste capable de gérer un système de référencement et de notation de livres, tout en respectant des standards professionnels en matière de sécurité et de performance. L’API permet la gestion complète des livres (création, modification, suppression), l’authentification des utilisateurs via JWT, ainsi que la gestion d’uploads d’images optimisées. Une attention particulière a été portée à la sécurisation des données et des échanges, notamment à travers le hashage des mots de passe avec Argon2 et la validation des entrées avec Zod. Le projet intègre également une documentation API complète via Swagger (OpenAPI), facilitant les tests et l’intégration. La conteneurisation avec Docker a été mise en place de manière volontaire afin de garantir un environnement stable et reproductible. Enfin, une approche orientée performance et Green IT a été adoptée grâce à l’optimisation des images avec Sharp.

Node.jsExpressZODMongoDBArgon2DockerMulter, Sharp

Approche et réalisation

Contexte

Ce projet s’inscrit dans le cadre d’une formation professionnelle avec une mise en situation réelle de mission freelance. L’enjeu était de développer une API backend fiable, sécurisée et maintenable, répondant aux besoins d’une application de gestion de livres. Une attention particulière a été portée au respect des bonnes pratiques de développement, notamment en matière de sécurité et d’architecture. Le projet visait également à simuler des contraintes proches du monde professionnel, avec des exigences de qualité et de documentation. Enfin, il constituait une opportunité d’approfondir des concepts avancés liés aux API REST et à la gestion des données.

Objectifs

L’objectif principal était de concevoir une API REST complète et sécurisée, capable de gérer des données utilisateurs et des contenus dynamiques. Il s’agissait également de mettre en place un système d’authentification fiable basé sur JWT. Un autre objectif important était d’assurer la validation des données et la gestion des erreurs de manière centralisée. Le projet visait aussi à optimiser les performances, notamment via la gestion des uploads et le traitement des images. Enfin, la mise en place d’une documentation claire et exploitable faisait partie des exigences clés.

Compétences mobilisées

Ce projet m’a permis de renforcer mes compétences en développement backend avec Node.js et Express, notamment dans la conception d’API REST structurées. J’ai approfondi les notions de sécurité applicative, en intégrant des mécanismes d’authentification, de validation et de protection des données. La gestion des fichiers et leur optimisation a constitué un aspect technique important du projet. J’ai également travaillé sur la mise en place d’une architecture maintenable, incluant la gestion centralisée des erreurs. Enfin, l’utilisation de Docker m’a permis de mieux comprendre les enjeux de reproductibilité et de déploiement.

Résultats

L’API est entièrement fonctionnelle et répond aux exigences définies dans le cadre du projet. Elle permet une gestion complète des ressources avec un niveau de sécurité conforme aux bonnes pratiques actuelles. La documentation Swagger facilite son utilisation et son intégration dans un environnement frontend. Les optimisations mises en place contribuent à de bonnes performances, notamment sur la gestion des images. Ce projet démontre une capacité à développer un backend professionnel, structuré et sécurisé.

Axes d’amélioration

Des améliorations pourraient être envisagées, notamment la mise en place de tests automatisés pour renforcer la fiabilité de l’application. L’ajout d’un système de rôles et permissions plus avancé permettrait d’affiner la gestion des accès. Une surveillance des performances et des logs en production pourrait également être intégrée. L’API pourrait être enrichie avec des fonctionnalités supplémentaires côté métier, comme des recommandations de livres. Enfin, une mise en production réelle avec CI/CD constituerait une évolution pertinente du projet.

Interface du projet

Aperçu des différentes interfaces du projet, permettant de visualiser l’organisation, l’ergonomie et l’adaptation aux différents formats d’écran.

Interface frontend du projet Mon vieux grimoire

Profil développeur

Ce projet illustre ma manière de concevoir et développer des solutions adaptées à un besoin réel. Je recherche un poste de développeur web, avec la volonté de m’impliquer sur des projets concrets au sein d’une équipe.