The problem
UNC Computer Science schedules roughly 60 courses across 40 instructors, 20 meeting patterns, and 30 classrooms while accounting for availability, capacity, and conflict constraints.
Approach
Our team represented course offerings, instructor availability, room capacity, meeting patterns, and scheduling preferences as an integer linear programming problem in Python. We used SQLite for application data and built a React interface for entering constraints and reviewing generated schedules.
My work
I contributed to the optimization workflow and the full-stack application, including Python, SQLite, React, HTML, and CSS. The project also used GitHub Actions for automated deployment and a CI/CD development workflow.
Outcome
Developed a web-based scheduling system that models department constraints and generates optimized schedules while allowing administrators to review the results.