We all realized that we spend way to much time planning while on vacation instead of vacationing.

What it does

Ami creates a planner for what you should do while on vacation. There is a simple user-input form where you can enter the things you'd like to do, and how badly you'd like to do them. Ami takes this into account and will plan your day considering factors that you might not want to have to deal with, like hours places are open and how long it takes to get from one place to another.

How we built it

We used TwoSigma's Beaker Notebook. We used a HTML form for user input implementing Google's API to determine the locations and hours of the places users said they wanted to go see. Then, a Java cell takes in information about the locations, hours, and user preference to determine an optimal schedule.

Challenges we ran into

One of the strengths of the Beaker Notebook is its ability to use a variety of programming languages in the same notebook. However, that was also one of its core weaknesses. We initially had trouble getting the different programming languages we used to communicate with each other. Furthermore, we also ran into difficulties designing an algorithm that uses both user preferences and parameters about the various locations to create an optimal schedule. In the end, we settled on a greedy algorithm to accomplish this task.

Accomplishments that we're proud of

We were able to use the strengths of various different programming languages such as java for creating algorithms and python for handling the data from the google API to create a optimized product.

What we learned

We learned that using various languages together is a massive challenge.

What's next for Amicable

Create a UI, accept more more information about the locations such what times these locations are the least crowded and how other tourists rate these locations.

See a demo!

Try entering in some places you'd like to visit. Edit the sample events in the Java class to see how the scheduling algorithm works.

Built With

Share this project: