A full-stack Library Management System built using the MERN stack (MongoDB, Express.js, React, Node.js) with Role-Based Access Control (RBAC), JWT authentication via httpOnly cookies, Cloudinary image uploads, and support for student services like penalty payment and book extension requests.
I designed the website for specific college students. You can only register to this LMS website if your data present in college database.
So if you want to test and see your dashboard
- click on admin, Login to admin using,
- Enter UserName: AdminAR14, Password: 2305
- Go to add new student and add your detail that is name and URN.
- GO to register Page and then register and login.
The process is long but I design for only college student so no other people access it.
You can check the full running website on https://lms-frontend-jade-three.vercel.app/
- Secure JWT Authentication (httpOnly cookies)
/verifyTokenroute for session validation- Dual login via URN or Username
- Role-Based Access Control (RBAC)
- Role stored in
useState
- Admin
- Manage books
- View users
- Monitor extension and penalty requests
- Student
- Email Notifications for due dates
- View issued books
- Request due date extensions
- Pay penalties using RazorPay API (test mode)
- Integrated with Cloudinary for book cover uploads
FormDataAPI used for handling file data- Separate
useStateforcoverPhoto
- Parallel API fetching with
Promise.all - Efficient use of token-based user identification (
userIdfrom token)
- Built using React.js
- Responsive design and modern UI with animations
- React Context API used for global state (LMSState)
- React Router v6 for navigation
- Built with Express.js
- MongoDB for database
- Organized with dotenv (
./Data/config.env) - Role-based middleware for protected routes
- Frontend deployed to Vercel
- Backend deployed to Render
- CORS configured with frontend URL
- Vercel’s
vercel.jsonused for route rewrites - Performance monitored via Vercel Speed Insights
- 📖 AI-based Book Recommendation System (content-based / collaborative filtering)
- 📊 Admin Dashboard Analytics
| Frontend | Backend | Database | Auth | Deployment | Tools |
|---|---|---|---|---|---|
| React.js | Express.js | MongoDB | JWT (cookie-based) | Vercel (Frontend) Render (Backend) |
Cloudinary, Axios, dotenv, CORS |
For backend use LMS_API https://github.com/TheDevMonarch/LMS_API
cd LMS_Frontend
npm install
npm run dev- Configure
vite.config.jsto proxy API if needed. - API base URL should use
withCredentials: true.
VITE_API_URL= LOCAL_LMS_API_LINK or DEPLOYED_LMS_API_LINK
VITE_RAZORPAY_KEY=your_razorpay_key_here
├── LMS_Frontend/ # React frontend
│ ├── components/
│ ├── pages/
│ ├── context/LMSState.jsx
│ └── App.jsx
Aakash Rane
👨🎓 B.Tech CSE
📬 aakashrane15@gmail.com
🌐 www.linkedin.com/in/aakash-maruti-rane-2b94382b1
This project is licensed under the MIT License.
- Use
http://localhost:5173during local frontend testing. - Admin creation script is available in the backend (
/utils/adminCreate.js) - Don't forget to update CORS and environment variables during deployment.