Amazon Echo is a smart speaker that many of us keep in our house for basic commands. Checking the weather, setting reminders, maybe playing a bit of music. With a well-designed application, we set out to design a feature that would allow Alexa to also become our greatest teacher and mentor. Now it's not a useless speaker collecting dust anymore.
What it does
With only your voice, you can learn from a variety of subjects offered at prestigious four-year universities. "Alexa, ask Teacher to teach me about computer security" will bring up audible university lectures about computer security. You are able to pause/play lectures and stop the functionality by saying "Alexa stop."
How we built it
We utilized a python flask backend that allowed us to have an endpoint for the Alexa skill. Our flask server pulled information from our FireBase backend, which had all of the video titles and links that were web scraped from MIT OCW's website. We also called the Twilio API via our Flask backend in order to send the user relevant course materials.
Finally, we leveraged the Amazon AWS server in order to implement the lambda function backend for the skill.
Challenges we ran into
One of the primary challenges we ran into concerns the vagueness of your request. When a user asks a request that is too vague for our Alexa skill, such as "Teach me math" we would have to come up with a necessary response that did not inhibit the user experience. We decided to have the backend give suggestions to the top 3 most relevant courses.
MIT OpenCourseWare, our source of podcasts, does not have a comprehensive enough course selection for the general use of our application.
What we learned
We learned how to effectively time-manage considering we only had 36 hours to complete this project. One difficult thing we also had to learn was also how to effectively delegate responsibilities to appropriate team members. Some of our team members learned how to use call the Firebase backend and utilize the Twilio API.
What's next for TeachMe
In the future, we're planning to extend this to many podcast sources and even YouTube, rather than using MIT OCW as our sole source for podcast and lecture slide material.
We're also planning to implement a recommender system in the future to recommend related podcasts. In addition, we look to provide functionality for users to navigate through a series of related podcasts, much like playlist navigation.