Skip to content

shoaibmuhammad-dev/Library-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š Library Management System (MERN Stack)

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.


πŸš€ Features

πŸ‘¨β€πŸ’Ό Admin Features

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

πŸ“Š Admin Dashboard Includes

  • Total number of books
  • Total number of students
  • Total borrowed books
  • Recently added books
  • Recently created account requests
  • Recent borrow requests

πŸŽ“ Student Features

Students can browse books and submit borrowing requests once their account is approved.

Account Registration

Students must register by providing:

  • First Name
  • Last Name
  • Email
  • 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

Student Capabilities

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

Borrow Request Status Tracking

Students can track their requests:

  • Pending
  • Borrowed
  • Returned
  • Late Return

πŸ—οΈ Tech Stack

Frontend

  • React.js
  • Axios
  • React Router
  • CSS / Tailwind / Bootstrap (adjust depending on what you used)

Backend

  • Node.js
  • Express.js

Database

  • MongoDB
  • Mongoose

Authentication

  • JWT (JSON Web Token)

πŸ“‚ Project Structure

library-management-system
β”‚
β”œβ”€β”€ client/                # React Frontend
β”‚   β”œβ”€β”€ src
β”‚   β”œβ”€β”€ components
β”‚   β”œβ”€β”€ pages
β”‚   └── services
β”‚
β”œβ”€β”€ server/                # Node.js Backend
β”‚   β”œβ”€β”€ controllers
β”‚   β”œβ”€β”€ routes
β”‚   β”œβ”€β”€ models
β”‚   β”œβ”€β”€ middleware
β”‚   └── config
β”‚
β”œβ”€β”€ package.json
└── README.md

βš™οΈ Installation & Setup

1️⃣ Clone the repository

git clone https://github.com/yourusername/library-management-system.git
cd library-management-system

2️⃣ Install dependencies

Install backend dependencies

cd server
npm install

Install frontend dependencies

cd client
npm install

3️⃣ Setup Environment Variables

Create a .env file inside the server folder.

Example:

PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key

4️⃣ Run the application

Start backend

cd server
npm start

Start frontend

cd client
npm run dev

πŸ” User Roles

Role Permissions
Admin Manage students, approve accounts, manage books, handle borrow requests
Student Browse books, request borrowing, manage profile

πŸ“Š Borrow Request Workflow

  1. Student submits borrow request

  2. Request status becomes Pending

  3. Admin reviews the request

  4. Admin updates status:

    • Borrowed
    • Returned
    • Late Return
  5. Dates update automatically when status changes


πŸ“Έ Future Improvements

  • Email notifications for approvals
  • Book return reminders
  • Fine calculation for late returns
  • Admin analytics dashboard

🀝 Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create a new branch
git checkout -b feature-name
  1. Commit changes
git commit -m "Add new feature"
  1. Push branch
git push origin feature-name
  1. Open a Pull Request

πŸ‘¨β€πŸ’» Author

Developed by Shoaib Muhammad

GitHub: https://github.com/shoaibmuhammad-dev

About

Created a full stack library management system to manage books, users, borrow requests etc.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors