Ce projet est réalisé dans le cadre du TP1 du cours de Développement Web Avancé à Mundiapolis University. Il s’agit d’une application de gestion de livres développée en Node.js avec Express. L’application permet d’effectuer des opérations CRUD (Create, Read, Update, Delete) sur une collection de livres, commandes et clients.
- Développer une API RESTful pour gérer des livres, commandes, et clients.
- Mettre en œuvre les routes pour afficher, ajouter, modifier et supprimer des éléments.
- Utiliser Express comme framework pour gérer le routage et les requêtes HTTP.
- Afficher tous les livres : Obtenez la liste de tous les livres disponibles.
- Rechercher un livre par ID : Recherchez un livre spécifique via son identifiant.
- Ajouter un nouveau livre : Ajoutez un nouveau livre avec un titre et un prix.
- Mettre à jour un livre : Modifiez les détails d’un livre existant.
- Supprimer un livre : Supprimez un livre de la collection.
- Gestion des commandes : Ajouter, modifier et afficher les commandes avec leurs livres associés.
- Gestion des clients : Ajouter, modifier et afficher les informations client.
- Node.js : Environnement d’exécution JavaScript.
- Express.js : Framework web minimaliste pour Node.js.
- Mongoose : ODM pour MongoDB, utilisé pour gérer les données de manière structurée.
Avant de cloner et exécuter ce projet, assurez-vous que vous avez installé les éléments suivants :
- Node.js (version 14.x ou supérieure)
- npm (le gestionnaire de packages de Node.js)
- MongoDB (local ou cluster)
-
Cloner le dépôt :
git clone https://github.com/ton-utilisateur/TP1-Mundiapolis-NodeJS.git
-
Naviguer dans le répertoire du projet :
cd TP1-Mundiapolis-NodeJS
-
Installer les dépendances :
npm install
-
Configurer l’environnement : Renommez le fichier
.env.example
en.env
et remplissez les variables commeMONGO_URL
etPORT
pour configurer MongoDB et le serveur.
-
Lancer le serveur :
npm start
-
Ou avec Nodemon (si installé globalement) :
nodemon index.js
- Liste des livres : http://localhost:9090/api/books
- Liste des commandes : http://localhost:9090/api/orders
- Liste des clients : http://localhost:9090/api/customers
- Accéder à toutes les données : http://localhost:9090/api - Affiche tous les livres, commandes et clients.
- Méthode : GET
- URL :
http://localhost:9090/api/books
-
Méthode : POST
-
URL :
http://localhost:9090/api/books
-
Body (JSON) :
{ "title": "Nouveau Livre", "price": 35, "author": "Auteur Exemple" }
-
Méthode : PATCH
-
URL :
http://localhost:9090/api/books/:id
-
Body (JSON) :
{ "title": "Livre mis à jour", "price": 40 }
- Méthode : DELETE
- URL :
http://localhost:9090/api/books/:id
- Méthode : GET
- URL :
http://localhost:9090/api/orders
-
Méthode : POST
-
URL :
http://localhost:9090/api/orders
-
Body (JSON) :
{ "orderDate": "2023-10-01", "totalAmount": 150, "customer": "<customer_id>", "books": ["<book_id1>", "<book_id2>"] }
- Méthode : GET
- URL :
http://localhost:9090/api/customers
-
Méthode : POST
-
URL :
http://localhost:9090/api/customers
-
Body (JSON) :
{ "fName": "Alice", "lName": "Smith", "email": "[email protected]", "password": "password123" }
Mohamed Lakssir