DEV Community

Cover image for Tutorial on How to develop a travel booking service
Django Stars for Django Stars

Posted on • Edited on • Originally published at djangostars.com

Tutorial on How to develop a travel booking service

Easy to use, smooth transactions, quick access to information and deals – passionate travelers usually use these phrases to describe why they love their booking service. Yet to build such an appealing and simple app, you have to go through a long and intricate journey. In this article, I’ll shed light on the main aspects you have to consider when developing a booking service. We learned about all of them while implementing ideas and business goals of Diviac and then PADI teams.

Every diver who’s ever decided to do an underwater dive knows about PADI. It stands for Professional Association of Diving Instructors. The organization has issued over 25 million scuba certifications since 1967 and the acronym “PADI” has become a synonym to “exciting diving experience”. This is why, when the Swiss-originated startup Diviac ( with which the Django Stars team has been working for 5 years on different projects) was acquired by PADI, the whole thing brought more challenges.

But one thing at a time. Let’s start from the beginning.

1) All You Have To Do Is To Reinvent The Wheel (Or, Every Booking Service Is Different)

It seems that the logic behind all online booking services is the same: customers come to the platform, choose dates, a room or destination, proceed with the payment and hopefully get a confirmation email with a teaser photo. There’s a number of off-the-shelf booking solutions with a tried-and-tested algorithm you can implement fast, but the flipside of the speed is limited functionality. When you start small and have a couple of options for booking, you may opt for an off-the-shelf solution. However, if you realize that your business will gain traction over time and your number of options and users will only go up, a set of popular functions may soon appear too restrictive for you.

When we started our application development journey with Diviac, there were different challenges: building booking engines over the existing logbook, or using ready-to-go solutions as Shopify. But at some point, we realized we had no other option than to reconsider the whole approach and develop something unique. You reap what you sow – back then, they didn’t even suspect they might be acquired by the world’s largest diving organization, so it was a smart move to develop bespoke software right from the start.

Building a solution from scratch means answering tons of questions at the beginning and understanding that there is no a one-size-fits-all approach to this type of service. There’s no shame in having a sneak peek at top-rated apps such as Booking.com, Expedia, TripAdvisor Kayak or Airbnb and pulling out some ideas from the cool elements and features they all have.

When you start drafting the SOW for your online booking service, think of the elements that will create a personalized experience and boost your conversions:

  • Mobile optimisation - eMarketer predicts that 49.5% of US digital travel sales in 2021 will be made via mobile, so make sure your app will have a responsive design that shines on all types of devices.
  • Location identification - localization helps create a better, more personalized experience for users (they will see local office addresses, contact numbers & currency)
  • Personalisation - by analysing visitors’ behavioural patterns through cookies and logs, the service will suggest tailored deals.
  • Reviews and ratings - giving the customers an opportunity to leave a review will help increase customer engagement and trust (PADI Travel, for example, places this strategic asset right below the first fold): padi-reviews-and-ratings
  • Gamification - adding interactive elements like quizzes, tests and calculators will also add to customer engagement.
  • Creating a sense of Urgency - adding elements that emphasize the best deals and showing real-time dynamics helps users find the best propositions
  • Inspirational Elements - most visitors spent the lion’s share of their time staring at cool pictures and comparing, considering and weighing the different options. Make sure your service inspires people - quality content will guide them through their travel planning.

To build the next Airbnb, you have to go through the entire decision-making funnel of your customer first. Understanding problems and pains of your service users will make it stand out from other apps. Think of how users are already solving the problem and how your app will help them do it better, or faster or (your option). Development of an online booking service will require a lot of work and technical skill - it will need to handle filtered searching, geolocation, online payments, communication between users, and review systems. So make sure you know what value your service will bring to the customers:

identify-problems-process

A Business Model Canvas is a good option for systematizing your vision for your booking app:
airbnb-business-model-canvas

So, what is the value proposition of the PADI Travel booking service?

First Diviac, than PADI Travel, exists to help divers explore more of the underwater world, and inspire and grow the overall diving community for the benefit of everyone in the diving industry. It offers more dive destinations and more dive holidays than any other travel company in the world, and it will continue to expand in the coming months with increased dive resort offerings.

When your team starts the development of a travel app from scratch, it’s important to ensure that everybody on the team is on the same page and fully understands the mission and culture of the product. After much research, our team at Django Stars almost turned into divers; today, I think we could hold up our end in a two-hour conversation with a professional diver without arousing even a hint of suspicion.

2) The Decision-Making Process Is Different For Different Travellers

How can you build a service that will make people happy? The answer sounds like a no-brainer: understand what drives your customer and solve his problem in the best possible way. But in practice, getting inside the customer’s head and understanding the triggers that affect him at each stage of his decision-making journey is a tough call. Divers say “the best view comes under a deeper surface”. That’s diver talk, but you get the idea – to create a cool experience for customers, you need to dig deep to find the right insights.

Here’s just a quick example: Why do people go for diving tours? The obvious answer is “They would like to look at fish underwater.” But if you do a bit of research, you’ll get a list of different reasons customers why people book a diving holiday:

  • Try new experiences underwater
  • Try diving as meditation and come into a near-trancelike state
  • Become a certified diver
  • Pump up their kidneys with adrenalin by meeting sharks
  • Take stunning snaps of the underwater world
  • Challenge themselves by diving through cave labyrinths
  • Swim around shipwrecks and underwater museums
  • Go muck diving, e.g., some passionate divers may look at a specific type of fish that was recently found by researchers, like this one:

weird-fish

So, you see that our initial hypotheses changed and turned into very specific reasons – and by understanding them, you’ll get ideas on how to sharpen your product.

Types Of Customers

There’s one interesting thing about diving: once you’ve tried going underwater, the experience will hold you for a long time, encouraging you to travel more and more. So basically there are two types of the customers that want to book a diving tour:

  1. Divers, or people who want to experience diving for the first time or get diving lessons and certifications; and
  2. Professional divers who made diving their passion and are willing to spend loads of money on a trip.

Each type of diver may have a non-diver spouse or a mate, who should clearly understand he will have some fun and be not just looking at bubbles or snorkeling in the sea when his/her partner goes out and back from a dive. By adding more content on liveboards, activities on land and photos of sunsets, you can inspire even non-divers. Often, people undergo diving tours in groups, which means different conditions compared to solo travelers, and PADI sorts that out with two clear buttons you can find in the footer from the start:

contact-options

For sure, you do not want to turn your booking service into a jack-of-all-trades designed for everybody, but in the end, for nobody. Here’s where you have to be backed by a strong UX/UI: you have to prioritize your audiences and create main user personas with their needs, wants and pain points in mind. After covering the types of potential users, you’ll need to figure out how they make decisions to compose a customer journey with the main points.

Customer Roadmap

The essential consideration when designing a customer decision journey is user feedback. You can get this through customer surveys and user testing. After you’ve sketched the wireframes, put the clickable mockups made with InVision through user testing and make sure users will complete the workflows.

Here’s what the customer journey for a travel solution might look like:
booking-user-roadmap

3) People Actually Like To Plan, So Supercharge This Process With Cool Features

Planning a vacation is like a little injection of endorphins that flows through your veins and delivers that pleasant feeling of anticipation to your brain. In terms of building the travel app, this metaphor means: “turn the process of choosing an option into a cool experience.” Don’t try to turn your app into a Swiss army knife that confuses users right off the bat.

Hitting user needs by adding the right features into your booking system will earn you a lot of grateful users. In the case of PADI Travel, it was important to differentiate the “nice-to-have features” from “need-to-have”, test them and deploy the most useful ones.

Right from the start, the user can book his trip – he just picks a liveboard and location, and then, in a couple of clicks, makes the final choice. Usually, this is when we see a sceptical smile, meaning “Do people actually book their diving trip in a matter of minutes?” hey don’t. According to Expedia Media Solutions, the person, on average, goes to a travel website 38 times before booking. So, if the on 39th time something clicks, your platform has to be ready to meet that need right from the first page.
booking-destination-navigation

Inspire

You never know what trigger will give the person the confidence to book a scuba diving vacation, so find some ways to inspire your audience through the service. Be it an experienced diver or a youngblood seeking adventure, it is important not to overwhelm them with all the propositions and their combinations, but still give them some hints so the prospects can discover more.

Here’s what PADI Travel has in place:

  • A blog with articles on iconic marine life you can easily jump to from each section of the menu
  • A list of the Top 5 Travel Destinations in the footer
  • A Dive Destination Wizard, which is really fun and can entertain you if you’ve been searching for a while or you’ve just come across the website:

Make Research An Easy Game

When the customer is exploring the options, he needs a precise set of data to satisfy his inquisitive diving mind. PADI Travel shows only what you need to know - not more, not less - including information on time zones, currencies and plug types at the planned destination, so you really don’t need to Google much more.

Each location shows the average temperature of the air, water and precipitation level for each month, which is important. It helps divers make a proper wetsuit choice according to their cold/ hot water tolerance:

water-temperature-chart

The probability of meeting underwater creatures - to free the divers from biological research, save their time, and prevent them from keeping their fingers crossed underwater (which I guess is really hard), there’s a calendar showing underwater fish and animals and the probability of seeing them in each month:

underwater-fish-calendar

Similar to every room on Airbnb or hotel on booking.com, all Liveaboards (even those with funny names, like Sea Cucumber) have a kind of landing page where users can dive into Liveboard’s bio and decide whether it is a nice company for their itinerary.

After series of A/B testing, the destination booking pages have three CTAs. These three buttons cover the users’ top enquiries:

recommended-diving-trainings

The devil is in details; small things help build up a holistic picture. For instance, the preloader between pages is in the form of the bubbles – professional divers call themselves ‘bubble heads’ – and this small thing helps give the customers a “you’re almost there” experience.

4) Change Of Rules, Or Keeping Your Head Calm Under Any Conditions

As I mentioned at the beginning, the software we developed for Diviac recently changed hands, and it’s quite natural that the transition to PADI brought some new challenges.

Our team at Django Stars first thought the the acquisition experience would bring more stakeholders breathing down our neck, more opinions, meetings, and more Red Bull bottles in the developers’ room. As reality showed, this twist was actually more about changing the mindset and location coverage. Diviac originated in Switzerland, and previously the startup target audience was located within Western European borders. After Diviac joined PADI family, the load on the platform increased, and now 30% of all traffic comes from the United States. The increase in traffic meant more load on the platform, and to ensure the solution will behave as designed when there are 500+ concurrent users, we run a series of QA performance tests.

Managing Risks

Be it a huge tectonic shift or a minor shakeup that roils your product, you might encounter risks that it is important to prevent. Your metrics might ramp up and fall down, or you might have bunches of new features or higher bounce rates for certain types of devices. To come through this stage with minimum losses and use the situation to your benefit, take care of the following things:

1) With the entry into new markets and audiences, make sure your user personas and customer journeys are relevant

2) Research the most popular types of devices in the new market for your product and create tests for those types of devices.

3) Ensure the legal compliance of your product (e.g., if you enter the European market, check for compliance with GDPR guidelines)

4) Ensure the teams are not working in silos and there are no disparities between departments

5) Break up long release cycles that don’t fit into an Agile sprint to prevent a growing backlog

6) Ensure everybody has an Agile mindset, meaning faster release cycles and faster feedback.

7) Analyse your security concerns against the desired user experience to find a right balance that optimizes both experience and risk.

Communication is key. Make sure everybody on your team is not stepping on each other’s toes, yet understands how to ensure consistency within the UI and the internal architecture.

5) Polishing the Must-Have Features of a Booking Engine

To provide users of your booking engine with a flawless experience, you need to make the following features work like a clock:

- Calendar

Integration of a calendar like Google Calendar into your booking engine will automatically add all the details into the user’s calendar and voila! Travelers have all the details in place and can keep track of their upcoming vacation.

- Notifications

Notifications enable users to pick the best deals, get details on their tour and make bookings much faster than those who access the engine only via a website.

According to Aberdeen research, companies that leverage tailored push notifications increase revenue by 13.8%. The notifications are really that good: enabling personalized experience, they offer valuable information to users. How? By tracking their travel history, location, behavior and browsing habits, different notifications help manage bookings via:

  • Location-based suggestions
  • Navigational notifications
  • Information on deals
  • Weather conditions notifications

hopper-push-notifications
Here’s how Hopper app notifies users on price reduction

To keep the customer’s loyalty, it’s important to find the right balance between notifications that are really significant and ones that are “nice to know”, so devise your strategy by mixing alerts in the right proportions.

- Advanced Filtering

With a variety of options, the booking service must have a filtered search that suggests all the available options in real time, but makes the process of choosing simple and precise:

The filtering logic depends on the business goals and the expected actions the user should take after finding the option – like, should he book the trip right now, or connect with the other websites?

PADI Travel has filtering and search logic based on multiple dynamically changing rules allowing users to search for the objects of various types from a base of 120.000 products.
Here’s how Diviac search evolved from the operator-type based categorisation:

padi-travel-filtering
... to a filtered search involving 15 categories:

padi-travel-nav-categories

The booking conflicts are prevented by the real-time automated parsing that allows users to book only actual liveboards and dive centers. In some cases, where real-time data processing can not be done, travel managers edit the information on availability manually. This is why it was decided to withdraw the customer’s payment only after receiving the confirmation from the liveaboard.

- Payment management

After the customer spent some time on the website, found the one and only option and is ready to bring it to the cart, a minor interruption here may push him back. So take care to deliver a smooth payment experience.

  • Clear pricing - make sure the user sees the final price on the screen, and any additional charges (such as VAT) are not somewhere at the bottom in a small font
  • Enable easy switching between currencies
  • Provide several secure payment options (Mastercard, Visa, American - - Express are a must, and integrations with PayPal, Android Pay and Apple Pay are cool)
  • Card details scanning - provide an option to scan the numbers with a credit card to make the process smooth and easy.

PADI Travel has a custom shopping mechanism to cover all aspects of the online booking: wishlists, shopping cart, payment, currency converter, checkout, and others. As for the special features that were released on the PADI platform:

  • Opportunity to obtain extra services and different cards for payment at any point
  • Development of a complex discount generation system
  • Supporting the payments by milestones. And here I can’t help telling more about this, in my humble opinion, kick-ass payment feature. One of the interesting findings was that people love to plan, like in very advance - 3 months, 7 months, a year before is absolutely fine. However, very few of those travelers are ready to transfer the whole amount at once with a light heart. After working out this insight, our team set up payments by milestones. Be it a liveaboard or a resort, you can set payment milestones with each provider, for instance, if you book 90 days before - you should pay upfront 30%, 30 days before - 70%. The same is with cancellation milestones - every case is customer-specific as it depends on every provider, though all the flexibility is safely anchored by cancellation policy rules.

- Admin CRM System

A clear and understandable CRM system will be the solid backbone of your internal processes, allowing you to handle all the necessary operations and keep track of contacts and deals.
With the growth of your business, your client list also grows, and more and more processes should be tracked.

PADI Travel developed an internal custom CRM system to empower travel agents with a full-cycle order and payments management tool. In this way agents can manage every step, starting from the creation of product to feedback and rating tweaks.

The system travel agents will love to work with:

  • sophisticated analytics that show not only the obvious data in terms of revenue or number of bookings, but also calculate the averages and shows ‘planned vs. actual’ comparisons
  • the option to create interactive dashboards

padi-travel-crm-dashboard

- advanced filters that help them quickly navigate through reams of data:

- a lean and neat package that is sharpened to the needs of administrative personnel and doesn’t have unnecessary features.

To sum it all up, I’d like to refer to a French oceanographer, Jacques Cousteau. He didn’t like the hundred-year-old diving technology that limited his range of exploring the sea and partnered with Emile Gagnan to improve it. Together they invented the Aqualung for scuba diving, allowing millions of marine explorers to swim to greater ocean depths. “The future is in the hands of those who explore,” he wrote. When he described his breakthrough, he wrote, “I was playing when I invented the aqualung. I think play is the most serious thing in the world.”

This story discusses what we learned from the best in the diving industry and how together we’ve been building (and continue to build) a unique service. It shows that even when there is a widely-used solution in your industry, but you know you can solve the users’ problem better, go for it. And don’t forget to treat the whole development process like a game, one with rules, control, goals and fun - only in this case, you will create a new game-changing product.

The article is written by Alexander Bulanov. This article about building travel booking service is originally published on Django Stars blog. You can also visit our content platform Product Tribe created by professionals for those involved in a product development and growth processes.

You are always welcome to ask questions and share topics you want to read about!

Top comments (0)