Skip to content

Railway Graph Polyline Editing Utility — demo pack

This page assembles sections relevant to demos and stakeholder presentations: overview, role, architecture, decisions, roadmap, and demonstration.

Contents

Summary

Status

historical internal project / evolved into GraphMechanic concept

Role

initiator, concept author, developer

Stack

Type: Internal tooling / GIS data preparation / railway graph editing

Project value

A local web utility for creating, editing, and repairing railway track polylines used in railway graph data preparation.

What this demonstrates

This project demonstrates my early transition from requirements and data preparation work toward hands-on internal tooling development.

It shows the ability to:

  • identify a repetitive data preparation bottleneck;
  • convert a manual GIS/data-cleanup task into a visual tool;
  • design a pragmatic internal application for a narrow operational problem;
  • combine backend logic, map UI, routing, caching, and asynchronous interactions;
  • create tools that reduce manual work and improve data quality.

The project later evolved conceptually into GraphMechanic, a broader idea for visual graph editing and GIS-related data tooling.

Overview

A local web utility for creating, editing, and repairing railway track polylines used in railway graph data preparation.

The project emerged from a practical data quality problem: railway infrastructure objects had to be connected with correct geometry, but manual preparation of polyline data was slow, error-prone, and difficult to validate without a visual tool.

The utility provided a lightweight internal interface for working with railway graph geometry: editing nodes, creating polylines, generating route-based geometry, and repairing incorrect or incomplete track segments.

Technology Stack

  • Java / Spring Boot
  • Server-side rendering
  • MVC architecture
  • Repository layer
  • JavaScript / jQuery
  • Map-based UI
  • Routing service integration
  • Polyline caching
  • Asynchronous data loading

Role and Responsibilities

I acted as the initiator, concept author, and developer.

My contribution included:

  • identifying the need for a dedicated visual editing tool;
  • defining the main user scenarios for railway graph cleanup;
  • designing the application structure;
  • implementing the backend and server-side page generation;
  • implementing interactive UI behavior with JavaScript and jQuery;
  • supporting practical data preparation work for railway infrastructure objects.

Architecture and Integrations

Architecture

Architectural Approach

The utility was implemented as a layered monolithic web application.

The architecture included:

  • server-side page rendering;
  • MVC structure;
  • business logic layer;
  • repository layer;
  • jQuery-based interactions for partial updates without full page reloads.

Integration Flows

Polyline generation via routing service

The tool generates polylines through a routing service, producing route-based geometry for railway graph segments.

Polyline repair via route recalculation

Existing polylines can be repaired through route recalculation when geometry is incorrect or incomplete.

Asynchronous polyline loading and update flows

The application supports asynchronous polyline retrieval and update flows, including polyline caching, enabling partial UI updates without full page reloads.

Decisions, Trade-offs, and Risks

Key Decisions

Trade-offs

Pragmatic local-only design

This approach was intentionally pragmatic: the tool was designed for local/internal use, fast iteration, and practical data preparation rather than long-term productization.

See also Architecture Decision Records.

Roadmap and Demonstration

Roadmap

  • Documentation is in progress.
  • The project direction continues in GraphMechanic: https://github.com/flatura/graphmechanic_docs

Screenshots and Demo

UI Screenshots

GraphMechanic: UI

User interface

GraphMechanic: node editing

Node editing

GraphMechanic: polyline creation

Polyline creation

GraphMechanic: polyline generation via routing service

Polyline generation through a routing service

GraphMechanic: polyline repair via routing service

Polyline repair through a routing service

What This Demonstrates

This project demonstrates my early transition from requirements and data preparation work toward hands-on internal tooling development.

It shows the ability to:

  • identify a repetitive data preparation bottleneck;
  • convert a manual GIS/data-cleanup task into a visual tool;
  • design a pragmatic internal application for a narrow operational problem;
  • combine backend logic, map UI, routing, caching, and asynchronous interactions;
  • create tools that reduce manual work and improve data quality.

The project later evolved conceptually into GraphMechanic, a broader idea for visual graph editing and GIS-related data tooling.