Problem
Scheduling classes in a large university is complex and time‑consuming. Workday provides a base schedule, but it doesn’t account for professor preferences, course conflicts, or departmental constraints. As a result, our client must spend months manually adjusting schedules to meet these requirements.
Our Solution
We developed a desktop and web application, built with Electron, that automates schedule generation using genetic algorithms. The system imports course and teaching assignment data from Excel, allows users to enter preferences and conflicts, and produces an optimized schedule that can be visualized, edited, and saved back to a master Excel file. This drastically reduces the effort and time needed to finalize course schedules.
Editing Instructor Preferences

Users can select the preferences level for preferences to teach back-to-back (B2B), back-to-back-to-back (B2B2B), teaching on the same days, and then the preference for each time slot (unselected means there is no penalty to be scheduled at that time, yellow means a soft constraint, red means a hard constraint).
Editing Course Conflicts

Each course card has a drop-down to add conflicts (courses you don't want scheduled at the same time). You can select any Computer Science Course or some Non-CS courses like MATH 165, where you don't want them to conflict with freshman-level CS classes. You can also set whether the conflict is soft or hard.
Editing Lab Schedules

By default, lab sections are not scheduled with our scheduler because they have much different time slots and are more constrained by room scheduling, which is out of our scope. This page allows you to create tables representing lab rooms, and you can select which lab sections you want scheduled at specific times.
Schedule Visualizer

The schedule visualization tools let you see, graphically, what the schedule looks like for different courses or instructors. The picture above shows how you can view multiple courses at once to see if there are any conflicts. Below is a tool that shows the common times available between instructors based on when they teach sections or their hard constraints.

Loading/Saving to Archive

Another tool we have is the ability to archive different schedules. If you have a schedule from a few semesters ago that is archived, you can reload it and then work with it again.
Generating Schedules

Before generating the schedule it is important to set up the schedule generator correctly. There are numerous options such as preferring old times, increasing the generation precision by increasing the number of generations or the schedules per generation. It is also possible to filter out some of the courses and generate only a subset. Each schedule is given a ranking, the closer to 1 the ranking is the better.
Schedule Analysis

The summary page gives an overview of the schedules rating and stats. It also shows what professors and courses have soft conflicts due to what time slots a section is scheduled at.