CalCentral is great for coming up with a class schedule, but I know that it can be awfully overwhelming, especially when it gives you ~1000 possible schedules, and you're expected to somehow pick "the best one." I've always wanted something that could potentially choose a schedule for me, based on my preferences. In this hack, I decided that I would prioritize laziness: what is the schedule that involves the least walking?

What it does

You can create student objects and call the method .get_best_schedule(), which prints out the optimal schedule for that student, and with the returned list, you can call .print_schedule_day() to see what your Monday, Tuesday, etc. will look like. Uses the Google Distance API to calculate estimated time between lecture halls and between a home address and lecture halls.

How I built it

Challenges I ran into

I've never worked with the Google Maps API before, so that was pretty cool. There were numerous bugs along the way, some of which still persist. I was hoping to implement a user interface or at least have it so that you could change a file rather than having to open the Python interpreter, but there was sadly not enough time. I also had never worked with writing to a .json before.

Accomplishments that I'm proud of

What I learned

I learned how to read/write to a .json, and how to use an API.

What's next for What's my best schedule?

Share this project: