cristianbabalau.dev
← cd ../#projects
Demo insideJavaMySQLJavaFXDocker

Maastricht Public Transport Routing

University project: a GTFS-based routing algorithm with a JavaFX interface, Dockerized and unit-tested.

University Project·2025
~/transport-router --demogtfs: placeholder
de MaasMaastricht CentraalMarktVrijthofBoschstraatCéramiqueRandwyck / UMMECCSint Pieter
# pick two stops and run the router…

// demo with placeholder stops, lines & times. the real project routes on the full GTFS feed with a tuned MySQL schema.

Overview

A Java-based public transport routing algorithm for Maastricht city using GTFS data, with a JavaFX interface to visualize optimal routes between locations. The interactive demo above is a simplified, browser-side re-creation of the router with placeholder data. The real engine runs on the full GTFS feed and a tuned MySQL schema.

What I Built

A database-driven solution with MySQL to efficiently store and query public transport data. Restructuring and indexing the schema (normalised design plus targeted indexes on high-traffic columns) cut routing-query latency by 40%. SQL schemas were configured and managed specifically to optimize query performance for routing calculations.

Engineering Practice

  • Git workflows with feature branches and pull-request reviews, deploying across dedicated test, acceptance, and production environments
  • Docker containerization for consistent deployment across environments
  • Comprehensive unit testing with JUnit (JaCoCo coverage) validating algorithm accuracy and performance

Tech Stack

  • Core: Java JDK 21, Maven 3.6, Graphhopper Library
  • UI: JavaFX
  • Data & infra: MySQL, Docker, JUnit 5, JaCoCo, Git
share: