Übersicht
Live-Auswertungen aus Datenquellen — Charts und KPI-Kacheln, im Browser oder per Token-Link.
Dashboards sind Live-Auswertungen deiner Daten. Sie ziehen Werte aus einer Quelle (z. B. einem Google Sheet, einer DB-Query, einer API), formen sie in Charts oder KPI-Kacheln und zeigen sie im Browser an. Du brauchst keinen BI-Stack dafür — eine PHP-Config-Datei reicht.
Anwendungsfälle
- Tagesaktueller KPI-Stand an einer Wand-Anzeige im Lager: „Verpackt heute, Bestellungen offen, Lieferbar"
- Verkaufsverlauf im Vergleich Vorjahr / Vormonat
- System-Status-Dashboard mit Service-Verfügbarkeit, Cron-Status, Response-Zeiten
- Reporting für Stakeholder ohne TaskMonkey-Login (per Token-Link)
- Kunden-Cockpit mit ihren eigenen Live-Daten
Wo Dashboards leben
In deinem Workspace dashboards.php:
<?php
return [
'dashboards' => [
'product_sales' => [ /* … Konfig … */ ],
'kpi' => [ /* … Konfig … */ ],
'monitoring' => [ /* … Konfig … */ ],
],
];
Jeder Schlüssel ist der Slug des Dashboards — er steckt in der URL.
Aufrufen
| Wer | URL |
|---|---|
| Eingeloggte Mitarbeiter | /dashboards/view/<slug> |
| Externe Anzeige (Token) | /dashboards/view/<slug>?token=<token>&tenant=<workspace> |
Eine Übersicht aller Dashboards des Workspace gibt's unter /dashboards.
Zwei Dashboard-Typen
KPI-Dashboard
Eine Wand voller Kennzahl-Kacheln — heutiger Wert, Vergleich zu gestern/letzter Woche, Trend-Indikator. Gut für „auf einen Blick"-Anzeigen.
Siehe KPI-Dashboards.
Chart-Dashboard
Mehrere Liniendiagramme, Balken oder Zeitreihen — ideal für Vergleiche und Trends.
Siehe Chart-Dashboards.
Datenquellen
Primär kommt google_sheet zum Einsatz. Du gibst Slug + Sheet-Name an, die Plattform liest mit der hinterlegten OAuth-Connection:
'datasource' => [
'type' => 'google_sheet',
'slug' => 'sales-forecast',
'sheetName' => 'Tabellenblatt1',
'cache_ttl' => 900, // 15 Minuten zwischenspeichern (KPI-Refresh-Intervall)
'row' => 'last', // optional: nur die letzte Zeile (für KPI)
],
Wenn ein Chart Daten aus mehreren Sheets desselben Spreadsheets braucht (z.B. Schicht-Parameter + stündliche Ist-Werte), gibt es google_sheet_multi:
'datasource' => [
'type' => 'google_sheet_multi',
'slug' => 'kpi',
'sheets' => [
'forecast' => ['sheetName' => 'Versand-Forecast', 'cache_ttl' => 3600],
'actuals' => ['sheetName' => 'Tabellenblatt1', 'row' => 'last', 'cache_ttl' => 60],
],
],
Der slug referenziert ein konfiguriertes Google Sheet im Workspace. Anbindung läuft über deine OAuth-Verbindung.
Wenn du andere Quellen brauchst (Supabase, eigene API, DB-Gateway), sprich mit dem Betreiber — der Datasource-Mechanismus ist erweiterbar.
Zugriffskontrolle
'kpi' => [
'title' => 'KPI Dashboard',
'type' => 'kpi',
'access' => 'token', // login | token
'token' => '33fc8db8f7c4a49ba882f70b43e5e0e3d…',
// …
],
access |
Wer darf rein |
|---|---|
login (default) |
Nur eingeloggte Workspace-Mitglieder |
token |
Jeder mit dem korrekten token-Parameter in der URL |
Token-Dashboards sind ideal für Wand-Displays oder externe Stakeholder, die keinen Account brauchen sollen. Generiere lange, zufällige Tokens (32+ Hex-Chars) — sie funktionieren wie Passwörter und sind im URL eingebettet.
Daten-Refresh
Browser-seitig: KPI-Dashboards pollen im cache_ttl-Sekunden-Takt automatisch. Chart-Dashboards refreshen alle 15 Minuten. Du musst nicht manuell aktualisieren.
Server-seitig wird der Sheet-Inhalt im Cache gehalten und erst nach Ablauf der TTL neu von Google geholt. Gut für Quota-Schonung bei vielen gleichzeitigen Viewern.
PWA: als App installieren
Jedes Dashboard liefert ein eigenes PWA-Manifest (/dashboards/manifest/<slug>) mit start_url zurück zum Dashboard. Damit kann jedes Dashboard separat in Chrome/Safari als App installiert werden — eigenes Icon, eigener Name (= Dashboard-Title). Mehr in KPI-Dashboards.
Beispiel: Vollständige Mini-Konfig
<?php
return [
'dashboards' => [
'sales_today' => [
'title' => 'Tagesumsatz',
'description' => 'Live-Stand aus dem Shop',
'type' => 'kpi',
'access' => 'login',
'datasource' => [
'type' => 'google_sheet',
'slug' => 'live-kpi',
'sheetName' => 'Tabellenblatt1',
'cache_ttl' => 60,
'row' => 'last',
],
'tiles' => [
[
'title' => 'Umsatz heute',
'column' => 'Umsatz heute',
'compare_column' => 'Umsatz gestern',
'format' => 'currency',
'size' => 'large',
'span' => 3,
'compare_label' => 'vs. gestern',
'compare_mode' => 'higher_is_better',
],
[
'title' => 'Bestellungen heute',
'column' => 'Bestellungen heute',
'format' => 'number',
'size' => 'medium',
],
],
],
],
];
Aufrufen unter /dashboards/view/sales_today.
Weiter
- KPI-Dashboards — Tile-Optionen, Vergleichswerte, Forecast, Gruppen
- Chart-Dashboards — Series, Transformationen, Achsen-Typen