WhileFly’s technology enables low-cost airlines to serve their passengers with free onboard content and entertainment during the flight.
Without an internet connection, passengers stuck only with the content they brought with them on their devices. WhileFly offers a solution with an on-flight website that contains relevant information regarding the activities in the destination, fresh local news and a huge library of new movies.
Because we don’t have an active internet connection in mid-flight, we had to come up with some sophisticated way of achieving fresh content, fast load and support for at least 100 concurrent users.
In order to achieve it, instead of using a database(like MySQL) we are using json files that are holding the content that is served through PHP to the VueJS frontend.
how it works
Our setup consists of 3 different servers
WordPress is exporting data and content into JSON files that are those pushed into the AWS Server.
In 1 minute intervals, the
onboard server is checking for an internet connection, and once it finds it, downloading the latest content and media.
Besides the content, if new
framework or service files exist, it is downloading those as well and self-updating to the latest version.
The content management system for all the content and media, plus keeping all the parts in sync.
This is the server that holds all the content and media sent from WordPress
serves data to frontend
Onboard VueJS frontend
showing the content to the user
onboard control panel where the airplane crew can manage certain system objects
Managing content inside WordPress
Exporting content into JSON files and JSON templates
Pushing JSON file to AWS server
Onboard server checking for internet connection
Once exists, downloading content and media
Updating services to the latest version
Sending pingback with new updated versions
PHP framework is serving data from JSON files to VueJS frontend
Thanks for the query, we have 5 simple questions to allow us to come more informed to the meeting