01
The problem
A timetable can look complete while still double-booking a lecturer, placing a class in an unsuitable laboratory, or creating a clash between compulsory courses and electives. The challenge is to coordinate shared resources across academic schools, not simply place subject names into a grid.
02
How it works
- Model schools, cohorts, elective groups, staff qualifications, rooms, and weekly availability.
- Build an adjacency-list conflict graph for shared learners and instructors. Choose the most constrained meeting first using Minimum Remaining Values, with graph degree as a tie-breaker.
- Use backtracking with early rejection to find valid assignments. Rank candidates by time preferences, home-school rooms, and balanced daily loads.
- Run an independent validation pass over the generated timetable rather than relying on the solver alone.
03
Beyond generation
The Streamlit application supports temporary leave, eligible substitute suggestions, timetable views by cohort or instructor, resource reports, and calendar export. Its hosted demonstration starts with a fictional university, so visitors can explore it without uploading real student or staff information.
04
Scope and trade-offs
The included example schedules 24 recurring meetings across two schools. The repository documents its sample benchmark, but that is not a general performance guarantee: dense conflict graphs and restricted availability make the search harder. The demonstration is not evidence of deployment at a real university.
Explore the work
Source code, documentation, and reproducibility notes on GitHub
