Travel platform: API, traveller app and back-office

End-to-end travel platform: Django REST API, traveller app with full offline mode, back-office and PDF tickets with barcodes.

Travel and tour operator 2025 → today

In plain words

The need
A travel operator needed to prepare its trips, distribute them to travellers and handle ticketing, all in one place.
What we delivered
Three pieces on one shared foundation: the traveller’s app, the team’s admin tool, and barcoded PDF tickets.
What it changed
The traveller finds their ticket and itinerary even with no signal — which is exactly when they need it.
Sector
Travel and tour operator
Period
2025 → today
Our role
Design and development of the complete platform
Tech stack

At a glance

  • Three components delivered: API, traveller app, back-office
  • Full offline mode on the traveller application
  • PDF ticket generation with barcodes

The context

A tour operator needed a platform covering its whole chain: preparing trips on the team side, distributing them to travellers, and providing the necessary documents on the ground. Three audiences, three interfaces, one source of truth.

The challenge

The hard part of a travel application is obvious the moment you think about it, and forgotten in nine projects out of ten: the traveller has no network exactly when they need it.

They check their itinerary on a plane, look for their ticket in a crowded station concourse, verify an address abroad with no data plan. An application that assumes a permanent connection is an application that fails precisely when it matters.

A second constraint: the traveller must not have to create an account. An access code should be enough — without a random code granting access to somebody else’s data.

What we did

  • A Django REST API as the single business foundation, exposing trips, participants and their associated documents.
  • A Flutter traveller application, fully usable offline. Data is serialised and stored locally: the itinerary, practical information and documents stay available without a network, and resynchronise as soon as a connection returns.
  • Code-based access with no account creation, backed by security rules written so that reading a trip requires the right code — and only that one. The convenience of frictionless access, without opening the door to other travellers’ data.
  • A Flutter back-office for internal teams, with authentication separate from the travellers’.
  • PDF ticket and document generation with barcodes, produced server-side so they render identically whatever device displays or prints them.
  • Push notifications to travellers, and deployment on Apache infrastructure with automated certificates.

The outcome

The platform is live and continues to evolve. The API and back-office have been shipping regularly since going into production.

The decision that mattered most was treating offline as a day-one requirement rather than a later improvement. That choice shapes local storage, synchronisation and the data model — near impossible to retrofit, and invisible when it is done well.

Screenshots

Screenshot coming
Screenshot coming
Screenshot coming

Client covered by a confidentiality agreement

Shall we talk?

Tell us about your idea in a few lines. We reply within one business day with concrete first feedback — no strings attached.