Oh boes. Let’s start with actual challenges. There is always something that will kick you on to the nuts. My colleague got sick and suddenly I was all alone. First I was like screw this I’m going home, but then I called my friend Tyrone, who just said ”the f*ck you gonna about it, huh?”. So my only choice was to find my old Chuck Norris karate pants and start to hammer this shit together.
I am a fast bootsrapper and I’ve done this before, so I put my robe and wizard hat on and started to murder some code. Challenge was accepted.
I had to use a lot of MIT licensed stuff, API wrappers and other snippets the wiser had already done before. Eventually I was quite pleased what I achieved – one might even say: ”minä vahingossa koko hackathonin, onko paha?”
Everything went better than expected. So, when judging, take the fact that I made this all alone into account, please. This is glued with gum and tapes and whole service is been hold by planetary constellations. This may load itself a while and will NOT work every phone. Use desktop if possible. WebGL support required!
what is it
Now, this uses a lot of resources:
- Finnair API’s
- Google Places + Google Places API
- Free world cities database
- Istanbulfilms.blogspot.fi + 1001moovees.blogspot.fi
- Google Youtube API
- Lots of heavy metal
- Coffeine overdose
Basically this is a virtual globe that uses combined airport and geographical data and visually presents routes, weather and other cools stuff. It can fetch the events, restaurants and other stuff from destination country. You can "fly" your route beforehand and examine points of interests in your destination country. It'll also show you a video presentations, for example, of Finnair fleet or destination country (there is only one video in this demo). Based on camera position it will fetch interesting places everywhere from the planet and if you choose the movie mode, it will find you trailers of classical movies based on country you are currently flying.
My solution uses two servers in Google cloud: 1st runs cesiumjs and node.js and 2nd does all database queries.
Before I tell how and what I actually did, I must tell _why I did this. I didn't have a clue what to do when I came here. I searched thru tracks and it was actually just an intuitive decision to combine these two tracks. I actually didn't know in the beginning to which track I would apply, but decided to choose Finnair. I didn't use any Elisa API's but I wanted to include them to this because I think that this actually is a new idea to expand the movie experience.
The purpose of this whole bamboozle is to bootstrap different and unique opportunities and ideas of what can be done. This project is made truly in the spirit of hackathon; no sleep, no boundaries, no regrets.
the important part aka what, how and value
First I had to combine Finnair API to Partow data to create a huge database of 9300 (!) airports with lat, long, altitude and other stuff. Then I created functions to locate and fetch databases based on locations and after that I started to implement these to cesium engine. To save time, I used cesium default objects and entities and created a snippet that tracks coordinates constantly. Then it'll send them to different kind of API's and presents the results on the globe.
I integrated the whole Google Places interface, so based on camera position, it'll search interesting places on every 3rd second. You can zoom out and check the route, of which the code interpolates based on origin and destination coordinates. The interpolation function and airport locator function can take the curve of the globe into account.
The weather data of destination country comes from Finnair API. I also included some cools extra stuff like dehydration level and altitude (for asthmatics) of destination country. These will demo health options, so basically you know when and how much to drink during flight. This same logic can be used to implement restaurant recommendations based on body type and other personal health data.
Basically you can fly from HEL to any given airport, or from any given airport to HEL (movie feature). I combined a database of about 500 movies, including country, title and coordinates. Then I created an ajax chain that first fetches the movie title based on lat & long from country you are flying on. Then it'll uses Youtube API to search trailer based on the title. It will then generate a button of which you can use to look the trailer in iframe.
The movie mode also demos the possibilites for Finnair to search location based data fast and virtually. I also integrated a "a flying video screen" to demo possibilities of using live video to show data from fleet or destination country. This feature works only when flying from HEL to somewhere else.
I didn't have time to implement Finnair price info but I generated a button to Google Flights, where you can book tickets right away!
There are four other (blue-tail) airplanes flying to random destinations just for one.
I am actually quite proud, that despite the fire alarm and other challenges, I managed to do this on time and combine so many data sources & integrate multiple API's. The only thing I wanted to add was the possibility to steer the plane and actually fly all over the world. But I ran out of time there. I also did some machine learning planning, but didn't implement any AI to the service. It can be, however, quite easily done after material and possible mvp are validated.
Next I would like polish some bugs and make some minor updates. Then I would like to discuss possible cooperation or pilot project with Finnair (and maybe with Elisa, too). We actually have a company that does health AI-driven stuff for companies like Fazer, HUS and YA. The Junction FinElisa Engine is a working proof of concept that these kind of geolocation based solutions can be made and I believe that there is so much more possibilities to unrelease.
But not the fury. Never unrelease the fury.
Peace and love <3