Inspiration

Course scheduling is always an extremely stressful time, especially for first-years like us. There is a lot that goes into selecting a course. What is the difficulty of the course? When is it offered? How many professors teach the course? How are the professors that teach the course? Do other students recommend the course? Students often have to compile information from several different sources just to find out enough information about a single course, and this can be extremely exhausting considering that students often take 5-6 courses every semester. Since we four have personally experienced this stress, and with Spring 2020 course scheduling coming up, we wanted to take the initiative to create a program that neatly compiles and presents all of this information for every course offered at Georgia Tech.

What it does

User is able to search for any course at Georgia Tech. Within mere seconds of submitting, the user is able to view an arrangement of course information that isn't available at any other source, including the best professors, data on average GPAs and score distributions of each professor's class, a comprehensive and accurate measure of difficulty for each course, and an objective evaluation of professors. The overall difficulty rating (score) for a course is out of 100 (100 being the most challenging), and the professor score/rating is out of 100 as well (100 being the best). The sentiment rating is between 0 (most comments are negative) and 1 (most comments are positive. A rating of -1 means there are not enough comments to analyze.

How we built it

  • All of our back-end “pure programming” was done in Python.

  • We used TensorFlow to create a neural-network from scratch and perform sentiment analysis. We trained the Neural Network with over 11,000 ratemyprofessor reviews for University of Illinois Professors. According to our test set, our neural network had 83% accuracy in determining the true sentiment of a written review. We used tokenization and word embeddings to convert reviews into data which we could use to build the Neural Network.

  • We used Django to build the project in the form of a web application so we could quickly integrate our backend (which is in Python) and our frontend (which is in HTML/CSS/JS).

  • We used various python libraries in order to pull information stored in HTML of other websites to gather publically available information on courses and professors that has never before been consolidated. We parsed through the information and cleaned it so it could be used to calculate professor and class ratings live and build the neural network. This allows the site to be automatically up to date with the newest information on courses and professors.

  • We used this data to evaluate the overall difficulty of a course.

  • We wanted to make the UI simple and pleasing for the user because similar websites had bad UIs that were confusing and hard to use. We used Adobe XD to create a very elegant UI from scratch, which we coded in HTML, CSS, and JS.

  • We hosted our web application of Microsoft Azure so that it can be accessed from anyone on the internet.

Challenges we ran into

  • Our biggest challenge was putting our webapp onto Azure. It is a very big application and it was not optimized, so at first it took us a long time to view the course information. We looked at some tutorials and optimized the web application to the best of our abilities.

  • It was very challenging to create the sentiment analysis neural network. None of us had any experience in working with Tensorflow or machine learning. We learned about how to build our own model from scratch, and train it on our own original data. It took longer than expected to train because we had so much data, but we learned how to save the model once it trained so we would only have to train it once.

  • It was challenging to scrape data from RateMyProfessor.com due to the large number of advertisements that slowed down the website. However we learned that we could load the html upfront so the user would not experience any delays.

Accomplishments that we're proud of

  • We are proud of building a Neural Network almost from scratch, especially considering none of us had any experience.

  • We are proud of our elegant UI.

  • We are proud that we created a functioning Django webapp which does everything we wanted it to do.

  • We are proud that we were able to host it on Azure.

  • We are proud that we created something which is helpful to us and that hopefully will help our peers when they register for classes.

What's next for Coursebook

We want to make our webapp faster, and then start getting a userbase of Georgia Tech students who use it to plan their schedules.

Built With

Share this project:

Updates