How we built it: We used React, Javascript, the Amadeus API, and Firebase to build Friendcation. Users enter their names, departure locations, and budgets into a web application which places them into a Firebase real-time database. Then, Javascript calls the Amadeus Flight Inspiration Search API to build a list of possible destinations for each user and finds common destinations among the lists.

Challenges we ran into: Prior to beginning this project, we tried to do a hardware hack with a Raspberry Pi, but could not get it to work. This challenged us because it greatly reduced the time we had available to plan and build Friendcation. Additionally, API calls in Javascript are asynchronous, making inputting data from the API responses (which can come at varying times) into local data structures difficult. Another challenge we ran into was properly integrating variables into the API requests.

Accomplishments: We used the Amadeus API to quickly access a large database of flight information and quickly determine which ones were feasible for our users. We also have an effective shared-session data entry page, so friends can simply send a URL to each other to input data, bypassing the need to create an account and allowing for more spontaneous trips. Our use of Firebase to store data also makes Friendcation extremely responsive.

What we learned: Each member of the Friendcation team has broadened their skillset with this project. Team members with little exposure to web development and API usage gained skills in these areas, while members with little experience with efficiently handling and sorting data gained a better understanding of how computers handle data.

What's next: In the future, we hope to integrate Google Calendar to determine when users are available for vacations and directly put the vacation into their schedule. We also hope to implement a map to allow users to see where their destinations are and better timing to allow Friendcation to ensure all group members arrive at thei destination at similar times.

Share this project: