When Daniel Rassiner contemplated what he wanted his custom Alexa skill to do, he decided to build a voice experience based on a popular internet topic – enter Daily Cutiemals. With the skill enabled, anyone can ask Alexa to send them an email every day featuring an image (cute, naturally) of their requested animal species from the Imgur library.
Bloc, an education company with mentor-led programs in software engineering and design, recently enhanced several of their curriculums by adding an Alexa Project module. In this new module, Daniel and other students like him, learn how to build compelling voice experiences with the Alexa Skills Kit and thereby create Alexa skills they can add to their portfolios.
With an understanding of Alexa and an idea for his custom skill, Daniel’s first order of business was to determine whether Alexa could interact properly with the Imgur API. To do this Daniel tested using static data. The test was successful, so he delved into interaction with the AWS DynamoDB and using ES6 fetches/promises to find the appropriate picture.
Because Alexa uses JSON files to organize its communications, creating the intent schema for the skill enabled Rassiner to beef up his Java expertise. He used the Custom Slots and Sample Utterances capabilities to give users a list of animals and adjectives to choose from.
The Alexa Skills Kit provides several samples of custom skills written in Node.js (JavaScript) and Java. You can deploy and test these samples as AWS Lambda functions on AWS Lambda (a service offering by Amazon Web Services). Daniel used the Amazon Score Keeper sample provided as a basis for reading and writing to a database using AWS DynamoDB, which is very easy to access from a Lambda function.
The getImage function accepts four parameters: an adjective, animal, response, and session. Once Alexa creates a query and fetches the link, the sendEmail function is called, passing in an image link, response, and session. To test, Daniel hardcoded his email to ensure he received the image. Later, he added a NoSQL Database (DynamoDB) to hold user emails using the Alexa skill.
As a student, he learned from each step in the process of building and certifying his Alexa skill, honing his own skills along the way.
Daniel detailed his experience building Daily Cutiemals in his post. In it he discusses his learnings about AWS Lambda, AWS DynamoDB, and Node.js.
To try Daily Cutiemals, enable it in the Alexa app and say, “Alexa, ask Daily Cutiemals to send me a cute cat picture.”
Share other innovative ways you’re using Alexa in your life. Tweet us @alexadevs with hashtag #AlexaDevStory.