Mon Vieux Grimoire: projet OpenClassRooms back-end
Mon Vieux Grimoire est un projet de développement backend dans le cadre de ma formation OpenClassRooms. Je vais vous présenter ici:
- Les technologies utilisées
- Les fonctionnalités
- Les éléments de style un peu complexes
- Les difficultés rencontrées
Je vais devoir utiliser le langage technique. Je vous propose donc, avant cela, un résumé compréhensible par un non-développeur.
Vous pouvez consulter le code à l'adresse suivante : https://github.com/AlexandreBaumann/p7
Résumé
Présentation des technologies utilisées
Node.js - Express
Le serveur utilise la librairie Node.js (javascript) "Express". Elle permet notamment de gérer le routage, les middleware et les contrôleurs.
Dépendances
Parmi les dépendances utilisées, il y a notamment:
- Bcrypt pour le hashage du mot de passe.
- Prettier pour le formattage automatique.
- jsonwebtoken pour gérer le maintien de l'authentification.
- Cors pour permettre la communication entre serveurs différents.
- Dotenv pour les variables d'environnement.
- Mongoose pour interagir avec la base de données.
- Multer et sharp pour stocker et retravailler les images envoyées.
J'utilise également Typescript pour avoir un code plus propre.
MongoDB
MongoDB est une base de données NoSQL très facile à appréhender.
Autres
J'utilise le SCSS pour le style.
Fonctionnalités
Le projet est un backend: l'idée est de gérer les requêtes provenant de l'interface (front end) et de leur donner les réponses souhaitées. Il y en avait 9:
- Afficher les items (livres) de la base de donnée.
- Trier et afficher les items les mieux notés
- Afficher un item
- Ajouter sa note à un item
- Ajouter un item
- Modifier un de ses items
- Supprimer un de ses items
- S'inscrire
- Se connecter
Pour chacune de ces routes, il fallait définir le parcours de la requête: sa nature (get, post) et son endpoint (ex: /api/books/:id/rating), les middleware, puis les contrôleurs. Par exemple, plusieurs de ces routes nécessitaient d'être authentifié. Il y avait un middleware "auth.js" pour gérer cela et stopper la requête si le token de connexion n'était pas présent.
Si les middleware étaient passés avec succès, ce sont les contrôleurs qui sont activés et enregistrer, par exemple, la modification de la note en base de donnée.
Le style
Difficultés rencontrées
Le projet était relativement simple. La difficulté résidait surtout dans le fait que c'était notre premier contact avec ce système. Seul le paramétrage de la gestion des images, avec multer et sharp, était un peu complexe.