A complete Library Management System built with MongoDB, Express.js, React.js, and Node.js. Features role-based access control with three user types (Admin, Librarian, Student), book management with Cloudinary image uploads, issue/return tracking, and automated fine calculations.
Check out the live demo of the project:https://library-management-app-karan.vercel.app/
Test Credentials:
- Admin: admin@example.com / admin123
- Librarian: librarian@example.com / lib123
- Student: student@example.com / student123
- β User registration & login with JWT authentication
- π Browse and search available books with images
- π₯ Request book issuance
- π€ Submit return requests
- β³ View due dates and pending fines
- π Personal dashboard with borrowing history
- βοΈ Approve/reject book issue requests
- βοΈ Manage return requests
- β Add/Edit/Remove books with image uploads (Cloudinary)
- π View all issued books
- π Dashboard for Real-time Activity & Analytics
- π₯ Manage all user accounts
- π‘οΈ Assign librarian privileges
- π System analytics dashboard
- Core: React.js (v18.2) with Functional Components & Hooks
- Routing: React Router v6
- UI Framework: React Bootstrap v5.2 + Custom CSS
- HTTP Client: Axios for API communication
- Image Management: Cloudinary React SDK
- Notifications: React Toastify
- Icons: React Icons library
- Form Handling: React Hook Form
- State Management: Context API
- Runtime: Node.js v18.x
- Framework: Express.js v4.18
- Database: MongoDB Atlas (Cloud) with Mongoose ODM
- Authentication: JWT with Bcrypt password hashing
- Email Service: Nodemailer for OTP/password reset
- File Uploads: Multer + Cloudinary Node SDK
- API Testing: Thunder Client (VS Code extension)
- API Documentation: Hopscotch
- Version Control: Git + GitHub
- Frontend: Vercel (Edge Network)
- Backend: Render (Node.js Environment)
- Database: MongoDB Atlas (Cloud)
- Media Storage: Cloudinary CDN
Clone the project repository to your local machine using the following command:
git clone https://github.com/KaranMehta1806/Library-Management.gitNavigate to the frontend and backend directories, and install dependencies:
cd backendnpm installcd frontendnpm installCreate a .env file in api and add the following environment variables:
EMAIL_USER=your_email_address
EMAIL_PASS=your_email_password
EMAIL_SERVICE=your_email_service
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
CLOUD_NAME=your_cloud_name
CLOUD_API_KEY=your_cloud_api_key
CLOUD_API_SECRET=your_cloud_api_secret
VITE_BACKEND_URL=https://your-backend-url.onrender.com
Once the dependencies are installed and the .env file is set up, you can start the development server with the following command:
Start the backend server by navigating to the backend directory and running the following command:
nodemon index.jsStart the frontend server by navigating to the frontend directory and running the following command:
npm run devFeel free to connect with me through the following platforms: