We all want to learn new skills, but it's so hard to keep ourselves motivated; we get distracted by messages flying into our phone 24/7. So we thought why not use those messages for the better? Instead of messages distracting us from learning, this facebook messenger bot will message you throughout the day to distract you from life's distractions and keep you learning.
What it does
The messenger bot pulls in data from online trivia APIs or questions that the user has uploaded through the iOS app to send users questions and to check whether their answers are correct.
How we built it
The messenger app is a django app on a heroku server that communicates via Facebook's messenger APIs with the user. The iOS app was written in Swift using Cocoa Touch and communicates with the heroku server via an API that we defined which allows the creation of question sets.
Challenges we ran into
We struggled to figure out how to use Azure and instead used django+heroku which was a more familiar environment. We also struggled to find enough time to explore the use of celery to send scheduled messages. Quizlet, which we thought about integrating with, has stopped providing API keys as of December 2018, and Memrise, another similar service, has no official API. Because of this, we had to implement our own iOS app to create problem sets.
Accomplishments that we're proud of
We're proud of learning new technologies and making a product that we can imagine ourselves actually using on a day-to-day basis. Most of all, we're proud of the fun we had lol
What we learned
We learned how to actually host something on a server, how to use django to set up webhooks for the Facebook API and to create our own API, and how to make an iOS app that can communicate with web APIs we'd defined.
What's next for QuizBot
We want to refine the iOS app so that we can edit things that we uploaded as well as just uploading new sets of questions, and want to refine the messenger app to send scheduled messages throughout the day giving users new facts related to what they're currently learning. Finally, we'd like to add a web interface for editing questions so that we can edit questions from a laptop as well.