The Library Management System is a comprehensive application designed to manage book inventories, track borrower details, and handle transactions efficiently. This system allows users to manage books, borrow and return books, receive notifications for due dates, and generate various reports.
- Login/Logout functionality for Admin and Users.
- Role-based access control: Admin, Librarian, and User roles.
- Add, update, delete, and search for books.
- Book details: ISBN, title, author, publisher, year, genre, quantity.
- Real-time availability status.
- Fetch book details using Google Books API.
- Checkout process for borrowing books.
- Return process including due dates and late fees calculation.
- History tracking for each user's borrowed and returned books.
- Advanced search options (by title, author, genre, etc.).
- Book recommendations based on user history or popular trends.
- Email or SMS notifications for due dates, new arrivals, etc.
- Alerts for overdue books and outstanding fees.
- Generate reports on book usage, overdue items, user activity, etc.
- Dashboard for admins and librarians to see real-time statistics.
- Node.js
- MongoDB
- npm (Node Package Manager)
-
Clone the repository:
git clone <repository-url> cd LibraryManagementSystem
-
Install server dependencies:
cd server npm install
-
Set up the environment variables: Create a
.env
file in theserver
directory and add the following:PORT=4000 MONGODB_URI=<your-mongodb-uri> JWT_SECRET=<your-jwt-secret>
-
Start the server:
npm start
POST /api/auth/signup
: Register a new user.POST /api/auth/login
: Login for existing users.
GET /api/users
: Get all users (Admin and Librarian access only).
POST /api/borrow
: Borrow a book.
LibraryManagementSystem ├── server │ ├── config │ │ └── database.js │ ├── controllers │ │ ├── Auth.js │ │ ├── borrowController.js │ │ └── userController.js │ ├── middleware │ │ └── auth.js │ ├── models │ │ ├── Account.js │ │ ├── Book.js │ │ ├── LibraryDatabase.js │ │ └── User.js │ ├── routes │ │ ├── Auth.js │ │ ├── Borrow.js │ │ └── user.js │ ├── .env │ ├── .gitignore │ ├── index.js │ ├── package-lock.json │ └── package.json ├── README.md
- Use Postman or any other API testing tool to test the API endpoints.
- Ensure the server is running and the database is connected.
Contributions are welcome. Please fork the repository and create a pull request with detailed comments.
This project is licensed under the MIT License.
- Aditya Uttarwar - adityauttarwar29@gmail.com
- Hemil Dudhat - hemildudhat36@gmail.com
- Rajat Agrawal - agrawalarajat357@gmail.com
- Siddharth Rajesh Jiyani - sidjiyani2003@gmail.com
Powered by Odoo Combat - Final Round