Inspiration

The COVID-19 pandemic has shut down the tourism industry. As a result, many vacation plans were ruined and hours of researching itineraries wasted. Our hope is to help travelers generate quick and effective travel itineraries to strengthen the local tourism industry when the time is right.

What it does

Velo automatically generates travel itineraries given a time-frame and attractions that the traveler wants to visit. The order of the schedule is determined in our back-end by an algorithm we designed.

Here's a more in-depth description of our algorithm:

Starting with a set of locations, machine learning techniques are utilized to cluster them by proximity. These clusters are used to find living accommodations fitting the user’s specifications while ensuring reduced travel times to and from destinations. Afterward, the individual plans for each day are selected through a Greedy Algorithm, commonly used in optimization problems. We have adapted this technique in conjunction with spatial projections to calculate a well-balanced schedule. Finally, we introduce graph theory techniques combined with dynamic programming optimization as our solution to a classic variation of the Travelling Salesman Problem to optimize travel.

How we built it

We built our application using a Flask framework that connected our HTML, CSS, JS frontend with our Python processing done in the backend.

Challenges we ran into

While creating velo, we overcame many challenges. We used languages, libraries, and APIs which we were unfamiliar with. To be successful, we studied tutorials beforehand and overcame individual coding challenges during the hackathon. Some of these challenges we ran into include creating an idea everyone was satisfied with, creating an intelligent algorithm, and creating a beautiful UI.

When discussing the implementation we faced challenges such as working around the limitations of known algorithms. Additionally, when looking for possible APIs we found that there was data that we wouldn't have access to that we wanted to use in our computations. Through brainstorming, we came up with innovative workarounds to provide the functionality we were aiming for.

Accomplishments that we're proud of

We are extremely proud of our scheduling algorithm that uses machine learning, dynamic programming, graph theory and greedy algorithms. The final algorithm works exceptionally well generating efficient and cost effective schedules to make life easier for all vacation goers.

What we learned

velo taught us how to efficiently pass data between the frontend and backend of our program. We learned how to work with the google maps API and more advanced customization techniques in CSS. The creation of the clustering algorithm also gave us a good opportunity to use common computer-science techniques such as dynamic programming, graph theory, greedy algorithms and machine learning to solve a larger computational task

What's next for velo

In the future, Velo will incorporate many new features to provide users with the most relaxing experience possible such as budgets, bookings, and databases. To create an even more experienced and personal vacation, the budget of the user will become one of the factors we use to generate the perfect vacation. Secondly, Velo will implement bookings, such as flights and hotels. Once the user confirms their vacation plan, Velo will be able to automatically book flights and hotels for the user creating a quick and easy 3 step process to plan a vacation. Finally, in the backend, Velo will have a database to store needed information such as hotels and their prices to improve query time and to rely less on outside sources.

Share this project:

Updates