๐ Library Seat Reservation System
Project Scope & Functional Specification
1. ๐ Project Overview
The Library Seat Reservation System is a web-based application that allows registered members to reserve seats in a library on a daily basis.
- Total seats: 100 (fixed)
- Each member can reserve only 1 seat per day
- Reservations reset automatically every day
- Admin manages members, reservations, and system controls
2. ๐ฏ Objectives
- Eliminate manual seat allocation
- Provide real-time seat availability
- Ensure fair usage (1 seat per member per day)
- Build a scalable system for future features like payments and announcements
3. ๐ฅ User Roles
3.1 Admin
- Full control over system
- Can manage users, seats, and reservations
3.2 Member (User)
- Can log in and reserve seats
- Can view availability and their booking
4. ๐ Authentication System
Member Login
- Login using:
- Phone Number
- 4-digit Unique Code (generated by admin)
Admin Login
- Email + Password (secure authentication)
5. ๐ค Member Management (Admin)
Admin can:
- Add new member:
- Name
- Phone Number
- System generates:
- Unique 4-digit code (auto-generated, unique)
Constraints:
- Phone number must be unique
- Unique code must not repeat
6. ๐ช Seat Reservation System
Seat Setup
- Total seats: 100
- Fixed numbering: 1โ100
Member Dashboard
Displays:
- Seat grid or list:
- Example:
- Booked: 1, 5, 7
- Available: 2, 3, 4, 6
- Example:
Booking Rules
- A member can:
- Reserve only 1 seat per day
- Cannot reserve multiple seats
- Once reserved:
- Seat becomes unavailable for others
- No admin approval required
Reservation Flow
- User logs in
- Views available seats
- Selects a seat
- Clicks “Reserve”
- Seat is marked as Booked
Daily Reset Logic
- At end of each day (midnight):
- All reservations are cleared
- All seats become available again
7. โ๏ธ Admin Controls (Reservations)
Admin can:
- โ Cancel reservation
- Frees the seat
- ๐ Transfer seat
- Example: Move booking from seat 5 โ seat 10
8. ๐ซ Anti-Misuse Rules
Restriction:
- One booking per user per day
Device Restriction (Important Note)
Your idea:
“Each user can only book from their device”
โ ๏ธ Practical limitation:
- Device-based restriction is not fully reliable (users can switch browsers/devices)
Recommended Approach:
- Enforce:
- 1 booking per user account per day (primary rule)
- Optional:
- Track IP/device fingerprint (soft restriction, not strict)
9. ๐ณ Future Feature: Membership Fees
Objective:
Allow only paid users to access booking system
Features:
- Add member payment status:
- Active / Expired
- Define subscription period (monthly)
Rules:
- Only active members can:
- Log in
- Reserve seats
10. ๐ข Future Feature: Announcements
Admin:
- Can post announcements
Members:
- View announcements on dashboard
Examples:
- “Library closed tomorrow”
- “New timing update”
11. ๐งฑ Suggested System Architecture
Frontend:
- React / Next.js (recommended)
- Responsive UI (mobile + desktop)
Backend:
- Node.js (Express) OR Django OR Laravel
Database:
- PostgreSQL / MySQL
12. ๐๏ธ Database Design (Basic Schema)
Users Table
- id
- name
- phone
- unique_code
- status (active/inactive)
- created_at
Seats Table
- id (1โ100)
- seat_number
Reservations Table
- id
- user_id
- seat_id
- reservation_date
- status (active/cancelled)
Payments Table (Future)
- id
- user_id
- start_date
- end_date
- status
Announcements Table (Future)
- id
- title
- message
- created_at
13. ๐ง Core Business Rules
- One user โ One seat per day
- Seat cannot be double-booked
- Reservations reset daily
- Only active members can book (future)
- Admin has override control
14. ๐ฅ๏ธ UI/UX Screens
Member Side
- Login Page
- Dashboard:
- Seat availability
- Reserve button
- My booking
- Announcements (future)
Admin Side
- Login
- Member management
- Seat overview
- Reservation controls
- Announcements panel (future)
15. ๐ API Endpoints (Example)
Auth
- POST
/login
Members
- POST
/members - GET
/members
Seats
- GET
/seats
Reservations
- POST
/reserve - POST
/cancel - POST
/transfer
16. โฐ Scheduler / Cron Jobs
- Daily reset job:
- Runs at 12:00 AM
- Deletes or expires all reservations
17. ๐ Future Enhancements
- QR code entry system
- Seat history tracking
- Notifications (SMS/WhatsApp)
- Mobile app version
- Waiting list system
18. โ ๏ธ Risks & Considerations
- Device restriction is not foolproof
- Need strong validation to prevent duplicate booking
- Concurrency handling (2 users booking same seat simultaneously)
19. โ Success Criteria
- Members can easily reserve seats
- No double bookings
- System resets reliably every day
- Admin has full control
20. ๐ฆ MVP Scope (Phase 1)
Include:
โ Member login
โ Seat booking
โ Admin panel
โ Daily reset
โ One seat per user
Exclude (Phase 2):
โ Payments
โ Announcements
โ Advanced restrictions
If you want, I can next:
- Turn this into a UI wireframe (screen-by-screen)
- Or generate a database ER diagram
- Or give you a ready backend API code structure (Node.js / Django)
