Alle Projekte

ParkDas

Software-Projekt | Telegram-Bot

Bild des Projekts ParkDas

Ein Telegram-Bot, der freie Parkplätze auf dem Campus der Universität Ulm und in der Innenstadt anzeigt, empfiehlt und per Navigationslink ansteuert, per Befehl, freiem Text oder Sprachnachricht.

Rolle
Entwicklung im Dreierteam mit Schwerpunkt Parkdaten (Web-Scraping) und Projektsetup
Zeitraum
05/2025 - 08/2025
Technologien
Python, asyncio, pyTelegramBotAPI, Crawl4AI, SQLite, Gemini, Whisper, gTTS, GitLab CI

Ausgangslage

Die Parkplatzsuche am Campus der Universität Ulm kostet Zeit, und die Auslastung ändert sich ständig: Was vor Fahrtbeginn noch frei war, kann bei der Ankunft schon belegt sein. Gleichzeitig lenkt es vom Fahren ab, im Auto nach freien Plätzen zu suchen. Eine öffentliche Schnittstelle für die Parkdaten gibt es nicht.

In der Vorlesung Multimodale Benutzerschnittstellen haben wir deshalb zu dritt ParkDas gebaut, einen Telegram-Bot als persönlichen Parkassistenten, der sich über mehrere Eingabewege bedienen lässt.

Umsetzung

Der Bot ist in Python geschrieben und arbeitet vollständig asynchron. Er zeigt die aktuelle Auslastung aller Parkplätze auf dem Campus und in der Innenstadt, empfiehlt anhand des Standorts die nächsten freien Plätze und liefert Navigationslinks für Apple oder Google Maps.

  • Parkdaten per Web Scraping (mein Schwerpunkt): Weil es keine Schnittstelle gibt, liest der Bot die Auslastung von den Webseiten der Universität für Besucher- und Mitarbeiterparkplätze sowie vom Parkplatz-Finder des Parkhausbetreibers in der Innenstadt. Die Daten werden periodisch im Hintergrund abgerufen und zwischengespeichert, sodass jede Anfrage sofort beantwortet wird, statt bei jeder Nachricht neu zu scrapen. Dazu kommen die Positionsdaten aller Parkplätze für die Entfernungsberechnung und die Befehle für Übersicht und Empfehlung.
  • Mehrere Eingabewege: Neben Befehlen versteht der Bot freie Texte und Sprachnachrichten. Sprache wird lokal mit Whisper transkribiert, ein Sprachmodell ordnet die Anfrage einem Befehl zu und liest Ort und Zeit heraus, etwa bei „ein Parkplatz in der Nähe von H20 morgen früh“. Antworten gibt es als Text oder auf Wunsch als Sprachnachricht, auf Deutsch oder Englisch.
  • Automatische Empfehlung: Wer seinen Live-Standort teilt, bekommt beim Ankommen auf dem Campus automatisch eine Empfehlung, ohne während der Fahrt etwas tippen zu müssen. Alternativ lässt sich eine Empfehlung für einen festen Zeitpunkt planen.
  • Projektsetup: Das Grundgerüst des Bots, das Linting in der GitLab CI sowie Vorlagen für Issues und Merge Requests habe ich zu Beginn aufgesetzt.
Navigationsansicht des Bots mit Knöpfen für die freien Parkplätze
Ein Tipp auf einen Parkplatz startet die Navigation in der Karten-App

Ergebnis

ParkDas deckt den ganzen Weg zum Parkplatz ab: Auslastung abfragen, eine Empfehlung passend zum eigenen Standort bekommen und mit einem Tipp die Navigation starten, wahlweise per Tastatur, Sprache oder ganz automatisch beim Ankommen. Damit war das Projekt eine gute Übung darin, eine Anwendung über mehrere Ein- und Ausgabekanäle hinweg bedienbar zu machen. Der Quellcode ist als Open Source auf GitHub verfügbar.