Building an xAPI Enabled Alexa Skill
Almira Roldan, MBA, DBA
Turning AI Chaos Into Strategy & Measurable Results | CEO UnDesto AI | Certified Chief AI Officer | Certified AI Ethics & Governance Professional | AWS Partner | Keynote Speaker
I decided to start my year with a challenge, so I registered for Torrance Learning's xAPI Cohort, where you're tasked with creating an xAPI enabled project. My project idea was no small feat, to build an xAPI enabled Alexa Skill. Not just any Alexa Skill either but an interactive story. The cohort kicked off on Feb 1, 2018 and ran through April 19th. So I joined the slack group and formed my channel, #TeamAlexa. I began planning the project ou on my own, as I waited for others to join my team (you can read my first post here). Once I had teammates, we officially kicked off the project.
Planning
We began meeting via Google Hangouts on early Saturday mornings (7 am PST). During our meetings, we discussed the goals for the project and started fleshing out the tasks that we needed to complete.
We started using a Trello Board to break the project down into tasks. We were able to each pickup tasks from the board. This was helpful in keeping us on tasks.
Storyboarding
The first task we needed to tackle was the actual interactive story. We all brainstormed ideas but three teammates too on the task of creating the story. We used Google Docs to create the story because it allowed us to shared and collaborate in real-time. Samantha Lowe, Erika Nelsen, and Henry Ryng went through a few iterations of the story till we had something that seemed to work. They used Sayspring to test the voice user design out for the story to ensure it had a natural conversational flow.
Building the Alexa Skill
Bryan Wanzer and I took on the task of figuring out what we would need to transfer the story into an actual Alexa skill. But as with everything in life, priorities of our daily lives took over. Both Bryan and I worked independently trying to create the skill. We decided that we would use an Alexa Skill template so we wouldn't have to code from scratch.
We used Codeshare.io to share and collaborate on our code. However, when it came down to building the actual skill there was no way to do it collaboratively, so we each had to try our hand at building the skill. We used the Alexa Skill Console and Lamdba to create our skill - both of these are Amazon cloud technologies.
We followed the directions in the skills template which required that we create the story in Twine. Bryan took this task on. So I worked on trying to figure out how to get the skill enabled with xAPI.
Burning the Midnight Oil
Activity on our team had died down, I got super busy with work and speaking engagements. Bryan had his own fill of craziness. The final week of the project seemed to come around really fast and panic struck me when Allison one of the xAPI cohort organizers reached out to our team to ask when we would be ready to demo - she gave us two date option. I picked the 19th - the very last day.
We didn't have a working skill at this point and I was struggling with a cold. I figured I'd work on the rest of the project on my own and I was determined to get it working. Bryan must have spidey senses because on the 18th he reached out and shared that he was also working on the project. This gave me a great source of energy and hope. Together we began working through the kinks we were encountering in our Lambda functions. I gave Bryan vague instruction on how to install the xAPI wrapper. We both started getting a ton of errors. My head was too fuzzy to think straight. I broke my skill a ton of times, luckily Bryan's skill was working.
We shared code back and forth and slacked our way through. Bryan finally got the code to work sending statements to the LRS. I finally figured out what I had done to break my code - a rouge "}); " had slipped into my code.
We burnt the midnight oil working til almost midnight together. I felt like we were kids back in high school who had left a major project to the last minute (which we did).
Backup Plan
In what felt like a drama-filled adventure of a night, I had also managed to devise a backup plan. I was able to get xAPI working on a skill I had previously created - it was a simple skill with zero complexity. I was really hoping I wouldn't have to use it because it wasn't something the team had created and I felt that I'd be cheating them of all their work. At 11 pm, as Bryan and I worked through the kinks, I decided that even if we didn't get it working I would still demo the skill as is and share lessons learned and would not by no means use the backup plan.
A Working xAPI-enabled Alexa Skill
A little before midnight, we had a working skill. There were some kinks but the skill was working and we were sending statements to an LRS. As sick as I was feeling, once the skill was working I felt revitalized. I felt like I could conquer the WORLD, I could put on my sneakers and run a 1/2 marathon, I could do ANYTHING and EVERYTHING, I could cry! There is no better high than the feeling of great accomplishment.
We weren't awarded medals or noble prize and we weren't getting paid. The satisfaction came from seeing a project through to the end.
Get our code
..what's the use in creating a project that you don't share. I've shared all our files and provided instructions that you can use to create your own interactive Alexa Skill. Grab our file from my Team-Alexa github repository.
We are not submitting our skill to be published in the Alexa skills market, this project was just an exercise in seeing if we can do it. I have to do a little more research on Amazon's policies regarding tracking user data. But in the meantime, you can try out building your own skill using our code.
NOTE: If you are just thinking this is way to itimidating, no worries, check out the new Amazon Alexa Skill Blueprints that let's you create a skill for personal use on your own Alexa devices with no coding required.
Learning Strategist @ City of Seattle | Learning Technology, E-Learning Development, Hollywood Actor
6 年Nice job.
Head of Innovation - BSI Digital Learning
6 年I loved the description of tools you used to collaborate and design remotely, and also your experience of scrappy 'figuring stuff out' spurred on by a deadline- I think that is increasingly the way we're all working, and it's exciting and stressful at the same time! Great blog post - thank you for sharing.
Learning experience design | People focused Technology-Systems-Data through Human Centred Design
6 年Really felt the blood sweat and tears of your story Myra, nice share & insight into highs and lows of development & pushing through a challenge. It is a good feeling when you finally break through the murk and get something working! Full credit to you both for your persistence and awesome collaboration.
Human Performance Improvement (HPI)/Workplace Learning and Performance Improvement Professional
6 年This is interesting, and I only half-understand it. Thanks for the insights and the prompt to learn more. Well done and congrats.
Learning Solutions Manager at Aggreko
6 年I'm fascinated by this, thanks for sharing!