🎓 Eigenes Projekt

RailTrack Manager

Verwaltung von Gleisabschnitten und Störungen

Kontext

Als Liebhaber von ZĂŒgen und Schweizer PĂŒnktlichkeit wollte ich etwas bauen, das beidem gerecht wird. So entstand RailTrack Manager: ein Full-Stack-Projekt, um Angular sauber mit Spring Boot zu verbinden und die Grundlagen von Angular Material wirklich zu beherrschen, anhand einer DomĂ€ne mit echter KomplexitĂ€t: der Verwaltung von Bahninfrastruktur, statt eines weiteren CRUD-Beispiels ohne nennenswerten GeschĂ€ftssinn dahinter. BefĂŒllt ist die App mit realistischen Daten aus dem Schweizer Bahnnetz (Bern–Olten, Lausanne–Yverdon, ZĂŒrich Depot).

Rundgang durch die Anwendung

Vault & Login

Die Anwendung nutzt HashiCorp Vault fĂŒr die Verwaltung von Secrets. Bevor das Backend gestartet wird, muss deshalb ein Vault-Server laufen. Ist Vault bereit, startet zuerst das Backend und danach das Frontend. Es gibt keine vorangelegten Benutzer: Zuerst muss ĂŒber die API ein Benutzer angelegt werden, mit dessen Zugangsdaten man sich anschließend im Login-Bildschirm anmeldet.

RailTrack Manager Login-Bildschirm

Track Segments

Das Track-Segments-Panel ist das HerzstĂŒck der Anwendung: Hier werden die Gleisabschnitte des Netzes verwaltet, mit Linie, Typ, Betriebsstatus und letztem Wartungsdatum. Die Daten sind mit realen Abschnitten des Schweizer Bahnnetzes befĂŒllt: Bern–Olten, Lausanne–Yverdon und dem Depot ZĂŒrich.

RailTrack Manager Track Segments Übersicht

Incidents

Der Bereich Incidents erfasst die gemeldeten Störungen zu jedem Gleisabschnitt, von Signalstörungen bis zu Abweichungen in der Gleisgeometrie, jeweils mit Schweregrad und Bearbeitungsstatus.

RailTrack Manager Incidents Übersicht

Dashboard

Das Dashboard bietet einen GesamtĂŒberblick ĂŒber den Zustand des Netzes: Anzahl der Gleisabschnitte, Gesamt- und offene Störungen, Abschnitte in Wartung sowie eine AufschlĂŒsselung nach Schweregrad und Status. Diese Ansicht ist fĂŒr einen schnellen Überblick ĂŒber die Systemgesundheit gedacht.

RailTrack Manager Dashboard

Architektur

RailTrack Manager Architekturdiagramm

Diagramm erstellt mit Eraser: Browser → Frontend (Angular, Port 4200) → Backend (Spring Boot, Port 8080, JWT) → Vault (Secrets, beim Start gelesen) und H2 (JPA). Ablauf: Vault startet vor dem Backend → Login stellt ein JWT aus → das JWT wird bei den folgenden Requests im Authorization-Header mitgeschickt → Spring Security validiert es, bevor CRUD-Operationen auf Tracks/Incidents verarbeitet werden.

Stack

Ebene Technologie
Frontend Angular 21 + Angular Material (standalone components)
Backend Spring Boot 3.5, Java 21
Sicherheit Spring Security + JWT
Secrets HashiCorp Vault
Persistenz H2

Was ich gemacht habe

  • Die komplette REST-API (CRUD fĂŒr Gleisabschnitte und Störungen) mit Spring Boot und Spring Data JPA entworfen und implementiert.
  • JWT-Authentifizierung mit rollenbasiertem Zugriff von Grund auf implementiert.
  • Das Frontend in Angular 21 mit Standalone Components und Angular Material gebaut, mein erstes ernsthaftes Frontend-Projekt, kommend aus einem reinen Backend-Profil.
  • Das Datenmodell entworfen und mit realistischen Daten aus dem Schweizer Bahnnetz befĂŒllt, damit die Demo einen echten Anwendungsfall abbildet.

Technische Herausforderung

Ich kam aus einem reinen Backend-Profil. Die Herausforderung war nicht die API (vertrautes Terrain), sondern die Angular- und Angular-Material-Lernkurve so weit zu erklimmen, dass ein kohÀrentes Frontend entsteht: Standalone Components, reaktive HTTP-Services, Auth-Guards und Material-Komponenten, die sauber in den App-Flow integriert sind.

Ergebnis & Learnings

Eine end-to-end funktionsfĂ€hige Full-Stack-Anwendung (JWT-Auth, CRUD, Rollen), die echte Frontend-Kompetenz ĂŒber das Backend hinaus zeigt und als wiederverwendbare Vorlage fĂŒr kĂŒnftige Angular + Spring Boot Projekte dient.