I am a big fan of AWS Web Services and Amazon Alexa! When I received an email about this challenge - I decided to participate and create something interesting and useful for other people.
There is a community website just for the residents of apartment complex where I currently live. People are actively using it for posting questions and announcements. I thought it would be a great idea to have something similar for Alexa. Also I really loved the idea to create a skill which can find and connect people who have Alexa devices and are located close to each other.
What it does
Hood Chat Skill automatically finds and socializes Alexa users located close to each other. Best for sharing news, asking questions, and posting announcements in the neighborhood.
How I built it
The project is fully hosted and built on AWS Web Services: Lambda, RDS, Elasticache, SES, CloudFront, Route 53, Cloud Watch.
For Lambda functions I used Java programming language. For RDS I used Aurora (MySQL) with replication. For Elasticache I used Redis cluster with replication.
I have 3 Lambda functions:
Alexa Skill Handler The Endpoint which receives and handles requests when a user interacts with the skill.
SES Event Handler Lambda function to receive, validate and process emails from users. This function adds new messages to the database.
Geo Service Lambda function to perform geographical operations.
Challenges I ran into
I faced 2 major problems during the development:
- Initially I've designed the skill in a way that users could post messages with voice command. It worked fine for the short messages. But for the real world case scenarios it did not. Alexa did not add punctuation to the messages and did not understand some words correctly primarily due to my accent. That's why I decided to switch to posting the messages by emails.
- Sometimes Alexa read messages incorrectly. For example she read phone numbers as big integers. That's why I parse messages and normalize SSML output.
Accomplishments that I'm proud of
- I really like the idea of how the skill finds other Alexa users in the area.
- The process of posting the messages via emails turned into a great idea. Users don't have to create any accounts, login somewhere or use apps. Everyone has an email and it makes it very easy to post messages.
- I really like the look and feel of the skill and website.
What I learned
This is my first Alexa Skill and I've learned a lot of things related to it: how to build the skills, create APL documents, test and debug lambda functions locally, work with the Amazon SES, work with geographical data, etc.
What's next for Hood Chat
I am planing to add the following features to the skill in the next releases:
- Adding messages to favorites
- Ability to report the messages
- Blocking other users
- Ability to vote for the messages ( thumbs up / down )
- Add a feed for the most popular messages
- Create a website for the users who prefer to post / read messages in a browser