The SASTRA Timetable Generation System is an initiative to automate the complex process of class scheduling at SASTRA DEEMED TO BE UNIVERSITY. This system leverages modern technologies to create conflict-free timetables, reducing manual work and enhancing efficiency.
Although technologically advanced, SASTRA DEEMED UNIVERSITY has always managed timetables manually - at least until July 2025. This project addresses that gap by automating the timetable generation process using a well-structured database and an intelligent scheduling algorithm.
- Automated Timetable Generation: Dynamically generates schedules without time or venue clashes.
- Conflict Resolution: Ensures no overlap of classes for faculty or students.
- Flexible Design: Supports elective courses, multiple sections, and variable room capacities.
- User-Friendly Interface: Built with a responsive front end for easy interaction.
- Real-Time Updates: Updates schedules instantly upon data changes.
- Backend: Flask (Python)
- Frontend: HTML, CSS, JavaScript
- Database: MySQL
- Visualization: Mermaid.js for ER diagram
At SASTRA DEEMED UNIVERSITY, the pursuit of academic excellence has always been supported by innovation. This project aligns with that legacy by removing the burden of manual timetable calculation.
The goal is simple: Let people focus on teaching and learning β not on figuring out class schedules.
Through precise rule enforcement, the system prevents common scheduling issues, like:
- Double-booked rooms or faculties
- Elective clashes across sections
- Invalid class-to-stream/course mappings
The manual timetabling process at SASTRA DEEMED UNIVERSITY, while functional, is far from straightforward. It demands significant coordination among the faculties. While managed effectively within tight deadlines, this hands-on approach is both time-consuming and error-prone.
-
High Complexity: Scheduling isn't just about assigning classes to time slots. It requires meticulous coordination across departments, especially when faculty teach students from multiple programs. The complexity escalates when handling shared electives and cross-department course combinations.
-
Error-Prone & Time-Consuming: Given the scale and variety of constraints (like room availability, elective preferences, and faculty clashes), even the most careful manual planning is vulnerable to mistakes, which may lead to last-minute changes, scheduling conflicts, or overbooked classrooms.
-
Classrooms Shortages: One of the most persistent issues is the lack of explicitly assigned classrooms during electives or overlapping sessions. Students often find themselves searching for an available room which causes confusion, stress, and a loss of valuable class time.
-
Elective Allocation Complexity: Students select electives, but managing various combinations can be overwhelming. When students choose different pairings of courses, allocating classrooms without overlaps becomes a puzzle.
These struggles highlight a critical need for change. This project aims to ease these burdens by automating the process, creating a fair and efficient schedule that benefits everyone. Please, letβs work together to make this a reality!
The database is meticulously designed with normalized tables, optimized queries, and robust constraints. Key components include:
- Campus, Schools, Departments, classes for organizing physical locations
- Sections, Streams, Programmes, Courses for curriculum management
- Faculty, Students for mapping human and infrastructure resources
Triggers, stored procedures, and functions enforce data integrity, while the system architecture supports easy scalability.
- Python (>= 3.11)
- MySQL Client (Optional)
- Clone the Repository:
git clone https://github.com/SASTRA-Projects/Timetable/
cd Timetable- 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.
- Timetable Optimization: Prioritize faculties preferences and students convenience.
- Room & Resource Management: Track lab availability, equipment, etc.
- Notifications & Alerts: Notify users of timetable updates via email or app.
- Analytics & Reports: Visualize schedule patterns, faculty workloads, etc.
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! Whether you want to report an issue, submit a pull request, or enhance the existing features, weβd love to have you on board.
See the CONTRIBUTING.md file for detailed information.
Please follow the Code of Conduct to ensure a collaborative and respectful environment.
- Fork the Repository: Click the βForkβ button on the SASTRA-Projects/Timetable 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!