BYU-I Class Scheduler
Inspiration
Registering for classes that fit together is a real life struggle that we've all experienced. We wanted to come up with a practical solution for the problem. We feel that this product offers a real solution that can save students time and help them focus on their education instead of their registration.
What It Does
BYU-I Class Scheduler takes your course codes, desired semester, and desired blocks as inputs, then generates an optimal schedule in which all your classes fit together!
How We Built It
We started by splitting into a scraping team and a constraint problem team. This eventually evolved into a backend and frontend team. We made use of several existing tools for scraping and CSP. Additionally, we developed a backend using Flask and a frontend using Svelte. We then hosted the backend on AWS and the frontend on GitHub Pages.
Challenges We Faced
- Working with new technologies
- There was no existing API we could use to search course offerings
- Constraint satisfaction problems
- Web scraping required reverse engineering to figure out BYU-I's registration site
- Difficulty hosting with AWS
- The problem was more complex than we originally anticipated
What We Learned
- How to adapt to new technologies
- How to work on a multipart project as a team
What’s Next for BYU-I Class Scheduler
- The ability to generate multiple different schedules
- Allowing users to add more preferences for their schedule (e.g., whether or not they want to take online classes and times when they don't want to have classes)
Built With
- amazon-web-services
- beautiful-soup
- flask
- gh-pages
- google-or-tools
- python
- svelte
Log in or sign up for Devpost to join the conversation.