I've been active on Reddit for a few years and it's a great source of knowledge. The subreddit /r/explainlikeimfive is an interesting question and answer community where any question is welcome.

My mom is a music teacher for a K-8 school. Her stories of crazy questions kids have asked definitely inspired me to publish this skill.

What it does

Explain bot will take a question and topic and search /r/explainlikeimfive for the most relevant questions. The user then selects which question he or she would like to hear and explain bot gets the top comment from that post. The question and answer will also show up as a simple card in the Alexa app for easy reading.

How I built it

I wrote a full technical guide on my blog. I also wrote a shorter summary here.

The skill is written in Python using the Flask-Ask framework. There's a back end that searches Reddit and pulls responses and there's a front end that handles interacting with the user. It's hosted on an EC2 instance and connected to the internet using a Caddy reverse proxy which automates Let's Encrypt certificates.

Challenges I ran into

Reddit does not have the best search algorithm so a lot of development was on getting relevant results from a request.

It is also hard to get Alexa to correctly guess everything when input is so open ended. There were a lot of tweaks to get good recognition.

What I learned

I discovered a new way to host Alexa skills on AWS. I feel this set of tools is great for skills that require constant updating or back end processes.

Share this project: