{"id":25209446,"url":"https://github.com/AzizBenIsmail/PFE_Book_Review_et_Management_Service","last_synced_at":"2025-10-25T09:31:28.276Z","repository":{"id":275033594,"uuid":"924856298","full_name":"AzizBenIsmail/Book_Review_et_Management_Service","owner":"AzizBenIsmail","description":"Exercise_ Book Review \u0026 Management Service","archived":false,"fork":false,"pushed_at":"2025-01-30T20:19:13.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T20:27:35.644Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AzizBenIsmail.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-30T19:13:41.000Z","updated_at":"2025-01-30T20:19:16.000Z","dependencies_parsed_at":"2025-01-30T20:38:29.137Z","dependency_job_id":null,"html_url":"https://github.com/AzizBenIsmail/Book_Review_et_Management_Service","commit_stats":null,"previous_names":["azizbenismail/book_review_et_management_service"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzizBenIsmail%2FBook_Review_et_Management_Service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzizBenIsmail%2FBook_Review_et_Management_Service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzizBenIsmail%2FBook_Review_et_Management_Service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzizBenIsmail%2FBook_Review_et_Management_Service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AzizBenIsmail","download_url":"https://codeload.github.com/AzizBenIsmail/Book_Review_et_Management_Service/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238117362,"owners_count":19419223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-10T13:17:17.855Z","updated_at":"2025-10-25T09:31:22.912Z","avatar_url":"https://github.com/AzizBenIsmail.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Book_Review_et_Management_Service\n\n## Prérequis\n\nAvant de commencer, assurez-vous d'avoir les éléments suivants installés sur votre machine :\n\nIl est recommandé d’installer npm pour mieux gérer les versions de Node.\n\npour le docker version node 20.18.0\n\n- [Node.js](https://nodejs.org/) (version 16.14.2 ou supérieure)\n- [MongoDB](https://www.mongodb.com/) (version 4.0.3 ou supérieure)\n- [Git](https://github.com/AzizBenIsmail/Book_Review_et_Management_Service) (pour cloner le dépôt)\n\n# Tester les Routes\n\nPour tester les routes de l'API, vous pouvez utiliser un outil comme [Postman](https://www.postman.com/) \n\n! Important : Une base de données sera automatiquement créée (si elle n'existe pas déjà) et remplie avec des données d'exemple pour faciliter les tests. Cela vous permet de gagner du temps en ayant des données prêtes à l'emploi lors de vos tests. \n\n### Utilisateurs ajoutés par défaut :\n\n- **admin** : \n  - Email : admin.tn@gmail.com\n  - Mot de passe : Azerty123\u0026\n  - Rôle : admin\n- **client** : \n  - Email : client.tn@gmail.com\n  - Mot de passe : Azerty123\u0026\n  - Rôle : user\n- **client1** : \n  - Email : client1.tn@gmail.com\n  - Mot de passe : Azerty123\u0026\n  - Rôle : user\n\n### Livres ajoutés par défaut :\n\n1. **To Kill a Mockingbird** (Harper Lee) - Genre : Fiction\n2. **1984** (George Orwell) - Genre : Dystopian\n3. **The Great Gatsby** (F. Scott Fitzgerald) - Genre : Classic\n4. **Pride and Prejudice** (Jane Austen) - Genre : Romance\n5. **Moby-Dick** (Herman Melville) - Genre : Adventure\n6. **The Catcher in the Rye** (J.D. Salinger) - Genre : Coming of Age\n7. **The Hobbit** (J.R.R. Tolkien) - Genre : Fantasy\n8. **Fahrenheit 451** (Ray Bradbury) - Genre : Science Fiction\n9. **Crime and Punishment** (Fyodor Dostoevsky) - Genre : Crime\n10. **The Picture of Dorian Gray** (Oscar Wilde) - Genre : Philosophical\n\nCes données sont insérées automatiquement lorsque vous exécutez le serveur pour la première fois. Elles vous permettent de tester rapidement les fonctionnalités de votre API sans avoir besoin de les insérer manuellement.\n\n\n### 1. **Installer les dépendances**\n\n```bash\nnpm install\n``` \n### 2. **Configurer l'environnement**\n\nCréez un fichier .env à la racine du projet et ajoutez les variables d'environnement suivantes :\n\n! Important : Dans cet exemple, j'ai pusher le dotenv pour faciliter la tâche .\n\n```bash\nPORT=5000\nNet_Secret=votre_clé_secrète\nMONGO_URI=mongodb://localhost:27017/votre_base_de_données \n``` \n\n### 3. **Lancer le Serveur**\n\nLorsque vous démarrez le serveur en utilisant la commande : \n\n```bash\nnpm run dev \n``` \n### 4. **Routes disponibles**\n\n! Important : il faut être authentifié pour tester les routes.\n\n#### 1. **Utilisateurs**\n```bash\nGET /users/getAllUsers - Récupère tous les utilisateurs.  \n\nPOST /users/register - Enregistre un nouvel utilisateur.\n\nbody :{\n        \"email\": \"admin.tn@gmail.com\",\n        \"userName\" : \"user1\",\n        \"password\": \"Azerty123\u0026\"\n    }\n\nPOST /users/login - Connecte un utilisateur.\n\nbody :{\n        \"email\": \"admin.tn@gmail.com\",\n        \"password\": \"Azerty123\u0026\"\n    }\n\nGET /users/logout - Déconnecte un utilisateur.\n\nDELETE /users/deleteUserById/:id - Supprime un utilisateur par son ID.\n``` \n#### 2. **Livres**\n\n```bash\nGET /books/getAllBooks - Récupère tous les livres.\n\nPOST /books/addBook - Ajoute un nouveau livre.\n\nform-date avec une image \n\nPUT /books/updateBook/:id - Met à jour un livre par son ID.\n\nGET /books/getBookById/:id - Récupère un livre par son ID.\n\nGET /books/searchBooks - Recherche des livres.\n\nbody : {\n    \"title\":\"javaScript\",\n    \"author\":\"AzizBenIsmail\",\n    \"genre\":\"dev\"\n}\n\nGET /books/searchFilterBooks?title=javaScript\u0026author=AzizBenIsmail\u0026genre=web\u0026page=1\u0026limit=2 - Recherche et filtre des livres.\n\nDELETE /books/deleteBookById/:id - Supprime un livre par son ID.\n``` \n#### 3. **Commentaires**\n\n```bash\nGET /reviews/getAllReviws - Récupère tous les commentaires.\n\nPOST /reviews/addReview/:id - Ajoute un commentaire à un livre.\n\nbpdy : {\n    \"rating\" : 4.5,\n    \"comment\" : \"bad news \"\n}\n\nPUT /reviews/updateReview/:id - Met à jour un commentaire par son ID.\n\nbpdy : {\n    \"rating\" : 4.5,\n    \"comment\" : \"bad news \"\n}\n\nDELETE /reviews/deleteReviewById/:id - Supprime un commentaire par son ID. \n``` ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAzizBenIsmail%2FPFE_Book_Review_et_Management_Service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAzizBenIsmail%2FPFE_Book_Review_et_Management_Service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAzizBenIsmail%2FPFE_Book_Review_et_Management_Service/lists"}