Contact us

Cross-Platform Bus Ticketing Solution

Cross-platform software development for a UK-based bus ticketing company

ABOUT the project

Client:
Bus Ticketing Company
Location:
Country flag

UK

|

London

Company Size:
50+ Employees
Industry:

Logistics and Transportation

Services:

Technologies:

Blazor

.NET MAUI

A platform that provides functionality for browsing, purchasing, and sharing bus tickets. The solution ensures a seamless user experience across different devices. It also involves the functionality for splitting the bill, as well as convenient in-app payments and booking.

We were really satisfied with the way Leobit approached the project. They were really proactive and fast, suggesting the best ways to speed up the development process.

Anthony G.

CTO at the Bust Ticketing Company

platform for bus tickets

Customer

A UK-based startup that rapidly grew into an ambitious bus ticketing company. The client already had a solution for selling bus tickets online, but it was very raw and required a significant modernization and enhancement to meet their business goals.

BUSINESS
CHALLENGE

The customer had been running a web-based solution with basic functionality. The app lacked some critical features and had an obsolete payment logic. Its web version also showed inconsistent performance across different devices.

Why Leobit

The customer was attracted by our technology expertise. They also knew that the Leobit team had developed a cross-platform concert ticketing marketplace with functionality for splitting the bill. As long as the client wanted a pretty similar solution, they viewed Leobit as an ideal partner for their project.

Project
in detail

We have developed a working version of the solution in two major iterations. Currently, the Leobit team keeps optimizing the solution on demand.

project in detail

Our software development team analyzed customers’ requirements and the existing solution. At this stage, we researched the key connections and features that had to be preserved during code modernization and cross-platform development.

We rewrote most of the solution’s codebase using the combination of Blazor and .NET MAUI, also known as Blazor Hybrid. This combination allowed us to reuse over 90% of the codebase. We also leveraged the components from the Razor class library (RCL) to share UI and usage logic across web and native clients quickly. As a result, Leobit specialists managed to deliver the solution that shows consistent performance across different platforms and operating systems in less than two months.

Our specialists used Blazor WebView, making Blazor the core service for running app logic and the interface layer. In this architecture, .NET MAUI acts as a container that natively runs on various platforms. We also accessed JavaScript libraries through Blazor, which allowed us to build a dynamic interface adjusted to the customer’s branding requirements.

During the second iteration, we expanded the core of the modernized solution with some new features. In particular, we integrated the app with several third-party services and used Stripe integration for payments. Our specialists also relied on .NET to build a custom logic for splitting the bills for tickets. The solution can automatically generate the link to an invoice, and a user can deliver this link to another person via email or a messenger.

Once the major work on the product was completed, we continued with testing and optimization. Currently, the customer is running their ticketing platform efficiently. We help them support, maintain, and optimize the solution on demand.

buses
Modular Architecture Built with Microsoft Azure

Modular Architecture Built with Microsoft Azure

We used Azure App Services to host the modular architecture of the solution. To store and manage data on purchases, ticket availability, bookings, and schedules, we use Azure PostgreSQL, while media assets like images and route maps are stored in Azure Blob Storage.
The solution’s modular design ensures its efficient management and flexibility.

We can easily expand the solution with new business modules, such as the customer support module or an updated module for route management. To maintain operational visibility and reliability, the platform integrates Azure Application Insights, which provides comprehensive monitoring functionality.

Convenient Payments and Bill Splitting

Convenient Payments and Bill Splitting

The app ensures convenient payments through its integration with Stripe. We also created a custom bill splitting algorithm for group travellers.

When one user initiates a group booking, the system generates a shared payment link that can be distributed to other passengers. Each participant’s payment status is tracked in real time within the Azure PostgreSQL database, ensuring data integrity and transparent reconciliation.

Consistent and User-Friendly UI/UX Design

Consistent and User-Friendly UI/UX Design

We used components from different JavaScript libraries and the Blazor Fluent UI library to build a convenient UI/UX design aligned with the customer’s branding requirements. While the customer already had a basic UI/UX for their platform, we optimized it and adjusted it to make it responsive for diverse screen sizes and interaction patterns.

For example, we adapted the interface to support swiping, double-tapping, and other gestures commonly used on touchscreens. For desktop users, we provided intuitive controls tailored to traditional input devices. We also prepared the solution to integrate with media files, including maps, as well as images of buses and bus stations, that can be instantly accessed via the solution’s UI.

Technology Solutions

  • Modular monolith architecture that ensures excellent flexibility.
  • The combination of Blazor and .NET MAUI, which ensures the over 90% code reusability and consistent user experience across different devices.
  • Smooth app deployment with Azure Container Apps.
  • Integrations with third-party services like Stripe.
  • Azure Application Insights used for system monitoring.
  • Custom bill algorithm for splitting the bills.

Value Delivered

  • Flexible architecture that ensures continuous platform improvement.
  • Three times increase in user satisfaction attributed to the platform’s cross-platform capabilities.
  • Simplified maintenance with a unified codebase.
  • Simple and convenient app maintenance and support.