After creating mind reading toys/tools and an experimental e-commerce system as side projects, B-Reel’s New York office decided to take action and put experimenting on the schedule. The Products division was born, and its first experiment product - the smart flight search Escape Flight - was initiated.
Escape Flight is a free service that has been specifically designed for people in big cities, who need a last-minute weekend getaway, but can’t afford to do all the ground work themselves.
We created a one-stop, travel-agent-defying algorithm that considers the users’ personal interests and preferred airport, the weather, flight times, potential destinations (...including how easy they are to reach), if there is an exciting event, and of course not forgetting the cost.
Not hundreds, but a handful of carefully curated destination results are presented to the user, and all of the flights leave Friday evening and return Sunday night. And we’ve made sure to keep the design simple and visual, high impact and low on the word count. It’s really all about the convenience!
We took a “low-commitment approach” to facilitate the browsing experience throughout the site. By opening destination details info in an overlay on top of the search results, the user knows he can always go back to the same results he was scanning. We tried to encapsulate the whole experience in a unique flow, where users are not taken away to several pages and can always find what they were looking at without opening multiple tabs.
Last but not least important are the animations we included across the site. We put our efforts into creating animations that will make this experience pleasant to use from a visual perspective, and at the same time give users clear directions on where to look and what actions to take in certain scenarios. For example, our top bar is actually a small version of the search functionality of the site. Everytime the user changes something on their search, the SEARCH/GO button shines, indicating it can be clicked on again to refresh the search results.
The main technical goal for this project was to develop it in a short time while also putting the base for a long-lasting product that can be improved over time iteratively, in an agile development fashion. Also, the product needed to be well stable and performant from the very first release, allowing for flexible scalability in response to an unpredictable traffic. For those reasons the project was developed from the ground up to be deployed on a modern cloud infrastructure. We chose to use Amazon WebServices for their flexibility and reputation, and we were not disappointed.
The main technical challenge of the project was to build the recommender engine that is the core of the website functionality. We chose to develop a simple ranking algorithm, that can be improved over time to increase the accuracy of suggestions. The ranking algorithms assign points to each destination for positive factors (like a sunny day) and subtract points for “bad stuff” (like a flight that arrives late at night). Then the algorithm put together every combination for a single destination, finding the highest score for each destination, and finally the higher score among different destinations will be suggested. The algorithm could also be “programmed” via the website admin, by adjusting all the weights in the equation allowing for multiple settings being tested at once while looking for the best settings.
The ranking process runs on the server as a background task and is divided into 3 main sub-tasks. Firstly, some workers periodically collect and store all the data we need (flights and weather information), in an appropriate format. Secondly, some workers process all the data that’s been collected and rank it according to the ranking settings. Finally, a final worker assesses all the ranks and stores them in a format that’s easy and quick for the website to query, considering all different options the user can choose from when doing a search.
The final result is a website that’s not only sleek from a design/UX point of view, but also works as expected and is surprisingly fast in providing the right suggestions.
The full development stack we used is composed by multiple EC2 instances running web servers with Django Web Framework (python), running on Apache mod_wsgi, using Memcached. All instances connect to an RDS instance running a MySQL database. Moreover we have RabbitMq task queue that collects all the background tasks that need to be executed and they get delivered to multiple background workers (developed with Celery) that run on the same machines as the web servers, but can also be deployed on independent nodes. All of this gives us a flexible, decoupled and lean infrastructure that can be easily improved over time and scaled if necessary (both vertically and horizontally).
For the first version we started with focusing on London and just the next weekend, flights only. With this initial product we have seen great results (March 8 to May 8). For example, 96,824 unique visitors spent an average of 7:15 min on the site. 42.63% of the traffic in London are returning visitors. We saw a conversion rate of 3.53% of people from London clicking on the “check flights” links. 3,499 users have filled out the feedback form and told us where they would like to use Escape Flight next.