My son enjoys learning about flags and he also enjoys asking Alexa to play songs or asking simple questions. That lead me to I think, that it could be a nice idea to allow him to ask Alexa to describe flags of different countries. The name came later inspired by The Big Bang Theory show.
What it does
You can ask Alexa what is the flag of a country or you can start a trivia game where Alexa describes a flag and gives two options of which country that is.
How I built it
First I had to think about the interaction model. I've started with trivia only, but eventually figured out that asking about a specific country flag is a good feature. I wanted to integrate Google AppEngine with Alexa. I knew I could do it with their compute nodes, but I wanted to use the scalable AppEngine standard environments. For that I had to change the flask-ask to use the libraries that are provided inside the standard environment.
Challenges I ran into
First challenge was where do I get the descriptions of the flags. I saw that wikipedia has the descriptions for all the flags, so I used these. Then I saw that my interaction model is not very engaging. You ask for something and you don't know that you can continue the conversation. In order to solve it, I've added hints about what the next request can be. For example: To start a game say: "Start the game".
Accomplishments that I'm proud of
I like the interaction model very much. I've added some randomization to responses so they will feel a bit more natural. I was able to make my son play with this skill and he likes it very much.
What I learned
I learned what frameworks work for Alexa, the deployment and certification process of new skills.
What's next for Flags fun
I'm thinking about adding more quiz options, like open ended quiz, or provide more than 2 options. Another thing I was thinking is adding popularity of flags, so that not popular flags can have higher or lower priority when making a selection for the quiz. Also I have ability to add country name aliases (US, USA, United States, etc), but these fields need to be populated and I was thinking how I can automate this.