Last November, I started a website called PlanetTerp, with the goal of creating a website that would help students at the University of Maryland — College Park make informed decisions. The website includes professor & TA reviews, a discussion board, grade data, and various tools.
The most common feedback I got about the website was that it was annoying to have to visit three, four, or even five different sites to create a schedule. Each website served a different purpose, and students relied on all of these websites to create their schedules. While PlanetTerp had professor/TA reviews and grade data, it did not have a scheduling feature.
This tool was designed to help students create their schedules. It allows students to input courses they want to take, and generates potential schedules for them. On the same page, students can view average professor ratings and grade data for the courses they're scheduling. Students can also click a button which will redirect them to Testudo's registration page with the registration form filled out, so they can register in just two clicks.
Another planned feature, which was not completed during this hackathon (but which will be completed in the feature), is the option for students to share their schedules with others in their GroupMe chats. Hopefully this will make it easier for students to find which courses their friends are taking, as well as to coordinate taking courses together.
Other planned features include searching for geneds that fit a student's schedule, and restricting certain times and days from a schedule.
The tool is not yet live, but once it is, it will be available on PlanetTerp.
To be clear, not all of PlanetTerp was created during this hackathon. Only this scheduling tool was created during Bitcamp.
How I built it
I built the tool using the Python web framework
Challenges I ran into
Creating an algorithm to generate all possible schedules. The algorithm still isn't perfect -- inputting many courses with many sections makes the tool take a long time to run. I'm working on improving the speed of generating schedules.