{"info":{"_postman_id":"7b5ed0e1-4905-402a-9cb1-acd0dee5a9c1","name":"Sava Book Management System","description":"<html><head></head><body><h1 id=\"about-the-project\">✨ About the Project</h1>\n<p>The Book Management System is a server-side application built with Node.js that allows users to manage a collection of books. It utilizes a Redis in-memory database to store book data and provides various API endpoints to perform CRUD (Create, Read, Update, Delete) operations on the books. Additionally, the project includes a Command Line Interface (CLI) app that allows users to interact with the API directly from the command line.</p>\n<p>Visit the <a href=\"\">GithHub Repo Here</a></p>\n<h2 id=\"🚀-api-features\">🚀 API Features</h2>\n<ul>\n<li>Get a list of all books in the collection</li>\n<li>Get a book by its ISBN number</li>\n<li>Create a new book and add it to the collection</li>\n<li>Update an existing book by its ISBN number</li>\n<li>Delete a book by its ISBN number</li>\n<li>Search for books by title or author</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"✨ About the Project","slug":"about-the-project"}],"owner":"11729879","collectionId":"7b5ed0e1-4905-402a-9cb1-acd0dee5a9c1","publishedId":"2s9XxtxagQ","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2023-07-30T16:32:11.000Z"},"item":[{"name":"Get Books","event":[{"listen":"test","script":{"id":"a8be873f-5173-4f5a-b1a0-ce321f635914","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});"],"type":"text/javascript"}}],"id":"f8013bdf-a84d-4fe2-96a5-bd4b0d8a06ee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:3000/books?page=3","description":"<p>This is a get request, and it is used to get a list of all the books in the database</p>\n<p>A successful GET request typically returns a <code>200 OK</code>response code</p>\n","urlObject":{"path":["books"],"host":["http://localhost:3000"],"query":[{"key":"page","value":"3"}],"variable":[]}},"response":[{"id":"37177254-082a-4e0d-b309-8d59a8e30827","name":"Get Books","originalRequest":{"method":"GET","header":[],"url":"http://localhost:3000/books"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Sun, 30 Jul 2023 15:43:12 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": true,\n    \"message\": \"get books\",\n    \"books\": [\n        {\n            \"title\": \"A New Cruza\",\n            \"author\": \"John Doe\",\n            \"publicationYear\": \"2003\",\n            \"ISBN\": \"0-3790-1972-9\"\n        },\n        {\n            \"title\": \"A new dawn\",\n            \"author\": \"Techemmy\",\n            \"publicationYear\": \"2023\",\n            \"ISBN\": \"103-23-5-2-121\"\n        }\n    ]\n}"},{"id":"28fc4d41-479b-4dc9-bdd9-870fa4d4280d","name":"Get Books with Page Parameter","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:3000/books?page=3","host":["http://localhost:3000"],"path":["books"],"query":[{"key":"page","value":"3"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Wed, 09 Aug 2023 23:40:14 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": true,\n    \"message\": \"get books\",\n    \"books\": [\n        {\n            \"title\": \"A new dawn\",\n            \"author\": \"Techemmy\",\n            \"publicationYear\": \"2023\",\n            \"ISBN\": \"103-23-5-2-121\"\n        },\n        {\n            \"title\": \"Bagger 7\",\n            \"author\": \"Bag James\",\n            \"publicationYear\": \"2023\",\n            \"ISBN\": \"242-428-2007\"\n        },\n        {\n            \"title\": \"The Fallen Sun\",\n            \"author\": \"John Luther\",\n            \"publicationYear\": \"2023\",\n            \"ISBN\": \"ma-ss-i-v-e-wi-n\"\n        }\n    ]\n}"}],"_postman_id":"f8013bdf-a84d-4fe2-96a5-bd4b0d8a06ee"},{"name":"Create a Book","event":[{"listen":"test","script":{"id":"39b8ccbf-7d37-4b93-a780-2c508020121c","exec":["pm.test(\"Successful POST request\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200, 201]);","});",""],"type":"text/javascript"}}],"id":"89efd6a3-5833-4202-a40d-d47349140a83","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Quisque varius.\",\n    \"author\": \"Odysseus Owen\",\n    \"publicationYear\": 1937,\n    \"ISBN\": \"UNY-MWY-QS-JVP\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/books","description":"<p>This is a POST request, submitting a new book details to the API via the request body. This request submits JSON data, and the data is reflected in the response.</p>\n<p>A successful POST request typically returns a <code>200 OK</code> or <code>201 Created</code> response code.</p>\n<p>An unsuccessful POST request typically returns a <code>422 Unprocessable entity</code> for validation errors, <code>409 Conflict</code> for conflicting ISBN with an existing book, or <code>201 Created</code>response code.</p>\n","urlObject":{"path":["books"],"host":["http://localhost:3000"],"query":[],"variable":[]}},"response":[{"id":"0f2ac8e2-a51f-4dbd-a02e-8057d92c2aef","name":"Create a Book","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Quisque varius.\",\n    \"author\": \"Odysseus Owen\",\n    \"publicationYear\": 1937,\n    \"ISBN\": \"UNY-MWY-QS-JVP\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/books"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Sun, 30 Jul 2023 15:47:01 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": true,\n    \"message\": \"Book created!\",\n    \"newBook\": {\n        \"title\": \"Quisque varius.\",\n        \"author\": \"Odysseus Owen\",\n        \"publicationYear\": 1937,\n        \"ISBN\": \"UNY-MWY-QS-JVP\"\n    }\n}"}],"_postman_id":"89efd6a3-5833-4202-a40d-d47349140a83"},{"name":"Get a Book By ISBN","event":[{"listen":"test","script":{"id":"34ff6a17-0aa5-4a8f-bbf2-55c1d8205cd5","exec":["pm.test(\"Successful PUT request\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});",""],"type":"text/javascript"}}],"id":"a0679c4e-92fe-4cc0-9d38-8817b1bfa516","request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/books/UNY-MWY-QS-JVP","description":"<p>This is a GET request and it is used to get an existing book. For instance, after you create a book with a POST request, you may want to get that later. You can do that using a GET request.</p>\n<p>A successful PUT request typically returns a <code>200 OK</code> response code.<br />An unsuccessful POST request typically returns a <code>404 Not Found</code> response code.</p>\n","urlObject":{"path":["books","UNY-MWY-QS-JVP"],"host":["http://localhost:3000"],"query":[],"variable":[]}},"response":[{"id":"320f9407-23bd-4eb8-8ecf-e9c7ed05e6cf","name":"Get a Book By ISBN","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/books/UNY-MWY-QS-JVP"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Sun, 30 Jul 2023 15:47:37 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": true,\n    \"message\": \"Book Details\",\n    \"book\": {\n        \"title\": \"Quisque varius.\",\n        \"author\": \"Odysseus Owen\",\n        \"publicationYear\": \"1937\",\n        \"ISBN\": \"UNY-MWY-QS-JVP\"\n    }\n}"}],"_postman_id":"a0679c4e-92fe-4cc0-9d38-8817b1bfa516"},{"name":"Edit a Book By ISBN","event":[{"listen":"test","script":{"id":"34ff6a17-0aa5-4a8f-bbf2-55c1d8205cd5","exec":["pm.test(\"Successful PUT request\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});",""],"type":"text/javascript"}}],"id":"96ad4dfb-99c0-4dac-b1f4-5440836a1ed2","request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Nunc commodo\",\n    \"author\": \"Gisela Burris\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/books/UNY-MWY-QS-JVP","description":"<p>This is a PATCH request and it is used to update an existing book data. For instance, after you create a book with a POST request, you may want to modify that later. You can do that using a PATCH request.</p>\n<p>A successful PATCH request typically returns a <code>201 Created</code>, or <code>204 No Content</code> response code.</p>\n<p>An unsuccessful POST request typically returns a <code>422 Unprocessable Entity</code> for validation errors on the new update, or <code>404 Not Found</code> response code for not getting a match for the book in the database.</p>\n","urlObject":{"path":["books","UNY-MWY-QS-JVP"],"host":["http://localhost:3000"],"query":[],"variable":[]}},"response":[{"id":"e2e8426f-3065-4a79-b9a4-434b9699a0b6","name":"Edit a Book By ISBN","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"title\": \"Nunc commodo\",\n    \"author\": \"Gisela Burris\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/books/UNY-MWY-QS-JVP"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Sun, 30 Jul 2023 15:48:57 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": true,\n    \"message\": \"Book updated!\",\n    \"updatedBook\": {\n        \"title\": \"Nunc commodo\",\n        \"author\": \"Gisela Burris\",\n        \"publicationYear\": \"1937\",\n        \"ISBN\": \"UNY-MWY-QS-JVP\"\n    }\n}"}],"_postman_id":"96ad4dfb-99c0-4dac-b1f4-5440836a1ed2"},{"name":"Delete a Book By ISBN","event":[{"listen":"test","script":{"id":"70d909e7-7c1f-44ee-a71c-be81f3151ab4","exec":["pm.test(\"Successful DELETE request\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200, 202, 204]);","});",""],"type":"text/javascript"}}],"id":"a4fb02e2-f487-47b0-b445-23344e8c3d05","request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/books/UNY-MWY-QS-JVP","description":"<p>This is a DELETE request, and it is used to delete data a book by adding its ISBN in the route</p>\n<p>A successful DELETE request typically returns a <code>200 OK</code></p>\n<p>An unsuccessful request typically returns <code>404 NOT FOUND</code> response code for not finding a match for the book ISBN in the database</p>\n","urlObject":{"path":["books","UNY-MWY-QS-JVP"],"host":["http://localhost:3000"],"query":[],"variable":[]}},"response":[{"id":"fefb7f85-fd4c-4e70-87f1-eca406863e93","name":"Delete a Book By ISBN","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/books/UNY-MWY-QS-JVP"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Sun, 30 Jul 2023 15:50:04 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": true,\n    \"message\": \"Book deleted!\"\n}"}],"_postman_id":"a4fb02e2-f487-47b0-b445-23344e8c3d05"},{"name":"Search for Book by Author/Title","event":[{"listen":"test","script":{"id":"34ff6a17-0aa5-4a8f-bbf2-55c1d8205cd5","exec":["pm.test(\"Successful PUT request\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});",""],"type":"text/javascript"}}],"id":"b22f19c1-87ba-45b8-8aea-33b9a3b866c2","request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:3000/books/search?term=modo","description":"<p>This is a GET request and it is used to search for an existing book.</p>\n<p>A successful PUT request typically returns a <code>200 OK</code>response code.</p>\n<p>An unsuccessful request typically returns <code>400 Bad Request</code> response code for not passing a search <code>term</code></p>\n","urlObject":{"path":["books","search"],"host":["http://localhost:3000"],"query":[{"key":"term","value":"modo"}],"variable":[]}},"response":[{"id":"ff9d72c3-3997-4d5f-af32-dbd7645239dc","name":"Search for Book by Author/Title","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"http://localhost:3000/books/search?term=modo","host":["http://localhost:3000"],"path":["books","search"],"query":[{"key":"term","value":"modo"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Sun, 30 Jul 2023 15:49:44 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"},{"key":"Transfer-Encoding","value":"chunked"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": true,\n    \"message\": \"Search Results\",\n    \"books\": [\n        {\n            \"title\": \"Nunc commodo\",\n            \"author\": \"Gisela Burris\",\n            \"publicationYear\": \"1937\",\n            \"ISBN\": \"UNY-MWY-QS-JVP\"\n        }\n    ]\n}"}],"_postman_id":"b22f19c1-87ba-45b8-8aea-33b9a3b866c2"}],"event":[{"listen":"prerequest","script":{"id":"d027784e-babb-42b1-abcb-b48cfcb6f785","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"4bde5a93-6807-4551-aeed-51a3c0d9c388","type":"text/javascript","exec":[""]}}],"variable":[{"key":"base_url","value":"http://localhost:3000"}]}