Inspiration

We live in a society where grades could really influence your well-being. Course Ranker is here to guide you for a more pleasant university life. We have serveral factors that decide which course is relatively better than the other one including average grades students in the past have achieved, the ratings professors have been receiving in the ratemyprofessor.com, and because averages can be inaccurate, it also considers the distribution of people who have received A- or higher, etc, etc. In addition, not everyone is a early bird, so given two classes with the exact same factors, if the other one is offered later in the day compared to the one in the morning, it also receives higher rank! Given the time constraint, this is a minimum viable product, but we hope to keep developing to help UBC students have better undergraduate life and hope to expand globally helping university students around the world with the aid of scalable Cockroach DB and Azure cloud service.

What it does

UBC offers more than 100 courses and we students must take at least 30 courses in order to get our degree. And some of us, wish to succeed academically hence seek a very long time to carefully plan out our degree wishing to achieve the highest mark as possible. While UBC does not officially offer a guidance as to take which courses so you can be successful academically, we, CourseRank, are here to lessen your burden!

How we built it

Angular 1 front-end Node js backend with Cockroach DB and Microsoft Azure For front end: AngularJS1

For web-scraping: CasperJS PhantomJS

Update deployed to heroku for backend.

GET https://mighty-reaches-35971.herokuapp.com/api/courses GET https://mighty-reaches-35971.herokuapp.com/api/courseinfo GET https://mighty-reaches-35971.herokuapp.com/api/professors GET https://mighty-reaches-35971.herokuapp.com/api/course/1000

Challenges we ran into

In the case of scalability, we wanted to deploy multiple servers across the globe and still maintain synchronization between servers. We were able to do so using Cockroach DB and Microsoft Azure.

Accomplishments that we're proud of

CSV file parsing to SQL queries / Data visualization / web scraping under dynamic circumstances

What we learned

git merge hell, scraping tool casperjs is overrated. nodejs is the fastest to set up these environments

What's next for UBC Course Ranker

Escape from minimal viable product and make it actually available for UBC community and incorporate UBC degree navigator with it so students can plan and save their plan.

Share this project:
×

Updates