Ski Sloth Alexa skill
This skill provides the current conditions for the Loppet Foundation cross-country ski trails in Minneapolis, MN.
Devpost Amazon Alexa Skills Challenge
This project is my entry to the Devpost Alexa Multimodal Hackathon
Inspiration
Why Ski Sloth?
People in Minneapolis, Minnesota love to embrace winter. #boldnorth! Unfortunately, the effects of climate change can have a negative impact on our winter activities. This year, snowfall has been minimal. However, even if there is no snow in a skier's backyard, we are lucky enough to have snow-making operations at local parks, making it possible to cross-country ski.
What it does
This Alexa skill makes it easy to get the latest conditions for the snow-making trails at Theodore Wirth Park in Minneapolis, MN. In addition, this skill uses Alexa Presentation Language to display the current trail webcam image, allowing the latest trail conditions to be shown on many different devices.
How I built it
My skill is hosted on AWS Lambda. I use the Axios javascript library to scrape the Minneapolis Park and Rec website to get the trail conditions. Then I use the Cheerio javascript library to parse out the trail details, including the date of the last status update. I let the user indicate the level of detail they'd like and also use Alexa Presentation Language to display the current trail webcam image to users who have an Alexa device with a screen.
Challenges I ran into
This is my first Alexa skill so I didn't have any experience with building a skill or using AWS Lambda. Plus, my main programming language is Python, so I hadn't used JavaScript or Node before, but I wanted to use them to take advantage of the Alexa APL support. I had to quickly get up to speed on all of this by watching a ton of tutorial videos and then doing a bunch of troubleshooting.
Accomplishments that I am proud of
My goal was to create a working Alexa skill and, after many weeks of work, I am proud to have met that goal.
What I learned
I learned how to create a Node project and how to use libraries to scrape a webpage. I learned to use the jQuery structure to parse out content from a webpage. I also learned how to create all the components of an Alexa skill and the basics of using Alexa Presentation Language to provide an image to a user's device. Finally, I learned how to test my code using Lambda tests and logging output to the console.
What is next for the project
I will continue to monitor the skill and am planning an option to allow the user to pick different trail locations.
Github repo: https://github.com/jzeph/ski-sloth-alexa-skill
YouTube walkthrough: https://youtu.be/fUJPJYfwNNo
Alexa Skill: https://www.amazon.com/jzeph-ski-sloth/dp/B07MBGTXG4
Log in or sign up for Devpost to join the conversation.