The SASTRA Hall Plan Generation System automates the creation of exam hall plans and seating arrangements at SASTRA DEEMED TO BE UNIVERSITY, building on top of SASTRA Timetable Generation project to reduce manual effort, minimize errors, and ensure fairness. This system replaces the manual process of hall allocation and seating chart creation with an intelligent, automated solution.
- Automated Seating Arrangement: Dynamically generates optimized seating plans based on student enrollment and hall capacity.
- Conflict-Free Allocation: Implements rules to prevent students from the same class or department from being seated adjacently.
- Customizable Rules Engine: Supports various constraints like spacing requirements, block allocation for different departments, and varying room capacities.
- Invigilator Assignment: Module for assigning faculty invigilators to halls, ensuring proper supervision.
- Exportable Reports: Generates printable attendance sheets and seating charts for notice boards and invigilators in form of Excel sheets.
- User-Friendly Interface: Built with a responsive front end for easy data entry and plan generation.
- Backend: Flask (Python)
- Frontend: HTML, CSS, JavaScript
- Database: MySQL
- Visualization: Mermaid.js for ER diagram
At SASTRA DEEMED UNIVERSITY, our focus on academic integrity is paramount. This project supports that mission by removing the administrative burden of manual hall plan creation, allowing staff to focus on conducting examinations smoothly.
Our goal is simple: Let administrators focus on conducting fair exams — not on drawing seating charts.
The system is designed to prevent common issues that arise during manual planning, such as:
- Accidental seating of friends or classmates together.
- Inefficient use of examination hall space.
- Last-minute confusion regarding student allocation.
- Errors in attendance sheets.
Creating an examination hall plan manually is a high-stakes, pressure-filled task. It requires immense attention to detail and coordination, and even small mistakes can lead to significant problems on the day of the exam.
- High Risk of Errors: Manually assigning seats for thousands of students is prone to errors, where one mistake can cause widespread confusion and delays.
- Time-Consuming and Repetitive: The process must be repeated for each exam session, taking up valuable time and diverting staff from other tasks.
- Inefficient Space Utilization: Without an algorithmic approach, halls may be under or overcrowded, leading to wasted space or the need for additional rooms.
- Integrity Concerns: Manual seating plans struggle to enforce rules, like maintaining proper distance between students or separating those from the same course, raising the risk of academic dishonesty.
This project addresses these issues by introducing automation, consistency, and reliability to the examination process.
HallPlan/ ← Main project (exam-specific logic)
├── Timetable/ ← Submodule (core scheduling engine)
│ ├── app.py ← Flask entry point (for Timetable/)
│ ├── database.py ← Database logic (models, schemas)
│ ├── fetch_date.py ← API endpoints
│ └── … ← Other core files
├── app.py ← Flask entry point (for HallPlan/)
├── generate_hallplan.py ← Extensions and exam-specific logic
└── README.md ← Overview and setup instructions
The Timetable repository contains the database logic, which HallPlan extends for its specific purpose.
- Python (>= 3.11)
- MySQL Client (Optional)
- Clone the Repository (with Submodules): Because this project includes the Timetable repository inside it, you must use a special clone command to download both at the same time.
git clone --recurse-submodules https://github.com/SASTRA-Projects/HallPlan/
cd HallPlanNote: If you forgot to use --recurse-submodules, you can run git submodule update --init --recursive inside the HallPlan directory to fix it.
- If Timetable logic needed to be modified: Go inside Timetable sub-folder using,
cd Timetableor, see Timetable/README.md
- Set Up a Virtual Environment:
-
Linux/macOS
python3 -m venv venv source venv/bin/activate -
Windows (CMD)
python -m venv venv venv\Scripts\activate
-
Windows (PowerShell)
python -m venv venv .\venv\Scripts\Activate.ps1
- Install Dependencies:
pip install -r requirements.txt-
Configure MySQL Database: Create a
.envfile for your DB credentials. -
Run the Application:
-
In Developer Mode
python app.py
-
In production level
- Windows:
waitress-serve --host=localhost --port=5000 app:app
- Linux/macOS:
gunicorn app:app --bind 0.0.0.0:5000
- Access the Web Interface: Open http://localhost:5000 in your browser.
A high-level system diagram showing module interaction will be added shortly.
- Visual Hall Designer: An interface to visually design the layout of benches and seats in each examination hall.
- Advanced Analytics: Provide reports on hall utilization, invigilator duty hours, and exam session statistics.
This project is licensed under the Apache License 2.0. See the LICENSE file for detailed information.
Additional attribution details can be found in the NOTICE file.
Contributions are welcome! We'd love your help to improve this system.
Please follow our Code of Conduct to maintain a collaborative and respectful environment.
- Fork the Repository: Click the "Fork" button on the SASTRA-Projects/HallPlan GitHub page.
- Create a Branch:
git checkout -b branch-name- Commit Your Changes:
git commit -m "Add your feature description"- Push to Your Branch:
git push origin branch-name- Submit a Pull Request: Navigate to the Pull Requests tab on GitHub and submit your PR.
Happy Coding 🚀! Let’s build something awesome together!
If you have any questions or run into issues, please feel free to open an issue on GitHub!