Inspiration
As McGill students, building our class schedules is time-consuming and tedious. Class times, curriculum requirements, and professors were just some of the many factors we needed to consider when course planning. We often end up signing up for a random class section, judging the prof's teaching quality, and switching sections accordingly. Currently, the McGill Visual Schedule Builder is the only option for schedule generation, however, it has its limitations. We wanted to create a more powerful way for students to optimize their schedules effortlessly.
What it does
Our Schedule Builder creates the optimal student schedule for the highest quality professors. The user inputs their courses, and the program collects statistics from Rate My Professor to optimize the best professors accounting for quality and difficulty ratings. The Schedule Builder iterates through all the possible combinations of class sections to display the optimal student schedule.
How we built it
We used a Python backend and React frontend. The python backend makes use of Selenium and Chrome's WebDriver to load the course section list from minerva, find all the info about each section, then search the instructors on rate my professor.
Challenges we ran into
It was difficult to read the course data from minerva, since it's all in an HTML table element with different numbers of columns in each row, and no easy classes or IDs to search for.
Accomplishments that we're proud of
We're proud of our user-friendly and aesthetic design and that we made a working program in a short period of time!
What we learned
We learned a lot of Python and React.
What's next for Schedule Builder
We want to add more options for schedule building, such as optimizing for class location or length. Right now, we are tailored to McGill students, but we want to expand to other schools in the future.
Log in or sign up for Devpost to join the conversation.