What it does
The Busy Hands skill allows kids (or adults) to follow along to 6 fun science projects. If the user has a device with a screen then you can see each step of the experiment in action before you try, if not then Alexa will explain each step. You can ask what projects are available, get equipment information or listen to your statistics. It also provides science facts on the project of your choice or just get one at random.
Busy Hands has had a complete upgrade:
- Behind the scenes the code has been updated to use version 2 of the ASK SDK.
- A 6th project has been added 'Pierce a Balloon with a Kebab Stick'
- Statistics. Each time you complete a project this information is saved so you can find out what projects you have completed and how many times you have completed a project.
- Using the Alexa Presentation Language screens have been added to make it easier to read the equipment list and statistic information. More importantly videos have been added to make it easier to follow along to each instruction of the chosen project.
My original inspiration to develop Busy Hands were the kids themselves. After working with younger students on science and engineering projects it's amazing to see how engaged, interested and how much they really enjoy getting involved. I will continue to improve the skill to make it a more fun learning experience with the aim to inspire an interest in STEM.
How I built it
I used AWS Lambda and the Alexa Skills Kit Developer Console to build the skill using the command line. Cloudwatch was used for debugging.
Challenges I ran into
After upgrading to v2 of the SDK the biggest problem was saving the session attributes within dynamodb after the skill was closed. After trying a few different methods I got to grips with Interceptors and implemented a response interceptor to store all my session attributes in a table after each execution of a request handler.
Accomplishments that I'm proud of
A lot of work went into the video guides for each of the science projects including research, developing and editing the videos as well as integrating them into the code using APL. During this process feedback from the previous version of the Busy Hands skill was taken on board to ensure an improvement in the user experience and make the skill more fun and engaging.
What I learned
Originally Busy Hands was developed around the recipe template, after upgrading to v2 I had to modify my code to make it cleaner and more optimised to work with the Alexa Presentation Language (APL). This gave me a much deeper understanding of node.js.
What's next for Busy Hands
I have started to include a request interceptor to make it easier to setup localisation so the next step would be to expand the skill so it provides science project support for multiple languages. I'm also in the process of planning quiz games at the end of each science experiment to make them more engaging. I would also like to implement a feature so everyone can share their progress amongst friends to spark a little competition
Obviously, lots more science projects for kids to get their hands dirty.