Skip to content
Carrotly Technologies

Timetable application

A public-facing timetable application for a regional transport operator covering buses and trains across the entire Małopolska voivodeship, embedded as a widget inside the client's existing website.

Client
Koleje Małopolskie
Category
Products
Year
2024
Duration
6 months
Timetable application

The challenge

Koleje Małopolskie operates dozens of bus and train routes across the entire Małopolska region, but their schedule data existed only in raw GTFS format, a technical standard passengers cannot directly interact with. The solution needed to be embedded inside their existing website without touching the host page, and had to support multi-modal connection search across hundreds of stops spanning two transport types.

What we built

We built a Flutter web widget with a bootstrap configuration system, so the client embeds the entire application by adding a single script tag and an empty container to their existing page. On the backend, a NestJS service handles nightly GTFS ingestion, checking for dataset changes via hash comparison and refreshing the database when updates are detected. The core of the connection search is a custom implementation of the RAPTOR algorithm, built from scratch based on the original Microsoft Research paper and extended to support multiple itineraries across mixed bus and train routes. A GraphQL API serves the frontend, background workers generate printable PDF schedules, and an admin panel lets the client configure route colours, highlighted stops and upload GTFS data manually when needed.

The results

Key features

  • 01

    Multi-modal connection search

  • 02

    Printable PDF schedules

  • 03

    Real-time ticket pricing

  • 04

    Embeddable widgets

Gallery

Timetable application
Timetable application
Timetable application
Timetable application
Stack
  • NestJS
  • TypeScript
  • Flutter
  • PostgreSQL
  • Redis
  • MinIO
  • GraphQL
  • OpenStreetMap

Let's build your product together

Tell us what you're building — raw notes are fine. In a 30-minute call you'll get honest feedback, a rough timeline and a budget range. No pressure, no sales pitch.

  • ✓ Reply within 1 business day
  • ✓ NDA on request
  • ✓ Free estimate
Contact us