A full-stack Library Management System built using the MERN Stack (MongoDB, Express.js, React.js, Node.js). The system provides role-based access for Admins and Students, allowing efficient management of books, student accounts, and borrowing requests.
This application is designed to simplify library operations such as user approval, book management, and borrow request tracking.
Admins have full control over the system and can manage users, books, and borrow requests.
-
View dashboard statistics
-
Manage student accounts
-
Approve or reject newly registered student accounts
-
View all registered students and their details
-
Add new books
-
Edit existing books
-
Delete books
-
View borrow requests submitted by students
-
Update borrow request status:
- Pending
- Borrowed
- Returned
- Late Return
-
Automatic date updates when status changes
- Total number of books
- Total number of students
- Total borrowed books
- Recently added books
- Recently created account requests
- Recent borrow requests
Students can browse books and submit borrowing requests once their account is approved.
Students must register by providing:
- First Name
- Last Name
- University ID Number
- Date of Birth
- Contact Number
- Department
- Password
After registration:
- The account is sent to the Admin for approval
- Students cannot perform actions until approved
After approval, students can:
- Browse all available books
- Search books
- Filter books by genre
- Submit a borrow request
- View borrowing status
- Update their profile information
- Upload a profile picture
Students can track their requests:
- Pending
- Borrowed
- Returned
- Late Return
- React.js
- Axios
- React Router
- CSS / Tailwind / Bootstrap (adjust depending on what you used)
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT (JSON Web Token)
library-management-system
β
βββ client/ # React Frontend
β βββ src
β βββ components
β βββ pages
β βββ services
β
βββ server/ # Node.js Backend
β βββ controllers
β βββ routes
β βββ models
β βββ middleware
β βββ config
β
βββ package.json
βββ README.md
git clone https://github.com/yourusername/library-management-system.gitcd library-management-system
cd server
npm installcd client
npm installCreate a .env file inside the server folder.
Example:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_keycd server
npm startcd client
npm run dev| Role | Permissions |
|---|---|
| Admin | Manage students, approve accounts, manage books, handle borrow requests |
| Student | Browse books, request borrowing, manage profile |
-
Student submits borrow request
-
Request status becomes Pending
-
Admin reviews the request
-
Admin updates status:
- Borrowed
- Returned
- Late Return
-
Dates update automatically when status changes
- Email notifications for approvals
- Book return reminders
- Fine calculation for late returns
- Admin analytics dashboard
Contributions are welcome!
- Fork the repository
- Create a new branch
git checkout -b feature-name- Commit changes
git commit -m "Add new feature"- Push branch
git push origin feature-name- Open a Pull Request
Developed by Shoaib Muhammad