Web-based Library Seating Arrangement System

Job ID: 39076857

Budget: ₹1,500 – ₹12,500 INR

Project Requirement Document: Library Seating Arrangement System

Project Overview:

This project aims to develop a web-based seating arrangement system for a library. The system should allow the owner or staff to manage seat reservations for different branches with unique seating layouts. The interface should provide an interactive seating chart where seats can be assigned and released dynamically.

Features & Functional Requirements:

1. Branch Selection:

A dropdown menu to select the branch.

A "Go" button to load the respective seating chart.

Different branches may have different seating layouts and seat counts.
Owners should have access to create new branches or delete old ones as per requirements.

2. Interactive Seating Chart:

A visual representation of seat numbers in a structured format (as per each branch's layout).

Clicking on any seat should open a context menu with two options:

Assign Seat
Release Seat

3. Seat Assignment Functionality:

When clicking "Assign Seat," a pop-up form should appear with three fields:

Shift Selection: Dropdown with options:

Morning (M)
Evening (E)
Both (B)

Subscriber Name: Input field for entering the subscriber's name.
Registered Phone Number: Input field for entering the subscriber's phone number.
Assign Button: Submits the form and marks the seat accordingly.

4. Seat representation after assignment:

Morning Shift (M): Upper half of the box turns yellow with 'M' at the top right corner.
Evening Shift (E): Lower half of the box turns yellow with 'E' at the bottom right corner.
Both Shifts (B): Entire box turns yellow with 'B' at the top right corner.

5. Seat Release Functionality:

Clicking "Release Seat" should provide options:

If a seat is assigned for both shifts, a selection should appear:

Release Morning Shift (M)
Release Evening Shift (E)
Release Both

Releasing a shift should update the box accordingly:

If only one shift is released, the respective half should turn white while the other remains yellow.
If both shifts are released, the box should turn completely white, making it available for new reservations.

6. Seat Reservation Report:

A "View Seat Reservation" button should be available on the page.

Clicking the button should generate and open a report displaying:

Seat Number
Subscriber Name
Registered Phone Number
Assigned Shift

Developer can use Google Sheets for this functionality if possible, allowing real-time updates and easy access.

7. Auto-Update from Google Sheets:

If any data is removed manually from Google Sheets, the respective seat(s) should become available for new reservations.

8. Seat & Branch Management by Owner:

The owner should have access to add or delete seats as per onsite requirements.
Owners can also create new branches or delete old ones when needed.

9. Live Display of Seating Chart:

A live seating chart should be available to display on a TV screen at the library branch.
This will help new subscribers see which seats are available in real time.

10. Technical Requirements:

Frontend: HTML, CSS, JavaScript (React.js preferred)
Backend: Node.js with Express.js (or Django/Flask if using Python)
Database: MySQL or Firebase for storing seat assignments
Excel Handling: Google Sheets integration for exporting and updating seat reservations

11. User Roles:

Library Owner/Admin: Full access to assign/release seats, manage branches, and add/delete seats.
Staff: Can assign and release seats but cannot modify system settings.

12. Expected Outcome:

A fully functional seating arrangement system with an intuitive UI.
Real-time updates on seat reservations and releases.
Ability to generate reports and dynamically update seat availability.
Live display of seat availability on a TV screen for easy reference.