Inspiration
I've got the idea of building an Alexa App in the 2018 re-invent attending a "How to monetize an Alexa skill" conference. I wanted to apply gamification techniques in a simple game as a quiz game.
What it does
Simple 5 questions per round trivia game. Every question has a certain number of points depending on the difficulty. The difficulty of the questions is set automatically through an AWS background process that uses the question's guesses/misses, repetitions and answer times. Depending on the user's misses or guesses the user is rated at a certain level. If a user is a rookie easier questions are sent. If a user is a master and guesses them all more difficult questions are sent. Every 5 questions the ranking and points of the user are shown to maximize engagement.
How I built it
I've used a node.js lambda with bespoken as a test framework. I've used SNS and dynamodb for question processing and rating. I've used dynamodb for session persistence. I've implemented APL screens and touch events. I've used the gameon API for Alexa skills. I've as well built a website on top of this API: https://trivialmaster.me/
Challenges I ran into
Gameon API is not so mature and response times are low. APL views from the Gameon API are not changeable.
I've had to build a way to structure the files within the lambda as soon as the skill's code was growing in complexity. The basic
ISP products were difficult to test. I've had to write some snippets to clone products through the ASK Cli.
I've implemented the skill for: en-US, es-US, es-MX, es-ES and I was forced to implement ISP for all of them at the same time. When I did that my skill was blocked on "in review" because the ISP feature is not available in Spain yet. No idea when it's going to be available so my ISP features are not able to be tested on production until that date.
Accomplishments that I'm proud of
Being able to implement all these features by myself in my free time after a full-time job.
What I learned
Lots of technologies: Alexa API, SSML, APL, AWS (x-ray, SNS, cloud watch, dynamodb). How to structure a bigger than one file lambda. How to test a node.js applications. How to test a voice application.
What's next for Trivial Master: Spanish Trivia
Implement more user-engaging features as more types of combos.
Built With
- amazon-dynamodb
- gameon
- javascript
- lambda
- node.js
Log in or sign up for Devpost to join the conversation.