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.