TLDR Entdeckerticket.de ist ein Projekt, das darauf abzielt, Nutzern des Deutschlandtickets eine Plattform zu bieten, die es ihnen ermöglicht, interessant Ziele in ihrer Nähe zu entdecken.

Entdeckerticket Startseite Screenshot

Hintergrund

Entdeckerticket ist ein persönliches Projekt, das ich ins Leben gerufen habe, um lokales Reisen und die Nutzung des öffentlichen Nahverkehrs zu fördern. Die Idee entstand aus meiner eigenen Erfahrung mit dem Deutschlandticket, das es mir ermöglicht, flexibel und kostengünstig durch ganz Deutschland zu reisen. Ich wollte eine Plattform schaffen, die es anderen Nutzern erleichtert, interessante Orte in ihrer Nähe zu finden und zu besuchen, ohne sich auf teure Reisen oder lange Planungen verlassen zu müssen.

Technische Umsetzung

Technisch basiert die Plattform auf einem modernen Tech-Stack mit go und htmx. Die Backend-API ist in go geschrieben und bietet eine RESTful Schnittstelle, die von der Frontend-Anwendung genutzt wird. Das Frontend ist mit htmx entwickelt, was eine schnelle und reaktionsfähige Benutzeroberfläche ermöglicht, ohne dass eine vollständige Single-Page-Application erforderlich ist.

Daten werden in einem seperaten Ingestion Prozess importiert und verarbeitet- Die Daten werden regelmäßig aktualisiert, um sicherzustellen, dass Nutzer immer Zugriff auf die neuesten Informationen haben. Für das bessere Verarbeiten von Locationsdaten wird PostGIS genutzt, um räumliche Abfragen effizient zu gestalten.

Datenbasis

Datenbasis für die Plattform ist eine Kombination aus OpenStreetMap und GTFS-Daten. OpenStreetMap liefert detaillierte Informationen über Orte, Sehenswürdigkeiten und Infrastruktur, während die GTFS-Daten Informationen über Fahrpläne und Verbindungen des öffentlichen Nahverkehrs bereitstellen.

Die Verarbeitung der Daten war die größte Herausforderung bei diesem Projekt. Leider sind die APIs der Deutschen Bahn nur sehr eingeschränkt nutzbar, was die Integration von Echtzeitdaten erschwert. Daher habe ich mich auf statische Daten verlassen, die regelmäßig aktualisiert werden.

Um POIs (Points of Interest) in der Nähe der Nutzer zu identifizieren, wird Dijkstra’s Algorithmus verwendet. Für schnellere Berechnungen werden die GTFS Daten genutzt, um Durchschnittswerte für die Fahrzeiten zwischen verschiedenen Haltestellen zu ermitteln. Live Abfragen werden dem User erst angeboten, wenn er sich für ein Ziel entschieden hat.

Hierfür werden die Bahnhöfe aus den GTFS-Daten zu den von der Deutschen Bahn genutzten HAFAS-IDs gemappt. Insgesamt nutze ich drei verschiedene Datenquellen, um Bahnhöfe zu identifizieren: die GTFS-Daten, OpenStreetMap Geolocations und die HAFAS-IDs.

Entdeckerticket POI Screenshot

Mit diesem Workaround erhalten Nutzer zuverlässige Informationen zu POIs in ihrer gewählten Reisezeit, ohne dass Daten direkt von der Deutschen Bahn abgefragt werden müssen. Bei Auswahl eines POIs wird eine Weiterleitung zu der Seite der Deutschen Bahn angeboten, um Echtzeitinformationen zu erhalten und die Reise zu planen.