We've always found searching for classes on the official systems a cumbersome process. Anyone who used solar to organize their class listings - you know what we're talking about.
What it does
SeaCourses is an alternative course search system for Stony Brook University. SeaCourses allows students to quickly search for classes with multiple filters, as well as see what their schedule might look like based on their selected classes. In addition, there is a very early pre-release alpha version of an automatic schedule builder - all one has to do is to write down which classes (s)he wants to take, and the system will automatically generate schedules for him or her. This system can of course be easily expanded to work with other schools' course systems, as long as it is given the correct data.
How I built it
Challenges I ran into
There was no official Stony Brook course information API - we had to scrape a PDF document, which was a nightmare. Building a schedule builder was also difficult, with organizing cells and actually generating an image (through thoughtfully colored HTML divs).
Accomplishments that I'm proud of
I'm quite proud of the python script I wrote to parse through the text document - I'm still not entirely sure how it works, but it's quite cool to see it in action, and actually work (deliver good, accurate information) for over 95% of the text document. I'm also pretty proud of building a rudimentary automatic schedule builder with the team - we hashed it together in the last few hours of the hackathon.
What I learned
Scraping a PDF is a nightmare. I'm also most productive at around 3AM. In all honesty though, I learned a lot of Python and the Flask framework the past few days.
What's next for SeaCourses
Finish the automated schedule builder. Add prereq/coreq support (it's in the database, just not supported yet). Add major/minor requirements - eventually, we hope to have a system where all you need to do is write down your major/minor and what classes you took, and the system can automatically suggest some schedules for you to keep you on track.