Inspiration

Since everyone on our team is from a different country, traveling around the world has been a big part of our lives, and we all know about the troubles that come along with arranging a trip. That's why we decided to create a travel application that simplifies the process of booking flights by displaying a graph of flight prices over time. This presents the most important information in the a presentable and concise way. Millions of people everyday have to go through the hassle that comes along with booking a trip - and we want to make the process as user-friendly and manageable as possible.

What it does

Travelyze is a travel application that can analyze your trip. It combines the power of Amadeus’ Extensive Flight Search with the elegance of the Google Maps API to provide you with important information about flight prices, tourist attractions, and popular landmarks, all on one easy-to-use website.To use Travelyze, first enter the location of a place you would like to visit. Next, enter the location you are currently at, and Travelyze will generate a Google Map image that shows you the start and end locations of your trip. After you confirm your choices, Travelyze will use Plotly’s graph API to create a user-friendly, interactive graph that shows you how airline prices will fluctuate throughout the year.

How we built it

Travelyze uses a variety of scripting languages combined with HTML and CSS. Everything is based in one HTML file which uses JavaScript to make different elements appear and disappear based on which stage the user is at.
When the site is first opened, a random image is chosen from our picture database and displayed in the background. The search bar’s placeholder matches the location at which the background picture was taken. The user can use the buttons on either side of the screen to cycle through Travlyze’s photo collection.

The search bar itself uses the Google Maps API to give suggestions for locations around the world. Once the user has entered their start and end locations, Travelyze uses the Google Maps Static Map API to generate a picture of the trip containing two markers for the start and end.

After confirming their selections, the user can see a chart of the flight prices for flights from their start location to their end location over the next year. This graph is made with a combination of Amadeus’ Extensive Flight Search API and Plotly’s Graph API.

Finally, we started creating a feature that will display the top 3 landmarks of a given city, as well as 9 Instagram photos taken in that city. This application uses Amadeus and YapQ’s API to find the top landmarks, Wikipedia descriptions, and Instagram photos.

Challenges we ran into

There were quite a few challenges that we ran into:

Since our platform utilizes various different languages like Javascript, PHP, and Python, it was difficult to send and transfer information from one platform to the other. Since we needed to parse specific information from complicated JSON files in Python, transferring that information from a Python script in PHP to Javascript for the main Javascript to use was a complicated and inefficient way to transfer data. We still have some trouble transferring the Instagram links from the Python script to the main webpage program.
When we were using the Plotly API to graph out prices for tickets, there was always a bug that shows the exact same graph for different trips around the world. This was because the shell script command that we used to run the python commands was for unix/linux commands. We suspect that this is the issue because the windows computers would not work with the graph. But this might be fixable by applying a screening process according to the OS that is used to run the website. If this was up on the hosting website, the hosting computer's OS will be recognized.

Accomplishments that we're proud of

We incorporated 3 APIs in this project was a lot to take on, but certainly worth it. The first and large API that we used is Amadeus's flight price extensive search and nearby airport finder which was written in python. The php in our website had to communicate between javascript, php and python in order to make this work. The second API that we used is the google maps api which was written in javascript. This allowed us to use the static map that we display in our website and the autocomplete search feature that google provides. Google Maps API also allowed us to get the latitude and the longitude for the locations we choose which is later used in Amadeus's API. The third API that we used was plot.ly which was a third party API that allowed us to make statistical visual data easily with simple CSV files. We used Amadeus's API to gather the data, created the CSV file and used plot.ly to create new data each iteration.
The greatest accomplishment would be combining all of these APIs even though they were asynchronous and also in different languages. Coming up with ways to bypass the language barrier was one of the most challenging but satisfying thing to finish.

What we learned

We learned quite a lot from this experience. A lot of us are exposed to PHP for the first time, and we were confronted with the problem of transferring information between PHP, Python, and Javascript (which is no easy task to do considering Javascript is client-based while PHP is server-based). We also became pretty good with incorporating multiple APIs into the project and finding relevant APIs that worked well with each other and presented information in the manner that we like it to be. At the end of the day, we learned that perseverance and patience prove to be the quintessential qualities when it comes to coding and hackathons.

What's next for Travelyze

We want to implement all the features that we thought about, such as Instagram photos showing up and information about attraction sites around the location after typing in your location. We hope that we can make the web application smoother and more efficient when it comes to processing and displaying the information.

Built With

Try it out

Submitted to

Created by

I worked on the frontend of the project, and created the entire web page from scratch using HTML and CSS. I also did a large amount of JavaScript to create event listeners for the many buttons that the site uses.

I handled the design aspects of the project, creating the user interface elements in image-editing software and and compiling an image database for the application's gallery function. I was also responsible for designing the project logo.

In this hackathon, I was responsible for backend coding for our website, working with php, python and setting up localhost. Also, I help implement the Amadeus and Google Maps API in the javascript, php, and python.