Dashboard 2.0: vom internen Projekt zur selbst gehosteten Plattform für Retail-Performance
Dashboard 2.0 ist die vollständige Weiterentwicklung des Projekts, das ich in der ersten Version meines Performance-Dashboards vorgestellt hatte. Das Ziel ist gleich geblieben: operative Daten wie Umsatz, Tickets und Service/Ticket in verständliche und wirklich nützliche Informationen zu verwandeln. Die Architektur hingegen hat sich grundlegend verändert.
Flask
SQLite / SQLAlchemy
Plotly
Multi-Branch
Self-Hosted
MIT-Lizenz
Im März 2025 hatte ich die erste Version des Dashboards veröffentlicht: eine Webanwendung, die Excel-Tabellen ersetzen und die Analyse der Performance einer Filiale vereinfachen sollte. In diesem Artikel hatte ich bereits ein zukünftiges Dashboard 2.0 angekündigt.
Die neue Version ist nicht nur ein Redesign. Ich habe das Projekt weniger als einzelne Installation und stärker als konfigurierbare Plattform neu gedacht: mehrere Filialen, anpassbare Unternehmensidentität, Benutzer und Rollen, unabhängige Einstellungen, Protokollierung von Vorgängen, Backups und eine geführte Ersteinrichtung.
Eine Klarstellung zur ursprünglichen Roadmap.
In der ersten Version hatte ich auch geplant, die manuelle Dateneingabe durch eine automatische Datenintegration vollständig zu ersetzen. Für die öffentliche Version 2.0 habe ich mich entschieden, zunächst Architektur, Filialverwaltung, Sicherheit, Konfiguration und Reporting zu konsolidieren. Die manuelle Eingabe der Kennzahlen bleibt daher verfügbar; eine Datenautomatisierung ist eine mögliche spätere Weiterentwicklung.
Was ist Dashboard 2.0?
Dashboard 2.0 ist eine mit Python und Flask entwickelte, selbst gehostete Webanwendung zum Erfassen, Organisieren und Analysieren operativer Kennzahlen einer oder mehrerer Verkaufsstellen.
Das System verwendet drei zentrale Kennzahlen: erzielter Umsatz, Anzahl der Tickets und das Verhältnis Service/Ticket. Die Daten lassen sich wöchentlich, monatlich und jährlich darstellen sowie in eigenen Diagrammen und Vergleichsansichten gegenüberstellen.
Da die Anwendung selbst gehostet wird, kann sie auf einem lokalen Rechner, einem Linux-Server, einer virtuellen Maschine oder kompatibler Hardware wie einem Raspberry Pi installiert werden. Dadurch bleiben Umgebung und Daten unter eigener Kontrolle.

Die wichtigsten Funktionen der neuen Version
Wöchentliches Dashboard
Tägliche Darstellung der Kennzahlen mit Wochenübersicht, Wochenauswahl und Navigation zwischen den Zeiträumen.
Monatsansicht
Aggregation der Monatsdaten mit Summen, Durchschnittswerten und einer Struktur für einen schnellen Überblick über die Performance.
Jahresanalyse
Monatssummen und Jahresübersicht für Umsatz, Tickets und Service/Ticket mit Auswahl des gewünschten Jahres.
Interaktive Diagramme
Plotly verwandelt die Kennzahlen in dynamische Diagramme und erleichtert das Erkennen von Trends.
Zeitraumvergleich
Monate und Jahre können verglichen werden, um Veränderungen und Unterschiede zwischen Zeiträumen sichtbar zu machen.
PDF-Berichte
Die wichtigsten Ansichten lassen sich mit WeasyPrint und über Kaleido exportierten Diagrammen in PDF-Berichte umwandeln.
Mehrere Filialen
Eine Installation kann mehrere Verkaufsstellen verwalten, wobei die Kennzahlen jeder Filiale getrennt bleiben.
Benutzer und Rollen
Die Anwendung unterscheidet zwischen normalen Benutzern und Administratoren und schützt administrative Vorgänge.
Backup und Audit-Log
Exportierbare lokale Backups, kontrollierte Wiederherstellung und Protokollierung der wichtigsten administrativen Vorgänge.
Von einer einzelnen Filiale zur Multi-Branch-Plattform
Eine der wichtigsten architektonischen Änderungen betrifft die Filialverwaltung. In Version 2.0 ist jeder Kennzahleneintrag mit seiner Filiale verknüpft. Der Administrator kann über die Auswahl der aktiven Filiale zwischen den Verkaufsstellen wechseln.
Jede Filiale besitzt außerdem eigene Einstellungen, darunter Sprache, Design, Anzeige des Sonntags, Anzeigename und Logo. Auf Organisationsebene lassen sich zusätzlich Unternehmensname und verwendete Währung festlegen.
Dadurch wird das Projekt White-Label-fähig: Es ist im Code nicht an ein bestimmtes Unternehmen gebunden und kann beim ersten Start individuell konfiguriert werden.
Von täglichen Daten zur Performance-Analyse
Das Grundprinzip des Dashboards ist einfach: Operative Daten werden erst dann nützlich, wenn sie im richtigen Kontext gelesen werden können. Deshalb stellt Version 2.0 verschiedene Analyseebenen bereit.
| Ansicht | Ziel | Kennzahlen |
|---|---|---|
| Wöchentlich | Tägliche operative Kontrolle | Umsatz, Tickets, Service/Ticket |
| Monatlich | Aggregierte Monatsanalyse | Summen und Durchschnittswerte |
| Monatlicher Trend | Tägliche Entwicklung darstellen | Plotly-Diagramme |
| Monatsvergleich | Mehrere Zeiträume vergleichen | Umsatz, Tickets, Service/Ticket |
| Jährlich | Strategischer Überblick über zwölf Monate | Monats- und Jahressummen |
| Jahresvergleich | Zwei Jahre vergleichen | Diagramme und KPI-Übersicht |
Administration, Rollen und Nachvollziehbarkeit
Der Administrationsbereich gehört zu den Aspekten, die Dashboard 2.0 am stärksten vom ursprünglichen Prototyp unterscheiden.
Administratoren können Benutzer erstellen und bearbeiten, Rollen zuweisen, Filialen konfigurieren, Organisationseinstellungen ändern und die Datenbank verwalten. Das bei der Einrichtung erstellte Eigentümerkonto ist vor bestimmten kritischen Vorgängen geschützt.
Passwörter werden nicht im Klartext gespeichert: Die Anwendung verwendet die von Werkzeug bereitgestellten Hashing-Funktionen.
Audit-Log
Die wichtigsten administrativen Vorgänge werden in einem Audit-Log gespeichert. So lässt sich nachvollziehen, wer eine bestimmte Änderung vorgenommen hat und welche Aktion ausgeführt wurde. Das Protokoll kann außerdem gefiltert und exportiert werden.
Backup und Wiederherstellung
Die Datenbank und hochgeladene Dateien können in ein ZIP-Archiv exportiert werden. Bei einer Wiederherstellung wird das Administratorkennwort erneut angefordert. Außerdem erstellt das System eine Sicherheitskopie, bevor die vorhandene Datenbank ersetzt wird.
Privacy by Design im öffentlichen Repository
Das GitHub-Repository enthält ausschließlich den Anwendungscode. Lokale Datenbanken, Backups, Konfigurationsdateien mit geheimen Werten, hochgeladene Logos und operative Daten sind nicht Bestandteil des öffentlichen Repositorys.
Technische Architektur
Auch der Code wurde in Version 2.0 modularer organisiert. Die Anwendung trennt Modelle, Services, Authentifizierung, Ersteinrichtung, Dashboard und Administration mithilfe einer auf Blueprints basierenden Flask-Struktur.
Datenmodell
| Entität | Aufgabe |
|---|---|
| Organization | Name und Währung der Organisation |
| Branch | Filialen, Code, Anzeigename und Logo |
| Settings | Sprache, Design und Filialeinstellungen |
| MetricEntry | Der Filiale zugeordnete tägliche Kennzahlen |
| User | Konto, Passwort-Hash, Rolle und Status |
| AuditLog | Protokollierung administrativer Vorgänge |
Mehrsprachige Benutzeroberfläche
Die Anwendung verwendet Flask-Babel und enthält derzeit Benutzeroberflächen auf Englisch, Deutsch und Französisch. Die Sprache wird zusammen mit dem hellen oder dunklen Design auf Filialebene konfiguriert.
Installation und selbst gehosteter Betrieb
Das Projekt benötigt Python 3.11 oder neuer. Für einen lokalen Test genügt es, eine virtuelle Umgebung zu erstellen, die Abhängigkeiten zu installieren und die Anwendung zu starten.
git clone https://github.com/ITALIANJOB97/Dashboard-2.0.git
cd Dashboard-2.0
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python run.py
Beim ersten Start erscheint eine geführte Einrichtung. Dort werden Unternehmensname, Währung, Administrator-Zugangsdaten und die zu konfigurierenden Filialen abgefragt.

Das Repository enthält außerdem die Datei requirements-raspberry.txt mit speziellen Hinweisen für eine Installation unter Raspberry Pi OS.
Hinweis für den Produktivbetrieb.
Der in Flask integrierte Entwicklungsserver eignet sich für die lokale Entwicklung. Für die Veröffentlichung im Netzwerk sollten ein produktionsgeeigneter WSGI-Server, ein privater und stabiler SECRET_KEY sowie eine HTTPS-Verbindung verwendet werden.
Was hat sich gegenüber dem ursprünglichen Dashboard geändert?
| Bereich | Erste Version | Dashboard 2.0 |
|---|---|---|
| Struktur | Auf eine Filiale ausgerichtetes Projekt | Multi-Branch-Architektur |
| Konfiguration | Stärker an die Installation gebunden | Geführte Ersteinrichtung |
| Branding | Begrenzt | Unternehmensname, Währung und Filiallogo |
| Sprachen | Statischere Benutzeroberfläche | EN / DE / FR mit Flask-Babel |
| Design | Eine grafische Einstellung | Dunkles und helles Design |
| Administration | Grundlegende Funktionen | Benutzer, Filialen, Einstellungen, Datenbank und Audit |
| Backup | Keine zentrale Funktion | Integrierter Export und Restore |
| Verteilung | Internes persönliches Projekt | Öffentliches Repository und MIT-Lizenz |
Der nächste Schritt
Dashboard 2.0 ist eine deutlich solidere Grundlage als die erste Version, dennoch betrachte ich das Projekt nicht als abgeschlossen. Die aktuelle Architektur ermöglicht es, die Anwendung weiterzuentwickeln, ohne wieder bei null beginnen zu müssen.
Für mich steht dieses Projekt vor allem für den Übergang von einer Anwendung, die ein bestimmtes Problem löst, zu einer Software mit einer allgemeineren, konfigurierbaren und wiederverwendbaren Struktur.
Dashboard 2.0 ist auf GitHub verfügbar
Ich habe den Quellcode des Projekts auf GitHub veröffentlicht. Das Repository enthält die Anwendung, ihre Abhängigkeiten, Installationsanweisungen und die MIT-Lizenz.
Die Screenshots auf dieser Seite verwenden ausschließlich Demodaten und zeigen keine echten Unternehmensdaten.






