Vergabe-Radar: öffentliche IT-Aufträge im Überblick

Diese Woche habe ich ein Dashboard für öffentliche IT-Beschaffungen gebaut. Ausgangspunkt war mein Wunsch, Projektangebote statistisch auszuwerten. Nach der Recherche habe ich die Idee auf öffentliche Vergabedaten übertragen. Den Bauplan mit Daten, Farben und Designvorgaben habe ich vorab als HTML-Dokumentation vorbereitet und anschließend Claude Code übergeben. Zum ersten Mal kam dabei mein neuer Deployment-Standard zum Einsatz. Das Dashboard ist öffentlich erreichbar, die Barrierefreiheit ist noch nicht zu meiner Zufriedenheit gelöst.
Ausgangslage
Eigentlich wollte ich auf einer Freelancer-Plattform nachsehen, welche Projekte dort angeboten werden. Dabei fehlte mir ein Überblick: Welche Programmiersprachen und Werkzeuge werden häufig gesucht? Wie viele Projekte sind remote, und in welchen Städten konzentrieren sich die Angebote? Daraus entstand die Idee für ein Dashboard.
Bei meiner Recherche kamen allerdings Fragen zur Zulässigkeit des Auslesens auf. Außerdem bietet die Plattform selbst Statistiken an. In dieses Angebot wollte ich nicht eingreifen. Die Grundidee gefiel mir weiterhin, deshalb suchte ich nach anderen Datenquellen für Projektinformationen.
So bin ich bei öffentlichen Ausschreibungen gelandet. Diese Woche habe ich daraus den Vergabe-Radar gebaut. Der Schwerpunkt liegt auf IT, Software und Personalbeschaffung in Deutschland. Damit lässt sich ein Markt überblicken, dessen einzelne Bekanntmachungen sonst zunächst wenig über die Verteilung der Nachfrage verraten.
Planung und Vorgehen
Vor der Umsetzung habe ich das Projekt ausführlich in einer HTML-Dokumentation geplant. Darin standen die vorgesehenen Daten, die Farben und die Designvorgaben. Erst danach habe ich die Dokumentation an Claude Code übergeben und ihn selbstständig bauen lassen.
Dieses Mal waren die gestalterischen Vorgaben besonders schlicht. Ich wollte eine minimalistische Ansicht. Das hat die Rückmeldungen während der Umsetzung verändert: Sonst muss ich eher Elemente entfernen lassen, weil es schnell zu viel wird. Hier musste ich stattdessen auf fehlende Grundlagen hinweisen, etwa mit „Wir haben jetzt gar kein Favicon“ oder dem fehlenden Titel über dem Dashboard.
Zum ersten Mal konnte ich auch meine neue Deployment-Standard-Dokumentation verwenden. Sie ist beim Neubau meiner Homepage entstanden, als ich die bisherigen Projektdemos neu bereitgestellt habe. Darin habe ich festgehalten, wie ich meine Docker-Container deploye. Diese Vorlage konnte ich jetzt mitgeben. Das hat die Bereitstellung für mich deutlich einfacher gemacht.
Umsetzung
Die Anwendung lädt Tages- und Monatsexporte der Vergabeplattform und speichert die Daten in MariaDB. CSV liefert die Grunddaten. Ein ergänzender OCDS-Import bringt unter anderem Dokumentlinks mit. Im Dashboard lassen sich Zeitraum, Region, Beschaffungsbereich und Verfahrensart eingrenzen. So werden aus einem großen Datenbestand kleinere, fachlich passende Ausschnitte.
Die Auswertungen verbinden Bekanntmachungen mit Informationen zu Wettbewerb und Auftragswerten. Dabei ist die jeweilige Datenbasis wichtig. Die 35,9 Prozent Ein-Bieter-Verfahren beziehen sich auf 2.489 Lose mit veröffentlichter Bieterzahl. Der mediane Auftragswert von 473 T€ stammt aus 1.047 veröffentlichten Werten. Beides beschreibt also nur den Teil des Bestands, für den entsprechende Angaben vorliegen.

Bei der Gestaltung bin ich vollständig bei Cyan geblieben. Viele Diagramme enthalten zahlreiche Einträge, für die einzelne Farben keine praktikable Lösung waren. Deshalb verwende ich überwiegend verschiedene Helligkeiten desselben Farbtons. Das gefällt mir gestalterisch besser als zusätzliche Farben in einzelnen Diagrammen. Die Barrierefreiheit habe ich damit allerdings noch nicht zu meiner Zufriedenheit gelöst. Ein Dark Mode ist ebenfalls vorhanden.

Ergebnis
Der Vergabe-Radar ist jetzt als Dashboard verfügbar. Neben den Auswertungen gibt es eine durchsuchbare Liste einzelner Bekanntmachungen. Wo Dokumentlinks vorliegen, führt sie direkt zu den Vergabeunterlagen. Damit bleibt es nicht bei der statistischen Übersicht.
Für Unternehmen kann das eine erste Orientierung geben: Wo wird häufig beschafft, welche Leistungsbereiche kommen vor und welche Größenordnungen haben veröffentlichte Aufträge? Über die Liste lässt sich anschließend ein konkreter Eintrag näher ansehen. Die Größenstatistik beschreibt dabei die bietenden Unternehmen, nicht die Zuschlagsempfänger. Bekanntmachungen sind außerdem nicht automatisch unterschiedliche oder bereits vergebene Projekte.

Tech Stack
- Frontend TypeScript, React, Vite und Tailwind CSS
- Visualisierung Recharts, GeoJSON und SVG
- Backend Python, FastAPI, Uvicorn und requests
- Datenbank MariaDB, SQLAlchemy und PyMySQL
- Deployment Docker Compose, Traefik und nginx
- Entwicklung Claude Code, HTML-Bauplan und Deployment-Dokumentation
Live-Demo
Nach mehreren Wochen ohne Demo gibt es dieses Mal wieder eine.
👉 Live-Demo: vergabe-radar.hilkebuss.de
Fazit
Woche 38: ✅
Aus der Idee einer Projektstatistik ist ein nutzbares Dashboard für öffentliche Vergabedaten geworden. Die vorbereitete Dokumentation und der neue Deployment-Standard haben Planung und Bereitstellung unterstützt. Nach einer Weile wieder ein Dashboard zu bauen, hat mir besonders viel Spaß gemacht.
