{"id":18301642,"url":"https://github.com/akashgiricse/bookstore","last_synced_at":"2026-04-07T20:31:50.517Z","repository":{"id":42989081,"uuid":"205499105","full_name":"akashgiricse/BookStore","owner":"akashgiricse","description":"Book store API made using Node.js, Express.js, and MongoDB","archived":false,"fork":false,"pushed_at":"2023-02-01T22:06:47.000Z","size":515,"stargazers_count":2,"open_issues_count":8,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-05T16:41:12.278Z","etag":null,"topics":["api","express","express-js","expressjs","mongodb","mongoose","node","nodejs","rest-api","restful-api"],"latest_commit_sha":null,"homepage":"","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/akashgiricse.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":"2019-08-31T05:17:31.000Z","updated_at":"2024-09-06T06:09:11.000Z","dependencies_parsed_at":"2023-02-13T05:30:55.300Z","dependency_job_id":null,"html_url":"https://github.com/akashgiricse/BookStore","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/akashgiricse/BookStore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akashgiricse%2FBookStore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akashgiricse%2FBookStore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akashgiricse%2FBookStore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akashgiricse%2FBookStore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akashgiricse","download_url":"https://codeload.github.com/akashgiricse/BookStore/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akashgiricse%2FBookStore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31528321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["api","express","express-js","expressjs","mongodb","mongoose","node","nodejs","rest-api","restful-api"],"created_at":"2024-11-05T15:16:31.866Z","updated_at":"2026-04-07T20:31:50.492Z","avatar_url":"https://github.com/akashgiricse.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Online Book Store API\n\nBook store API made using Node.js, Express.js, and MongoDB\n\n### API Features:\n\n1. **Books**\n   - Show a list of books to buy\n   - In book list, only show books which are in stock\n   - Show individual book details\n2. **Purchase**\n   - Books can be purchased only by logged in user\n   - Purchase is allowed only if the book is in stock\n   - Book's stock decrease/increase based on how many purchases have been made or canceled respectively\n   - Users can see their respective purchase list or individual purchase\n   - User can cancel their purchase (or order)\n3. **User**\n   - User signup / login feature available\n   - User has 2 roles\n     - Normal user\n     - Admin user\n   - A normal user can signup by _Name_, _Email_ and _Password_\n   - For login, _Email_ and _Password_ is required\n   - To register/signup as an **ADMIN**, an extra **admin-signup-key** is required which is not public\n   - Authentication is done by JWT tokens\n   - A normal user can see and purchase books but he/she can not add/modify a book\n   - A norma user can also cancel a purchase\n4. **Admin features**\n   - Only Admin can add/delete a book\n   - Admin can increase or decrease a book's stock\n   - Admin can update a book's data, such as title, description\n\n### Guide to local setup\n\n1. Clone this repository\n   ```bash\n   git clone https://github.com/akashgiricse/BookStore.git\n   ```\n2. Install node packages (from root directory)\n   ```bash\n   npm install\n   ```\n3. Setup a database on [MongoDB cloud database](https://www.mongodb.com/cloud) and get a _\"Connection String\"_\n4. Add the _\"Connection String\"_ to **mongoURI** key in `default.json` file which is in `config` folder\n5. Add **\"jwtSecret\"** and **\"admin-signup-key\"** key's value of your choice in `default.json`\n6. Run development server\n   ```bash\n   npm run server\n   ```\n7. Use the API in Postman or any other API testing tool\n\n### Please refere [here](https://github.com/akashgiricse/BookStore/blob/master/APIDoc.md) for API documentation\n\n### Contributors\n\n- [Akash Giri](https://github.com/akashgiricse)\n\n### License\n\nMIT License \u003cbr\u003e\nCopyright (c) 2019 Akash Giri.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakashgiricse%2Fbookstore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakashgiricse%2Fbookstore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakashgiricse%2Fbookstore/lists"}