Provided a links to postman API used, Live project links and my GitHub repository containing the source code for both the front-end and back-end. Additionally, include instructions on how to set up and run the application locally.
- Frontend Link: https://b00kflow.netlify.app/
- Backend Link: https://book-management-system-silk.vercel.app/
- GitHub Link: https://github.com/nandk4552/book-management-system
- POSTMAN API's: https://www.postman.com/grey-station-125149-1/workspace/claw-full-stack-internship-nandk4552-gmail-com/collection/21207467-008baac2-f8ff-497b-b6ac-4a9354f182ba?action=share&creator=21207467
Name: DEVARLA NAND KISHORE
Email: nandk4552@gmail.com
LinkedIn: https://www.linkedin.com/in/nandk4552/
Twitter: https://x.com/nandk_1
This project is a full-stack web application that allows users to manage a collection of books. It includes both front-end and back-end components, built using React.js, Node.js, MongoDB, and REST APIs.
-
Book Management User Interface (Front-End):
- All Books are visible in the home page
- Each user can add, view, edit, and delete books on their books only.
- Each book has the following fields: title, author, genre, and year published.
- The application is responsive and works well on different screen sizes.
-
Integration with Back-End (Node.js, Express):
- API calls are made to the back-end to fetch, add, update, and delete book data.
- Axios or the Fetch API is used to handle HTTP requests.
-
API Endpoints (Back-End):
-
RESTful API endpoints are set up:
_Authentication Routes_ - REGISTER USER || POST || `api/v1/auth/register` - LOGIN USER|| POST || `api/v1/auth/login` _User Routes_ - GET USER || POST || api/v1/user/get-user - GET ALL USERS || POST || api/v1/user/all-users - UPDATE USER || POST || api/v1/user/update-user - UPDATE PASSWORD || POST || api/v1/user/update-user - RESET USER PASSWORD || POST || api/v1/user/reset-password - DELETE USER || POST || `api/v1/user/delete-user` _Book Routes_ - GET ALL BOOKS || GET || `/api/v1/books` - GET ALL BOOKS BY LOGGED IN USER ID || GET || `/api/v1/books/get-by-user` - GET BOOK BY ID || GET || `/api/v1/books/:id` - CREATE A NEW BOOK || POST || `/api/v1/books` - UPDATE A BOOK BY ID || PUT || `/api/v1/books/:id` - DELETE A BOOK BY ID || DELETE || `/api/v1/books/:id` - FILTER FOR BOOK GENRES || GET || `/api/v1/books/filter/genres` - FILTER FOR BOOK AUTHORS || GET ||` /api/v1/books/filter/authors` - FILTER FOR BOOK TITLES || GET ||` /api/v1/books/filter/titles`
-
-
Data Validation and Error Handling (Back-End):
- Incoming data for book fields is validated.
- Errors are handled gracefully, returning appropriate HTTP status codes and messages.
-
Database Integration (MongoDB):
- MongoDB is used to store book data and user data.
- Mongoose models define data schema and interaction.
- Clone this repository to your local machine.
- Install dependencies for both the front-end and back-end:
- Front-End (React.js): Navigate to the
client
directory and runnpm install
. - Back-End (Node.js): Navigate to the
server
directory and runnpm install
.
- Front-End (React.js): Navigate to the
- Set up your MongoDB database and configure the connection in the back-end.
- Run the application:
- Front-End: In the
client
directory, runnpm run dev
. - Back-End: In the root directory i.e book-management-system, run
npm run server
. - Or else to run both applications run
npm run dev
in the root directory i.e book-management-system.
- Front-End: In the
implemented the following features for additional points:
- User authentication using JWT to protect certain API endpoints.
- Search and filter functionality for books.
- Pagination for the list of books using ant design Table component.