GitHub Repo


The Amazon Echo and it's Alexa assistant are designed to provide hands-free access to information and internet-connected tools. There are several skills (applications) created by third parties that add their tooling to the Echo, but there is nothing on the market currently that allows text messaging.

We have limited experience with several areas in this project and felt that we could learn new technologies around the Amazon Alexa Skills Kit, AWS Lambda products, and creating a single-sign-on system to interact with the device.

What it does

Text Alexa allows you to upload your contacts to our online service via an Android or iOS app, connects your online TextAlexa account to your personal Amazon device via single-sign-on, and allows you to send text messages to your contacts uploaded previously.

How we built it

The project is split into several portions:

  • Mobile Applications
  • Node.js API
  • AWS Lambda Project

Mobile Applications

The Android and iOS applications are built using the ionic framework. This allows us to leverage the javascript skills we acquired from the API below to create a cross-platform mobile app with a single codebase.

Node.js API

This API includes the logic to authenticate a user with their Amazon Echo device. It also handles the account creation and authentication needed to upload their contacts. This web service uses Bcrypt to encrypt passwords along with sqlite for quick and easy data storage.

AWS Lambda Project

AWS Lambda provides an interface that allows us to upload our NodeJS code for our Custom Alexa Skill, install the new skill on an Amazon Echo device, and run the code in response to the designated skill wake word

Built With: DigitalOcean, Nginx, Alexa Skills Kit

Challenges we ran into

The majority of our challenges centered around the Amazon Alexa Skills Kit. Their documentation is lacking to say the least. Getting the device to recognize certain speech patterns and implement a specific type of implicit key authentication was a fun challenge to tackle.

We also had our first digital ocean droplet hacked :/

Accomplishments that we're proud of

We were able to finish a feature-complete project in just 2 days while also learning several new technologies! Getting AWS Lambda functions to work was also exciting due to the cost savings of this type of development and use cases with scalable computing.

What we learned

AWS documentation needs some work. Don't enable root access to a machine, even for 30 seconds.

What's next for

Upgrade the DBMS from sqlite to MariaDB or Postgres to allow for phonetic text search for miss-spellings coming from the Amazon device.

Include encryption for uploaded phone numbers.

Add web-admin section to allow users to edit their uploaded contacts.

+ 3 more
Share this project: