Baustellenverwaltung leicht gemacht

Um den Betrieb des Schienennetzes sicherzustellen, wird dieses laufend erneuert. Bisher beinhaltete die aufwändige Planung und Organisation der Baustellen viele manuelle Schritte. Der Baumeister BLS und die Open Source Meister Puzzle haben nun eine Lösung gefunden, welche die Koordination um ein vielfaches erleichtert.

Baumeister BLS

Das Schienennetz der BLS misst 420 Kilometer, umfasst 57 Tunnel und führt über 726 Brücken. Diese Infrastruktur wird ständig von der Durchfahrt tonnenschwerer Züge in Anspruch genommen. Um den Betrieb sicherzustellen, muss sie deshalb laufend erweitert und erneuert werden. Diese Wartungsarbeiten gehen meistens mit Baustellen einher. Die Planung und Organisation dieser Baustellen ist aufwändig und fordert viel Koordinationsarbeit, was bei der BLS bisher mit manuellen Schritten und Excel-Tabellen ausgeführt wurde. Der Abgleich zwischen den verschiedenen Stellen war immer eine Herkulesaufgabe.


Figure 1: Tabelarische Ansicht der Baustellen

Um die Verwaltung ihrer Baustellen zu vereinfachen und die Datenhaltung zu zentralisieren, durfte Puzzle für die BLS das Baustellentool entwickeln. Das Tool ist eine WebApp, in der Baustellen erfasst, verwaltet und von verschiedenen Abteilungen gepflegt werden können. Dadurch, dass alle Betroffenen ihre Daten auf derselben Datenbank pflegen, entfällt der mühsame Abgleich der zahlreichen separaten Tabellen. Durch die Verifizierung der eingegebenen Werte konnte die Datenqualität gesteigert werden.

Wir haben die Software als Client-Server-Applikation umgesetzt. Beim Backend setzen wir auf Spring Boot mit Java 11 und einer Microsoft Datenbank. Beim Frontend haben wir uns für Angular entschieden, bei der reibungslosen Datenübertragung zwischen Front- und Backend hilft uns Swagger.

Swagger nimmt uns viele mühsame Arbeit ab, indem es aus den Java-Datenstrukturen des Backends JavaScript-Äquivalente generiert. Daneben erzeugt Swagger auch noch den Quellcode für die Abfrage der Daten im Frontend. So ersparte Swagger uns sehr viel Zeit, welche wir dann für interessantere Herausforderungen nutzen konnten.

Zu diesen Herausforderungen zählten die Entwicklungen von zwei Frontend-Komponenten. Die umfangreichere der beiden haben wir für die Darstellung der Baustellen auf einer Zeitachse entwickelt. Die Benutzer des Baustellentools wünschten sich eine Ansicht, bei der die Baustellen mit ihrer Dauer in einer Kalenderansicht, ähnlich wie ein Gantt-Diagramm, dargestellt werden. Leider haben wir keine frei verfügbare Komponente für diesen Zweck gefunden. Deshalb blieb uns nichts anderes übrig, als die Komponente selbst zu entwickeln. Daraus entstand ein Jahreskalender, welcher die Baustellen als horizontale Balken auflistet und mehrere Sperrungen pro Baustelle erlaubt. Im Vergleich zur tabellarischen Darstellung kann der Benutzer viel leichter erkennen, welche Baustellen zeitgleich aktiv sind.

Open Source-Meister Puzzle

Da Open Source zur DNA von Puzzle gehört, kamen wir schnell auf den Gedanken, unsere neue Komponente mit der Welt zu teilen und alle davon profitieren zu lassen. Für uns gibt es dafür nur eine Möglichkeit: Der Quellcode muss auf GitHub! Mit der Zustimmung unseres Kunden durften wir die Komponente aus dem Quellcode des Baustellentools herauslösen und publizieren. Unser Plan war, die Gantt-Diagramm-Komponente in eine Angular-Library umzubauen, diese als Open Source verfügbar zu machen und als externe Abhängigkeit wieder in die Applikation einzubinden. Von der sauberen Trennung der Kernfunktionalität von der applikationsspezifischen kann so auch die BLS profitieren.


Figure 2: Kalenderansicht der Baustellen

Diese saubere Trennung war eine Herausforderung für uns. Anderen Benutzern die Möglichkeit zu geben, die Elemente des Kalenders zu stylen, bedeutete, unser Angular- und CSS-Wissen zu vergrössern. Neben den Herausforderungen bei der Softwareentwicklung konnten wir auch bei der Veröffentlichung von Software unser Wissen erweitern. Das Publizieren auf GitHub ist unser täglich Brot, aber ein korrekt gebautes Packet auf NPM zu publizieren war etwas Neues.

Die Open Source Version der Komponente hat definitiv unseren Ehrgeiz geweckt. Im veröffentlichten Quellcode haben wir schon mehrere UnitTests geschrieben, Bugs behoben und neue Features implementiert. Die Open Source-Komponente kommt deshalb mit einem grösseren Funktionsumfang und höherer Qualität daher als das Original. Im Zuge der neuesten Weiterentwicklung des Baustellentools haben wir deshalb den Original-Quellcode durch die Open Source Library ersetzt. So profitiert die BLS nun von allen Verbesserungen, welche auf GitHub gemacht wurden.

Unsere Angular Library ist verfügbar auf GitHub und als NPM-Paket. Wer die Komponente selber ausprobieren will, kann dies unter https://puzzle.github.io/ng-time-chart/ machen.

Kommentare sind geschlossen.