I am an avid traveler, having visited 42 countries and 43 states. Since the global pandemic, I have stayed at home for the longest stretch in many years. Many of my friends have ventured out on vacation and instead of flights, they are opting for road trips for social distancing. I believe the great American road trip is making a comeback. I created this skill to help you find your next vacation destination in the lower 48 states.
My goal was to ask a few fun questions to get a sense of the user's vacation preferences and then provide a holiday destination within a reasonable driving distance.
What it does
This skill asks the user 4 vacation preference questions from preferred cuisine to vacation goals and then selects the closest destination to the user’s departure city.
There are several variations of each question, but the gist of the questions are:
- If you could describe your ideal vacation in one word, would it be adventure, culture, or luxury?
- For vacation food, do you expect just enough food for sustenance, sample the local cuisine, or fine wine and dining?
- Is your idea of interacting with the outdoors, sitting on the beach, climbing a mountain, or opening the window in your ride share?
- To make your vacation feel truly special, would your goals be to make memories, kick back or maximize sightseeing?
The algorithm returns a suggested vacation destination and the number of driving miles. Echo Show users can make their selections on the touchscreen and Alexa will provide a photo of the suggested vacation location.
After the skill has made a recommendation, the user can ask to change any of the preferences. For example, the user could respond to the recommendation by saying, "What if I change my dining preference to local cuisine?" Then another recommendation would be made.
This skill is for people living in the lower 48 US states seeking their next vacation destination.
How I built it
I started by writing four preference questions based on my travel experiences. I wanted the questions to be fun and show a little attitude to put the user at ease. This skill is written for people who don't already have a specific vacation destination in mind.
I built the Road Trip skill in 3 phases.
- Phase 1: Base Skill with Audio Only (Submitted on September 2, 2020 and approved on September 4, 2020)
- Phase 2: Added APL Visual screens (Submitted and approved on September 6, 2020)
- Phase 3: Added functionality for the user to change any of their answers to further utilize Alexa Conversations. (Submitted & approved on September 13, 2020)
There are 4 preference questions and departure city question. Each question has 3 multiple choice answers for a total of 81 unique possibilities. But I didn’t stop there. I created a database of 3 answers for each of the 81 possibilities ranging from east coast to west coast for a total of 243 possibilities. Using the Google Distance API, my lambda function calculates the distance between your departure city and the 3 suggested cities. If any of the suggested cities = user's departure city, that city is not returned. From there, the algorithm returns the closest destination to your origination location. I utilized Google Places Photo API to return a photo of the suggested vacation destination for Echo Show users. For the APL visual menus I created for the 4 preference questions, I spent significant efforts to select, crop, and code photos that represented the essence of my intended skill design. It was infinitely easier to visually map APL audio and visual responses in Alexa Conversations; the code practically wrote itself!
Challenges I ran into
In the beginning, I couldn’t get Alexa Conversations to work! I kept hacking the tutorials until I finally figured it out. Next, I brainstormed ideas for my contest entry. I coded 4 other concepts before finally deciding to go with Road Trip for my contest entry. I found a few strange temporary anomalies while working on the skill. For example, on Friday, September 11, 2020, no matter which city I entered (typed into the simulator screen, or spoken to my Amazon Echo device) as my departure city, Alexa interpreted the city name as "Welcome," and would map all potential destinations from the city of "Welcome." Fortunately, the next day, the "Welcome," issue resolved itself, without any code changes on my end.
Accomplishments that I'm proud of
I'm proud of learning Alexa Conversations, APL for Audio and Visual and many other enhancements from the Alexa Live 2020 event in July. As a side note, I also learned how to send an email from an Alexa Skill using Simple Email Service (SES) and enabling permissions in Alexa. I'm proud of the APL screens I created and integrating sounds from the Alexa sound library into my skill with APL for Audio. I was jumping for joy when I finally got the destination city's photo to display on the Echo Show screen.
What I learned
I learned so much in this Hackathon thanks to the Twitch streams, Slack channel, tutorials, code samples, and documentation. I video conferenced with my colleagues in the travel and hospitality industry to understand the needs that Alexa could fill. I learned the main concepts of Alexa Conversations first and then beefed up on APL Visual, APL Audio, S3 buckets, Alexa hosted Node.js. I “re-learned” how to create APL screens to work with Alexa Conversations.
What's next for Road Trip
There are so many possibilities for Road Trip. Due to the limited time, this is only a phase 1 of Road Trip. For phase 2, I could add more destinations and points of interest along the route.