Flyin is an online travel agency from the Middle East, focused on being an integrator of hotel and flight bookings, especially dedicated to the MENA region. Flyin.com is created with a vision dedicated to providing exceptional travel experiences for its customers, making the journey with Flyin.com an exceptional experience. Through its direct access to one of the widest networks of travel products and services, Flyin.com ensures you will always find something that fits who you are and how you want your trip to be. Flyin.com is the one-stop-shop for the modern traveler.
We started our collaboration back in August 2016 when the client decided to build a secondary booking app, dedicated for a specific group of clients. The goal was to provide the travellers with a dedicated native Android and iOS app for flight and/or hotel booking. In May 2017, we also started a second venture with Flyin, this time focused on leveraging the popularity of messaging platforms. The goal of the second project was to build a module that could be integrated with another native Android and iOS app (in this case: Flyin’s main booking app) that would allow Flyin’s Premium users to benefit from being able to make hotel / flight bookings via an interactive chat conversation, backed by both automation and dedicated Agents, who have already been serving those users successfully via call centers.
Not a common approach to build just a module, not the whole separated application. Required to have a module on Android, iOS, backend with Agent web interface that cannot work alone, but should be integrated by providing an interface to an existing (and constantly maintained and extended) platform (web + mobile + services).
Modularity has been achieved in a few different ways, dependent of the platform and a part of the system. On mobile devices, we built modules handling all the required app logic and scenarios that were exposing only a minimal interface to the “host” application. Mobile modules do not communicate with existing backend services but use a dedicated backend application and service responsible for both the messaging logic and communication with existing services. That backend application is architectured in a way that can serve as an independent module of another application that communicates using a specific interface. For additional compatibility, we also added an incoming webhook capability to the backend service that allowed external systems to trigger specific actions inside the app. Last but not least, the web interface part does also contain a non-standard integration approach since it’s an Vue.JS app embeddable into an AngularJS application (since our Client’s existing web solution was using AngularJS in the parts we needed to connect to).