Libro is a full-stack library management system built to manage library operations for multiple user roles such as owners, members/students, and guards. The platform supports library setup, floor and seat management, booking, payments, QR-based attendance, and role-based dashboards.
It was developed as a practical, real-world project to simulate how a modern library or study-center management system would work in production.
Libro helps a library owner manage:
- library setup and configuration
- floors and seat layouts
- time slots and pricing plans
- member registration and approvals
- seat bookings
- payments and fee tracking
- QR code generation for membership and attendance
- attendance tracking with guard scan support
The system is designed around three main user roles:
- Owner/Admin: full control of the platform
- Member/Student: can register, view dashboards, book seats, and manage personal activity
- Guard: can scan QR codes and mark attendance quickly
This project aims to solve the problem of manually managing a library’s day-to-day operations. Instead of handling everything through spreadsheets or paper records, this system provides a centralized digital platform for:
- seat allocation
- membership management
- booking workflows
- attendance tracking
- payment recording
- automated QR-based check-ins
- owner/admin registration and login
- member/student registration and approval flow
- secure authentication using JWT
- role-based access control for different modules
- library profile creation and management
- opening/closing time configuration
- working day and holiday setup
- create, update, and delete floors
- manage seats by floor and seat type
- visual seat layout support
- student/member book seats
- seat availability management
- booking history and status tracking
- plan and pricing management
- payment recording
- fee status tracking
- membership lifecycle support
- QR code generation for members
- scan-based attendance tracking by guard
- entry log management
- owner dashboard with key stats
- reporting support for attendance, payments, and active usage
- Backend: Node.js + Express.js
- Database: MongoDB + Mongoose
- Authentication: JWT, bcrypt
- File Uploads: Multer + Cloudinary
- Payments: Razorpay
- QR: qrcode
- PDF Generation: PDFKit
- Security: Helmet, CORS, Express Rate Limiting
- Dev Tooling: Nodemon
- src/app.js: main Express application setup
- src/routes: API routes for auth, bookings, payments, QR, attendance, and dashboard
- src/controllers: business logic for each domain
- src/models: MongoDB schemas for users, bookings, payments, seats, attendance, and more
- src/middlewares: authentication, upload, rate limiting, and access control
- src/config: database, Cloudinary, and payment configuration
- The owner registers and sets up the library.
- Floors, seats, slots, and pricing plans are created.
- Members register and wait for approval.
- Approved members can browse available seats and place booking.
- The owner manages bookings.
- Attendance is recorded through QR scanning by guards.
- Payments and membership statuses are tracked in the system.
- Node.js
- MongoDB
- npm
- Clone the repository
- Install dependencies:
npm install- Create a .env file with the required environment variables:
PORT=2020
MONGO_URI=your_mongodb_connection_string
FRONTEND_URL=http://localhost:3000
JWT_ACCESS_SECRET=your_access_secret
JWT_REFRESH_SECRET=your_refresh_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
RAZORPAY_KEY_ID=your_razorpay_key_id
RAZORPAY_KEY_SECRET=your_razorpay_key_secret
RAZORPAY_WEBHOOK_SECRET=your_webhook_secret
NODE_ENV=development- Run the server:
npm run devThe server will start on the configured port.
This project includes the core backend modules for:
- authentication and authorization
- library configuration
- floor and seat management
- booking workflow
- payment integration
- QR generation and attendance handling
- role-based access for owners, students, and guards
I focused on building a practical, scalable backend architecture that can support real-world library operations.
Possible next steps for the project:
- add advanced analytics and charts
- strengthen admin reporting
- add automated notifications and reminders
- flexible booking for any number of days
Libro is a strong example of a business-oriented backend project that combines multiple real-world features into one system. It is suitable for showcasing full-stack development skills, API design, database modeling, authentication, and industry-style workflow implementation.