Inspiration

Platforms like Expedia and Skyscanner provide easy to use access to flights and package holidays, and they're great for finding good prices. What they lack is the interface to provide inspiration, and the ability to quickly explore different places around the world.

What it does

GlobeScope is a web-app that allows the user to quickly find information about a destination, like flight prices, general description, photos, weather reports and so on. The app returns the data quickly, and the interface is responsive. This allows the user to efficiently explore different areas and find inspiration by hopping from place to place.

How we built it

The web-app is a primarily front end application. The site was built in HTML, CSS and JavaScript. All the APIs were called using jQuery in JavaScript. We needed a responsive and fluid globe with a map overlay, to do this we used and open source JavaScript library called Cesium, and accessed this with Node.JS.

Challenges we ran into

A large problem we had was synchronisation of API functions. In some functions, we needed to pass one or more API calls, into another API call. Simply writing line by line would not have given the AJAX requests enough time to return their responses. To allow time for this, we used a combination of chaining callback functions, and using 'promises' in JavaScript where appropriate. We also had to consider that sometimes, API requests do not come back successful, and we had to be ready to accept failed, or partial responses. The Expedia API, whilst containing very rich data, had a complex data structure which involved retrieving a 'LegID' from one area of the structure, and looking that ID up in another part.

Being first years and in our first hackathon, we also found the division of tasks and merging of code an interesting challenge, sometimes we had performed unit testing that had passed, and later found that when the functions were chained together, they often had unexpected edge cases that we had to account for. This required good planning and prior agreements of what data and arguments we would be passing to each other.

Accomplishments that we're proud of

Only one of the members of our group had ever had experience with front end and web development. Within 2 days, the rest of us had learnt how to use HTML, CSS and JavaScript with jQuery and AJAX calls to make and process API requests, and render their results to the webpage. We were proud to produce a finished and smart product that works as designed.

What we learned

We learned about the challenges of delayed responses in AJAX requests, and how to handle them using chained callbacks and JavaScript promises. We also learned how to traverse JSON data structures to build objects and 'craft' the data that we required from them.

What's next for GlobeScope

GlobeScope could make use of far more APIs, in particular (if we were able to become reputable), using the TripAdvisor API, as it is only available to reviewed applicants or their API. This would enable us to not only return reviews of places, but find similar places to the destinations that the user is searching. We could also link the user's profile to Facebook or other social networks, and use big data algorithms to match their attributes to other user's search responses, and even more intelligently suggest places that the user might like to visit.

If we had had a little more time, we would have incorporated package holidays from Expedia's API, as well as finding the most popular times of year to visit, to develop infographics of price changes throughout the year.

Built With

Share this project:

Updates