Offer's comparison app

About the project

Once again we had the pleasure to co-work with Rainbow Tours team on one of the tour operator’s IT projects. Together we’ve prepared a web application, that allows sellers and helpline workers to present custom offers in a personalised form and generate them especially for travel agency’s client.

What goals Rainbow wanted to accomplish?

Rainbow decided to come across travel agencies clients expectations and give them possibility to receive personalised offers of their dream vacations in an easy and accessible way. Thanks to this project, Rainbow’s clients can get trip offers that are customised to their needs and expectations, regardless whether they prefer traditional (PDF printout) or more modern approach (view of dedicated offer in a web browser after clicking on generated for the client special url address).

Additionally clients can get permanent access to offers comparison, that were generated especially for them by travel agency’s or call center’s worker. Client has insight to the offer’s details anywhere and anytime - he just has to open his personal url address, that he got from Rainbow worker. Additionally offers are assigned to particular salesman, that supports the client, which allows for him to contact his customer assistant directly and feel well taken care of.

“Offer's comparison app” is also a great tool for Rainbow’s sales network. Preparing offers in the form of personalised documents and links, allows agents and helpline workers better reach clients with selling message.

What were the project’s technical assumptions?

As a part of project’s implementations both Rainbow and eEngine teams had to cooperate tightly with each other. Client’s team had to take care of delivering data needed to generate tour offers through Rainbow system’s API. We took care of:

  • adjusting graphic design to visual identity of R.pl;
  • preparing front layer of application;
  • preparing containerisation (Docker implementation);
  • implementation of mechanism to generate offers viewed in web browser and in PDF file.

Generating mechanism downloads data regarding offers from Rainbow’s API. Next, according to settings that user chose, it generates PDF document with an offer. Salesman can save it or send directly to the client dedicated url address to the offer via systemically generated e-mail. It all translated into the desirable aim: offer generated this way gets unique url link and additionally there is a possibility to personalise offer for the exact tour agency’s client.

What challenges faced us?

The most demanding element of the project’s implementation was dividing applications into components, which final appearance was defined by Rainbow’s API.

On the other hand the hardest part in PDF generating mechanism’ implementation was document’s dynamic generating according to user’s settings. Every change of settings caused new division of section on the webpage and defined new, final appearance for travel agency’s client. PDF generating mechanism was based on the data displayed on front view of the application so after preparing proper PDF generating logic, every data structure change had to be adjusted in that part of applications. Every structure modification was reported first so that Rainbow team could prepare and provide us with new structure data. Afterwards we analysed them for the implementation on the application’s front view.

While joining the project realization we wanted to close elaborate data, standing behind application’s assumptions in the most accessible artwork, compatible with the newest standards in designing web pages.

How did our collaboration look like?

The whole project was realized with intense and engaging contribution of Rainbow’s IT team. In reality it translated into:

  • workshop meetings - during which we worked on concept of how the application should work and look like. In order for the project to proceed in good pace and be implemented within deadline - regular workshops were inevitable;
  • as a part of a project we maintained communication constantly, for example using dedicated Slack channel. Through this tool the Rainbow team had constant connection with our team (and vice versa). Thanks to this we, so as our client, could react faster for the questions, problems and explain mutually the most important issues.

Project’s life rhythm was determined by weekly sprints. We chose agile methodology of creating software, because we wanted to give Rainbow as much influence on how the “Offer's comparison app” will look like in its final version as possible. Every monday client’s team got from project manager a document with current work status. In this status we described exactly which tasks we managed to realize and which we didn’t in particular sprint and why. Thanks to the statuses and regular reporting work progress, the client was up to date and informed about progress and problems. Tight cooperation with Rainbow team helped us to work on proper data structure sent through API really fast, to get anticipated effects as soon as possible both on front view of the application as well as in PDF documents offer generating mechanism.

Technologies that powered us up during implementation

Graphic design was predated by prototype phase which included creating functional mock-ups. Finally graphic design with all the necessary elements was created in Adobe Photoshop and Adobe Illustrator.

To realize front part of application we used React.js, Sass and Docker. React.js is the proper technology to work with API delivering data for the application and allows to build really fast applications. SaaS makes implementing graphic design to the application easier and thanks to Docker we didn’t have to worry about compatibility of the application to client’s server environment.

To realize PDF generating mechanism we used Ruby on Rails framework. Using Ruby on Rails helped us to use proper gems, thank to which we could generate PDF files directly from data downloaded from backend (client’s API), which helped generate personalised PDF files really fast.

Final effect

From this solution can benefit travel agencies sellers, divided into stationary workers (working in Rainbow agencies) and remote agents (working in helpline). Each offer has the details of an agent who generated it written down and thanks to that clients have direct contact to supporting them Rainbow workers.

Stationary workers generate client’s chosen tour offers, that are in approachable way presented to the clients during selling process. Having the possibility to personalise PDF file they can also print key informations regarding chosen offers as well as most important informations about the trip.

Remote agents generate offers comparison, that are afterwards personalised by filling in clients personal information. Link to the comparison made this way Rainbow workers send out via email to people wanting to buy a trip, so they can look through the travel agency’s proposition comfortably anytime and anywhere.

From programming point of view - well adjusted components and well-though logic of applications action already while in the realization of graphic design stage, allowed us to create functional product in short period of time. Within 5 weeks after delivering final version of application “Offer's comparison app” Rainbow can boast about more than 20 000 generated offers.

Thank you Rainbow, that we could once again go on a programistic trip and achieve our goals together.

Project team