The customer wanted to create a tour booking aggregator with blogging functionality. He insisted on having flexible Pinterest newsfeed, tagging, categorization and search functionality in the blog area.

We created a special syntax to describe feed rules for categories. It was simple enough for users and quite feature rich to achieve customer goals. Here is an example of feed rules in the “France” category


feed output rules and feed itself


The performance was critical in tour search. We minimized number of API requests and created flexible caching system. Site fulfills queries according to a broader search request and caches them. Then user filters search results for a specific region, hotel, comfort level; then information is updated in less than a second.


tours search


Unfortunately API was not suitable for such an approach. It limited the number of tours, which we could get in a single request. That’s why if you give a broad request to it, part of the results doesn’t come out.

After fixing many bugs in provider’s API, after tons of support emails and hours in skype, we managed to create an algorithm where we split the broad request into subrequests and set up the caching so everything worked well then.

A similar problem was with getting the final price from API. It was important since payment gateway was automated and there were no phone calls from managers between tour search and payment itself. Users from different countries should be charged differently for a visa, fuel surcharge and even for hotel and flight. API had no input parameters for such thing, so we created our own database to consider all this stuff. Thus we got full and accurate pricing precise enough to send the user a bill. 


accurate pricing


Everything else was a piece of cake. We connected payment gateways, did some UI design and tested everything. Then we created landing page editor for marketing purposes where landing pages are built from website content.

«TagFly» was an exciting project both for us because we solved challenging engineering tasks, and for the users, because they can travel more easily now.