bluesBrackets logobluesBrackets logo
< CASE STUDY >

Tourist Traffic Management Application

Tourist Traffic Management Application
240kUsers
260kReservations
6kServices
370kJobs

Client

Mr. Shuttle, a tour operator in the tourism industry, specializes in professional transport services for tourists and business travelers, offering airport transfers, intercity transfers, as well as day trips.

React
React

A JavaScript library for building user interfaces, especially single-page applications (SPAs).

TypeScript
TypeScript

An extension of JavaScript that adds static typing. It makes writing and maintaining code easier while improving its readability.

React Query
React Query

A library for state management, designed for applications using REST APIs.

Spring Boot
Spring Boot

A framework for creating applications in Java, providing ready-made solutions that facilitate web application development.

PostgreSQL
PostgreSQL

An open-source relational database known for high performance, scalability, and reliability.

JPA
JPA

JPA is a Java standard for object-relational mapping, allowing the creation of objects that automatically map to database records.

Challenge

The tour company, employing dozens of staff and serving thousands of clients annually, decided to create a new system to support their business processes. The scope of needs included managing reservations from external systems, distributing tasks necessary for service delivery, and settling with employees and subcontractors. Employees previously performed part of the work manually, which was time-consuming and prone to errors.

The existing team workflow relied on several external programs and an outdated dedicated solution burdened with significant technical debt, making it difficult to efficiently add new functionalities. The previous challenges included:

Outdated Technology
Outdated Technology

The existing system was based on technologies that hadn't been updated for years. This outdated infrastructure introduced significant functional limitations as well as performance and data security issues.

High Technical Debt
High Technical Debt

The system was burdened with high technical debt, resulting in frequent failures and difficulties in implementing new functionalities, significantly hampering the company's growth. As a result, there was a slow migration to temporary solutions like Excel.

Lack of Scalability
Lack of Scalability

The old system was not adapted to efficiently handle the growing number of users, which was a barrier for the client's dynamically developing business.

Limited Availability
Limited Availability

Access to the system was only possible from specific types of devices, which was a serious limitation, especially for employees needing access to the system while traveling or at home.

Difficulty in Integration
Difficulty in Integration

The system did not have easy integration capabilities with other systems and applications, which was crucial due to the need to collaborate with external partners and integrate with modern tools supporting tourism.

The client decided to create a new dedicated system utilizing current technology capabilities. Requirements included the ability to work online from anywhere in the world, scalability regarding the number of users, and ease of future development. The application should also allow integration with third-party applications via an API interface.

One of the most important challenges was conducting a safe migration of data from the old system to the new one and ensuring a transitional period where both applications would function simultaneously, synchronizing data between them.

An additional element of the project was the iterative development of the application's UX/UI area, based on materials provided by the client in the form of documentation and preliminary mock-ups. The iterative approach allowed for the gradual adaptation of the system to newly identified user needs and technological capabilities.

Solution

The solution was based on a client-server architecture. The client application was written in React, and the server application in Kotlin using Spring Boot. The backend application was integrated with the PostgreSQL database. The solution was based on a hexagonal architecture, which allowed for a consistent separation of the business layer from implementation details.

Communication between the client and server used REST API. A clear division into backend and frontend parts enabled teams to work independently and allowed the possibility of replacing one part of the system without interfering with the other or adding another component in the future, e.g., a mobile application.

The application was designed with easy future development in mind, thanks to the use of modular object-oriented architecture, dependency injection, and unit tests.

Thanks to the well-thought-out database structure, cyclic migrators, and collaboration with the development team maintaining the company's old solution, it was possible to conduct a safe transition from the old system to the new one without stopping any of the client's business processes.

The application was deployed on the AWS platform, ensuring scalability and reliability. Client data was secured using the HTTPS protocol. By implementing the CI/CD system, the process of deploying new versions of the system was automated, significantly accelerating development iterations. Deployment on AWS, combined with the advantages of web applications, enabled easy access to the system from anywhere in the world.

The application implemented integrations with, among others:

  • GYG (Get Your Guide) - a platform offering tourist trips
  • Viator - a platform offering tourist trips
  • Booking - a leading platform offering accommodation reservations
  • Comarch Optima - an accounting and CRM system
  • NBP Web API - a service providing historical exchange rates

Various user categories (employees, dispatchers, clients, sellers) have customized access to application functionalities, allowing effective access management to data. Specific user groups have access to dedicated functionalities, such as a mobile view for drivers or a dispatcher view.

White signet

Who do you need?

Book a free consultation

bluesBrackets logobluesBrackets logo

At Blues Brackets we solve real business challenges with the latest and proven technology.

Let's talk

<mail>hello@bluesbrackets.com
<phone>+48 535 462 678

Let's meet

Kraków, PolandWrocław, PolandWarszawa, Poland

Contact

Blues Brackets Tomasz SzewczykNIP 8842800805REGON 385433315