We wanted something like amazon where you could get personalized suggestions for classes. Think the "items you may be interested in bar."
What it does
You can sign up for the messenger bot on facebook. Once it's live, it will ask you about your classes and how you rate them. Then you can ask for a recommendation and get some classes our machine learning thought you'd be interested in.
How I built it
We used the python flask framwork to build the front end facebook messenger bot. We connected a database to the program to store the classes and features of classes and to store user's ratings of the class. We used heroku to host both the database and the webserver. On the back end, we used a regression technique to make our class predictions.
Challenges I ran into
Figuring out how to link a database to our program and how to host that database on heroku was extremely challenging. We also struggled to have the chatbot hold a longer conversation, as the framework means the chatbot by default forgets everything but the current message. Once we designed the framework to work around that, we found our chatbot was sending repetitive messages, though we never figured out why. On the machine learning side, we struggled to determine how accurate our model was from our small dataset of classes.
Accomplishments that I'm proud of
Our chatbot can actually reply and sometimes is pretty consistent. Also the databases are updated consistently.
What I learned
We learned a ton about sql and web hosting. The details of web hosting and how we could deploy our code was surprisingly challenging, so it was gratifying to see it work.
What's next for ClassRate
The machine learning side still needs to be linked to the front end. In addition, we need more data about other classes for more accurate predictions. After that, we'd like to find a way to have users be able to add classes to our system and be able to track enjoyment over the course of a semester for better ratings.