{"id":20917083,"url":"https://github.com/rationalprabal/book-management-app","last_synced_at":"2026-04-10T01:55:34.836Z","repository":{"id":250683972,"uuid":"835078557","full_name":"RationalPrabal/Book-Management-App","owner":"RationalPrabal","description":"A Node.js and Express.js application for managing books, featuring role-based authentication and authorization with JWT, file uploads for book cover pages, robust data validation and documentation using swagger. The project includes user roles such as Admin, Author, and Reader, each with specific permissions.","archived":false,"fork":false,"pushed_at":"2024-07-29T13:10:12.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-19T16:40:45.651Z","etag":null,"topics":["data","expressjs","jwt-authentication","mongodb","mongoose","nodejs","rbac-roles"],"latest_commit_sha":null,"homepage":"https://book-management-app-production.up.railway.app/","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/RationalPrabal.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":"2024-07-29T05:50:28.000Z","updated_at":"2024-08-03T07:52:33.000Z","dependencies_parsed_at":"2024-11-18T16:50:43.158Z","dependency_job_id":"4803ca41-c37e-4c28-a42b-29abd3df2c39","html_url":"https://github.com/RationalPrabal/Book-Management-App","commit_stats":null,"previous_names":["rationalprabal/book-management-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RationalPrabal%2FBook-Management-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RationalPrabal%2FBook-Management-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RationalPrabal%2FBook-Management-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RationalPrabal%2FBook-Management-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RationalPrabal","download_url":"https://codeload.github.com/RationalPrabal/Book-Management-App/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243311251,"owners_count":20270934,"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":["data","expressjs","jwt-authentication","mongodb","mongoose","nodejs","rbac-roles"],"created_at":"2024-11-18T16:29:53.035Z","updated_at":"2025-12-29T02:04:27.773Z","avatar_url":"https://github.com/RationalPrabal.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Book Management System\n\nA Node.js and Express.js application for managing books with role-based authentication (Admin, Author, Reader), JWT authorization, CRUD operations, Cloudinary file uploads, and data validation using `express-validator`. Features include request logging and error handling.\n\n## Features\n\n- **Role-based Authentication \u0026 Authorization**:\n  - **Admin**: Full access to all CRUD operations for books.\n  - **Author**: Can create, update, and view books.\n  - **Reader**: Can only view and read books.\n- **Book Management**: Create, update, delete, and view books.\n- **File Uploads**: Upload book cover pages to Cloudinary.\n- **Validation**: Validate incoming request data with `express-validator`.\n- **Request Logging**: Log incoming requests with method, URL, and timestamp.\n- **Error Handling**: Handle errors gracefully with meaningful messages and status codes.\n\n## Setup\n\n1. Clone the repository:\n   ```sh\n   git clone https://github.com/your-username/book-management-system.git\n   cd book-management-system\n2. Install dependencies:\n   ```sh\n   npm install\n3. Create a .env file and add your configuration:\n    ```sh\n    PORT=3000\n    MONGODB_URI=your_mongodb_uri\n    JWT_SECRET=your_jwt_secret\n    CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name\n    CLOUDINARY_API_KEY=your_cloudinary_api_key\n    CLOUDINARY_API_SECRET=your_cloudinary_api_secret\n\n4. Start the server:\n   ```sh\n   npm run dev\n\nAPI Documentation\nThe API is documented using Swagger. You can view the API documentation at http://localhost:3000/api-docs once the server is running.\n   \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frationalprabal%2Fbook-management-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frationalprabal%2Fbook-management-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frationalprabal%2Fbook-management-app/lists"}