Inspiration

As the world recovers from the deadly COVID-19 pandemic, many travel enthusiasts are itching to explore the what the world has to offer. However, many areas around the world are still fighting this pandemic. This era is critical, as providing accurate information on the current state of the pandemic will play an instrumental role in curbing the spread and lethality of COVID-19. We aim to provide our users with everything they need to plan the perfect vacation by providing information about lodging, COVID-19, food options, and travel plans.

What it does

Destination Vacation implements a multitude of APIs to provide a well-rounded experience to the user. It all starts with a simple search.

Our custom travel information script finds flights to the target location and displays lodging and restaurants near the specified destination. We understand that travel can be expensive and that is why we provide the user with the cheapest flights and hotels so our customers can make the most out of their vacation. In addition to providing the cheapest deals, we also provide real-time data COVID-19 data the user's desired travel destination.

How we built it

Frontend

Creating a user-friendly interface for an end-user is possibly the most important part of any functioning application. Using ReactJS, we built an incredibly simple user interface to provide users with easy-access information from our API. All our user's have to do is pick a place to go to and all the information they need will be at their fingertips.

A simple search bar on our home page gives users the freedom to explore wherever they desire. The main information page lists flights, restaurants, and hotels in a clean, easy-to-read fashion to ensure the quality of the user's experience.

Backend

We gathered data from many sources so our users do not have to spend hours trying to plan the perfect vacation. To gather data, we used many API's to get the best deals from various established services.

API's Used Google places - This API allowed us to get data about restaurants and hotels in any given location. This API also allowed us to provide users with restaurants that vary in price and the cheapest hotels available in the area

Covid Tracking - This API allowed us to get data about COVID-19 cases in the location selected by the user. The data was broken down by province/state when possible to provide the most accurate data to the user. This displayed data will update with each query as medical professionals continue to report cases.

Amadeus and Aviation Edge API - Air travel is a complicated procedure with many protocols to be followed. The Amadeus API takes the desired travel destination and travel dates and retrieves the cheapest flights. The Aviation Edge API was used to locate airports near a particular latitude/longitude pair. It was also used to retrieve the name of an airlines given the airlines identification code.

Geocoder - Uses latitude/longitude to retrieve country and state/province(when applicable).

Challenges we ran into

The issue of implementing the API's from the documentation was made apparent shortly after the members began coding; this resulted in much time being spent reading multiple documentations on the same API to fill in the gaps of knowledge that each individual documentation had. The API's for flight data were not as easy as use as we had expected. Many API's had gaps in their functionality and as a result we were forced to figure out how to integrate multiple API's. This was a lengthy process, but doing so enabled the later stages of the project to progress smoothly. Becoming familiar with TypeScript, the language of choice in the backend, was yet another challenge, as many of its aspects were foreign to our team members. To expedite the learning process, we took advantage of Visual Studio's Live Sharing feature, which enables multiple users to collaborate on the same coding project. This way, the team members with more experience with TypeScript were able to explain the concepts while also having example code to supplement the knowledge transfer.

Accomplishments that we're proud of

Due to the nature of the project, a lot of information was being parsed, stored, and passed. Keeping track of all the information in the backend meant a lot of time was spent debugging, tweaking, and researching. The large amount of information also meant that creating a visually appealing frontend was all the more crucial. Presenting the information to the user with elegance in mind was a key point in our plan, and we were very proud of the result we came up with. For two of our members, this was their first Hackathon, so getting them familiar with VSCode and the structure of programs was a big step forward in making them better programmers.

The Take-away

For such an open-ended prompt, we believe our product delivered on the goal of safety in a way that provided precision and aesthetics. Given the less than 24 hour time limit, we are very proud of the product we put forth and aim to create more intricate projects in the future.

Share this project:

Updates