Before, I had only created Alexa skills with very simple user interactions. When I came across Alexa Conversations (AC), the idea was interesting as a way to explore what is possible with more natural and complex dialogs. I started with the concept of constructing search queries using AC and, combined with my time playing word games, Word Match developed.
What it does
The Word Match skill is a helper for word games with missing letters, like crosswords and hangman.
- Specify how long the word is
- Fill in the letters you know and any blanks
- Then Word Match will generate the matching list of standard English words
How I built it
Having discovered the Alexa Skills Challenge in August and once the idea of Word Match had formed, I planned out the tasks required to create a minimum viable product within the time available.
One of the early choices was whether to follow the examples and use Node.js or to use Python which I'm more familiar with. After trying both, I chose Python in the end and because of this, writing the backend code was relatively easy. The majority of time and testing was used for determining the best structure for the interaction model. This basic prototype was then fleshed out by importing a list of real words and extending to more word lengths. After submitting the skill for certification, there were some bits and pieces to round off the entry but overall the frontend development process took the longest.
Challenges I ran into
This was my first time developing with a beta feature so this had its associated challenges. While the documentation and tutorials were useful, they didn't cover all the use cases I might need for Word Match. First, I needed to understand what was possible with AC by testing many variants of the given examples. This then led to designing workarounds to fit the current limitations. Finally, the process of getting a functioning skill involved going through many trial-and-error iterations of my skill.
Accomplishments that I'm proud of
In the end, I managed to create a new skill within a short timeframe: the whole process from inception to development to marketing materials.
What I learned
Participating in this competition has been a rewarding learning experience for me. In my opinion, the best way to learn something new is to actually put it into practice. In this way, creating Word Match was an opportunity to study both AC and features of the ASK that I hadn't used before. The competition helped to provide extra motivation to fit this learning regime into my spare time.
What's next for Word Match
Since the competition period is limited, I still have further ideas to improve Word Match that I didn't have time to implement.
The first priority is to improve the ease and speed for users to enter their search terms. For example, a "rest are blank" functionality so that the user only needs to fill in the letters they know. Also, with the developments in multiple-value slots, Word Match could later allow multiple letter input in a single utterance.
Another area for future work would be additional features for Word Match. It could extend support to longer words (current support is for 2-8 letters). To get users relevant results quicker, the matched words could be ranked by how commonly used they are. Lastly, as well as offering the spelling of matched words, the skill could also offer dictionary definitions. This would allow Word Match to increase its educational value.