Originally built with the noble goal of helping the elderly navigate with a low barrier to entry (no apps) and serving those without internet connections across the world by providing them the service of Google Maps, we soon discovered other practical benefits for using dated technology. On a recent trip to Italy, after arriving at the airport, I discovered I did not have international data, but I did still have access to SMS. With the goal of making it more practical for frequent travelers, we also added a translation feature so that any traveler can make it to their hotel without an Internet connection.
What it does
There are 3 features currently built in: -Directions (Google Maps API), command format is _ directions from [start location] to [end location] _, supports driving, walking, bicycling, and transit -Translate (Google Translate API), command format is _ translate [text] to [language] _, supports all the languages Google Translate supports and detects base language -Weather (OpenWeatherMap), command format is _ weather in [city] _, returns both Fahrenheit and Celsius.
How we built it
We hooked up Twilio's API (on the free trial) to a Node.js server. We then pulled data from Google Cloud and OpenWeatherMap and leveraged NLP to create a natural conversation flow. We also made a supporting website from HTML/CSS/JQuery to assist in adding users to the trial account.
Challenges we ran into
Twilio API for free trial users is inconsistent with response times. We also planned on adding images from Google Map's static maps API with polylines (imagine Google Maps visually) using MMS. Unfortunately, the format of the polylines caused Twilio's API to recognize these urls as invalid and encoding them would cause Google's API to be unable to recognize them. We also tried several alternatives to Twilio to no success because we were trying to avoid the Free Trial message. We also realized that only verified numbers could message the service (since we had a free trial account), so we created a second service to use Twilio's API to have a workaround (user's could submit their number and self-authenticate). Unfortunately, that portion of Twilio's API was non-functional at the time.
Accomplishments that we're proud of
We kept separate conversations tracks for keeping track of directions data separately for multiple users. Overall, the project is very functional and surprisingly cost us no money. The project is both maintainable ($0 cost, as long as directions API usage is kept reasonable) over a long term period and has practical uses that has a wide market reach.
What we learned
This was our first time working with Twilio and Google Cloud API. Though Twilio was difficult to use at times, we also learned that Twilio was the easiest to use relative to its competitors.
What's next for SMSBuddy
After adding weather support, we started thinking of how else we could improve the service. Should we split it into multiple numbers for each individual service? We realized the convenience of having an all in one was worth managing the different options for commands. We also realized that there was a wealth of information we could use and would be helpful to those without internet. One such example for travelling would be a service where you could send an MMS of a landmark and it would use machine learning to tell you about what you were looking at, a personal tour guide feature of sorts. For the elderly, we also considered adding the Uber API to be able to call a car from SMS only.