Inspiration
We are inspired by our personal experience of being unable to cover all the major attractions in the city in the required time.
What it does
Attractions is a alexa skill made for knowing about any point of interest in the city. Apart from knowing, it can help you make the best optimized trip for a day in a city when you are short in time. This is made as we see lot of travellers facing difficulties while deciding what all places should he/she should visit in the city and how. It provides following functionalities :-
- Provides the top points of interest/attractions by the city(You can ask Alexa : "Alexa ask Attractions to find the best places in New York to visit." and then Alexa would reply something like : "")
- Provides the brief information about the Point of Interest with telephone number and its address. It also includes text summarization of the user reviews about the Point of interest to give a crisp and valuable place guide.
- Automatically plans a trip based on the best places in the city that can be covered in a single day. The algorithm finds the order of places to travel. It is calculated using the variation of Travelling Salesman Problem. It considers following factors while finding the best optimized route while following user creiterias/restrictions:- i. time at which users wants to start the trip/end the trip. ii. day on which users wants to do the trip. iii. maximum place of interests covered in the given bound of time. iv. time at which places are opened and closed. v. rating of the places vi. a careful consideration has been given to balance between the rating of the place of interest and the feasibility to cover the place of interest. vii. currently, we take the 5 best places of interest in the So, this algorithm is doing much more than the distance and time optimization which is normally done by most trip planner.
How we built it
We built it using Alexa Skill tutorial which includes implementing the skill in node.js and deploying it to AWS Lambda. We employed google places api for multiple purposes in the alexa skill :-
- Get the list of best places by city.
- Get the place details from placeid.
- Get the placeid from place name.
- Get the distance matrix for the set of places.
- Get the open and close timings of different places. We also used 'sum' npm package for text summarization.
Challenges we ran into
Working with node.js was the main challenges we faced since it was the first we were working on this language. It took most of our time to figure out the asynchronous callback routines of the node.js. Also, we faced a bit difficulty in developing our version of Travelling Salesman's problem with bit restrictions/ constraints/modifications.
Accomplishments that we're proud of
We were able to develop the trip planner skill on Alexa and we are very much excited about that. We were also happy to see our version of Travelling Salesman's problem with some restrictions/ constraints working successfully on a live real time application.
What we learned
Of all the things, we find learning node.js as the biggest achievement. Moreover, it was a good experience to learn about implementing an algorithm in a real life application especially when it is an NP-Complete problem (Travelling Salesman's Problem).
What's next for Attractions-Alexa-Skill
Currently, we are providing trip plan with the top 5 best places of interest in our skill. We will be working to customize these 5 places of interest as per user's selection. We have currently restricted our skill to a single day trip only, however, we are planning to extend this to multiple day trips and across different cities too.
Log in or sign up for Devpost to join the conversation.