How We Were Developing Amazon Echo Skills at Alexa Hackathon
Why We Chose to Develop Skills for Alexa
Amazon Echo is a dominating platform as a hub for a smart home that everyone likes. The primary purpose we put into the hackathon idea is making custom skills that work in real life, not just a great idea with an impressive presentation. We wanted teams to build technically great projects using Amazon Echo Skills with a real value.
Why We’ve Initiated the Hackathon
Let’s face it: programmers are very specific guys. Five days a week, they are programming at work and they are programming on weekends to have some rest by using new languages and technologies they like. So, we came to the Masters’ space on the weekend to have a rest while programming. That was our second purpose, which Amazon’s device satisfies 100%.
Desktop, web and mobile interfaces are common to us; voice control is something not that common. That is kind of an exciting experience: to write a program you can’t see.
Teams felt free to choose any instruments to develop Echo Skills. Per Amazon requirements, Node.js, Java, or Python can be used to code via Amazon Web Services Lambda. Alexa sends developer’s code user requests, and developer’s code can inspect the request, take any necessary actions (such as looking up information online) and then send back a response.
If the Echo skill is hosted as a web service, it must accept requests over HTTPS. In that case, Alexa sends requests to developer’s web service and developer’s service takes any necessary actions and sends back a response. In that case, any programming language can be used for development.
As for testing Alexa skills, Amazon developed its testing tool called Echosim.io.
A project rate consisted of two parts: rate by organizers and by hackathon participants.
Amazon Echo Skills That Have Been Developed:
1st Place for “Fire killer car”
Developed by Vitalii Bilyk, Maksym Popovych, and Vitalii Pitvalo
Guys looked farther than Alexa skills list; they fixed its main shortcomings: it doesn’t move and doesn’t see. So, they put the device on the wheels and implemented computer vision to recognize the objects. Alexa’s new complexion lets it follow the owner and always remain ready to help. This skill is especially useful for retired people. By following a person, Alexa can call the ambulance in case of an emergency and the device will even be able to open the door.
The possible variations of Alexa commands are realized via Interaction Model. Then, Amazon Lambda processes the command and sends a request via HTTPS on Raspberry PI. By using a Serial interface, Raspberry PI sends a command via USB to Arduino, which is basically run the command.
One more ability was given to Alexa: a laser pointer to ward off the cats. Also, a laser can identify and shoot the balloons.
2nd Place for Last News
Developed by Andrii Shchavinskyi
As you may know, Flash Briefing is one of the most popular Echo Dot skills used for news podcasting. Andriy thought, what if Alexa could not just read the news, but sort it out for the specific theme as well? So, he decided to build RSS-based skill for Alexa to sort the news. Also, you can save the news titles if you’d like to read the text later.
3rd Place for Vegan Police
Developed by Anastasia Mezentseva and Valentin Mezentsev
This Alexa skill is a guide to the world of healthy nutrition. It can be used as a handbook for a non-existent user or to measure proteins, fats, and carbohydrates for a signed person.
The skill in written in Python. Also, for creating responses to statements and questions, the guys used a Python micro-framework called Flask-Ask with ngrok.
You can ask Alexa to give you a daily summary about your ration leads, and if you exceed the limit, Alexa will tell you what the recommended macros to avoid that day. You can search for food to get to know its nutritional value and ask to add it to your nutrition list. It is worth noting that “Vegan Police” has no analogs in the Alexa skills list or even on the market.
Good luck in a gym!
Find my bro. Friends’ location search over the iPhone contact list
Developed by Anton Popovichenko, Dmytro Olefir, and Artem Mygovych
The team developed an iPhone app where you can create a simple profile and sync your contact list. A searching mechanism looks pretty simple: when you need to find a contact, you ask Alexa “Where is [name]?”, and if it’s registered on your list, Alexa looks for a push-notification token by sending a request on Lambda written in Node.js, which acts as a proxy. Then, Node.js sends a request to the backend written in Go. Go server sends a push notification that contains a request to location API to share the location info with a sender. Geotag contains the detailed address information. Then, a dialog window shows up on the user’s screen; he can approve or decline a request. Approved requests go to the GO server, then to Echo and as a result, the device tells us where a friend is.
It was challenging to link the phone to Amazon Echo, so the guys created a special voice function “Open Find my bro and identifier”. The device sends you a connection code to connect Alexa to your profile.
Developed by Oleg Pasko, Yuriy Tsymbroskyi, and Oleksandr Pasko
Basically, the skill is a tax secretary for the 2nd and 3d groups of physical entity-entrepreneurs with no VAT and hired workers. To use a skill, you should name yourself and specify your entrepreneur group when you register. You can use a voice command to share your incomes with the app; it does a calculation of how much taxes should be paid. You can check your earnings for the previous period. Also, you can make a request to get to know a date of the next tax payment.
A technic side performed by API, written in Ruby on Rails, with all the data stored in your own database.
Developed by Vlad Bolibruk, Oleksandr Kharchenko, and Yuriy Shcherbyna
Haplo skill was developed for a real project. By the voice command given to Alexa, you can reserve an appointment at an urgent clinic linked with Haplo. All you need is to specify are the first name, last name, a phone number, and a clinic, then the program sends the clinic ID to the API and books a spot.
Technical stack: Node.js, Lambda written in JS, the backend part is represented on Ruby on Rails. For the first deploy, the team used Typescript and Webpack. It turned out that the chosen stack doesn’t work with the Lambda because of one Webpack’s peculiarities: it integrates the data into one file, but Lambda doesn’t work the big files containing more than 2000 code lines. Then, the guys decided to deploy by import modules and load the project with a folder called “node_modules”. The project deploys with Ansible by 3 simple steps: search for the Archive.zip and delete it, create zip_package and send an update to the function via aws_lambda.
Developed by Oleksandr Fesenko
If you feel down or the weather outside doesn’t inspire you, the skill built by Oleksandr will make you feel better! You can ask your ego to say hello, ask for healing, help tell you a secret, and so on, and Alexa will respond to you in a flattering way. The skill is operated by AWS Lambda written in Node.js.
As you can tell, Amazon instruments make it easy to build skills for Alexa. Try to make your own! Who knows, maybe sometime it will get into one of Best Amazon Echo Skills charts.
Originally published at Master of Code Global.