Planning enrollment semester to semester involves juggling multiple tabs to look at the grade distribution and ratings for teachers as, graduation requirements, and the class schedule, so we built something to try to consolidate it all in one place. The name MyHackPortal is a play off the enrollment system NC State uses, MyPack Portal

What it does

It parses the entire history of classes at NC State. That includes what professors taught which classes during which times during any semester. This data is fed into Algolia automatically via backend scripts that can be updated literally with the press of a button. Search functionality barely works, yet it's still an improvement over MyPack Portal.

How I built it

We handcoded the entire site and used JQuery and Bootstrap CSS to help with animation. Additionally, we wrote a lot of Python to parse through all possible queries to the NC State course catalog. We started with trying to build the minimal viable product, but 2 team members had to leave early last night. We didn't have a working search bar until 10:00am and thus didn't have time to figure out the Rate My Professor API or parse the other giant database NC State has. We used a combination of partner programming and spent a large amount of time talking about design and goals and where we will take this, as it is already a useful application for enrollment. At the last second we pushed out python+php backend to a virtual machine on Google Cloud Platform where our site is now hosted.

Challenges I ran into

  • getting the f*****g navbar to fit
  • the data had to be flattened so that Algolia could properly select classes
  • in order to automate refreshing the database, we had to use inefficient boolean logic to "trick" the api into doing what we wanted, that is deleting everything.
  • the websites we queried and parsed from had multiple mistakes such as classes having no available sections, non-integer credit hours, and some departments didn't even have any classes. We actually made our code display when it comes across these inconsistencies during updates.
  • random brackets and quotation marks appeared in descriptions that had to be carefully escaped away
  • the search bar wouldn't load templates for multiple hours, and so we wrote our own code that does what the api was supposed to do.
  • wouldn't accept a credit card or paypal, so we registered the domain name as instead of, which is still available.

Accomplishments that I'm proud of

  • getting the f*****g navbar to fit
  • making the whole thing mobile friendly
  • begin able to parse the entire class history of state
  • progress bars while waiting for data to parse (~45 min)

What I learned

  • front end will take longer than expected
  • back end will take longer than expected
  • divide and conquer is good sometimes and peer coding is good at other times

What's next for MyHackPortal

  • integration with wolftech gradient to show grades distribution for each class section
  • add support for more schools
  • show rate my professor ratings when hovering over professors and provide links to both these ratings and the wolftech gradient distributions
  • comparison view of 2 teachers for the same class
  • ability to have users and store class schedules
  • sort view so you can pick a class at a certain time or date with checkboxes

Built With

Share this project: