RedmineKit

Redmine Dashboards

Dashboards
5.0 (0)·New Installationen

Dashboards aus den gespeicherten Abfragen, die Sie ohnehin schon haben — ein Raster aus KPI-Kacheln, Tabellen und fünfzehn Diagrammtypen per Drag-and-drop, in SQL aggregiert und auf das beschränkt, was die betrachtende Person sehen darf.

$199 / ein Server

Mehrere Server: $399

Rückerstattung binnen 5 Arbeitstagen12 Monate UpdatesQuellcode enthalten
Ein Redmine-Charts-Dashboard in Redmine 6: eine KPI-Kachel mit 10.000 Tickets, ein Projekt-Ringdiagramm, Balken nach Priorität, ein Status-Ringdiagramm und ein Liniendiagramm der pro Monat angelegten Tickets.
Ein Live-Dashboard KPI-Kacheln, Ring-, Balken- und Liniendiagramme auf einem Board — jede Zahl in SQL aggregiert, aus Redmines eigenen, berechtigungsgeprüften Daten.
Widget-Typen
23
Diagrammvarianten
15
Redmine
4 · 5 · 6 · 7
Datenbanken
MySQL, MariaDB, PostgreSQL
Core-Patches
Keine

Bauen per Drag-and-drop

Ein Raster, dessen Kacheln sich frei verschieben und in der Größe ändern lassen und das sich beim Arbeiten selbst speichert. Ordnen Sie KPIs, Diagramme und Tabellen an, bis das Board die Geschichte erzählt, die Sie brauchen — ohne Layout-Datei, ohne Neuladen.

Fünfzehn Diagrammtypen

Balken, liegende Balken, gestapelte Balken, Linie, Mehrfachlinie, Fläche, Kreis, Ring, Radar, Polar, Tacho, Trichter, Heatmap, Treemap und Fortschrittsring — gezeichnet mit Apache ECharts, hell wie dunkel.

Ihre gespeicherten Abfragen, visualisiert

Richten Sie ein Widget auf eine gespeicherte Abfrage, und es übernimmt deren Filter — samt benutzerdefinierten Feldern, Beobachtern und Unterprojekten. Oder machen Sie aus der Abfrage mit einem Klick ein ganzes Board.

In SQL aggregiert

GROUP BY, COUNT, SUM und AVG laufen in der Datenbank, sodass hunderttausend Tickets gezählt und nicht instanziiert werden. Ergebnisse werden je Benutzer, Widget und aktiven Filtern zwischengespeichert.

Auf den Betrachter zugeschnitten

Jeder Lesezugriff beginnt bei Issue.visible(user), TimeEntry.visible(user) und Query.visible(user) — kein Diagramm kann also eine Summe aus einem Projekt zeigen, in dem die lesende Person kein Mitglied ist.

Filter, Aktualisierung und Absprung

Eine Filterleiste stellt das gesamte Board neu ein, ein Intervall je Dashboard hält eine Wandanzeige aktuell, und jeder Balken, jedes Segment und jede Zelle führt in die dahinterliegende Ticketliste.

So sieht es in Redmine aus

Jeder Screenshot hier stammt aus einer unveränderten Redmine-6-Installation, in deren plugins/ das Plugin einfach abgelegt wurde. Die Dashboards sitzen unter Redmines eigener Kopfzeile und seinen Menüs, denn genau dort laufen sie.

Ein Board bauen

Bearbeitungsmodus eines Dashboards: Jedes Widget zeigt Ziehgriffe und Ecken zum Skalieren, das Layout wird automatisch gespeichert.
Bearbeitungsmodus Schalter „Bearbeiten“ umlegen, und jedes Widget lässt sich verschieben und in der Größe ändern. Das Layout speichert sich dabei von selbst.
Der Dialog „Widget hinzufügen“: Widget-Typ, Datenquelle, optionale gespeicherte Abfrage, Kennzahl und Aggregation, ausgewählt aus Auswahlfeldern.
Widget hinzufügen Widget-Typ, Datenquelle und optional eine gespeicherte Abfrage wählen, dann Kennzahl und Aggregation festlegen. Niemand schreibt SQL.

Widgets

Die Auswahl der Widget-Typen mit fünfzehn ECharts-Varianten, KPI und Tabelle sowie Markdown, Notizen, HTML, iframe, Aktivitäten-Feed und letzten Tickets.
23 Widget-Typen Fünfzehn ECharts-Varianten plus KPI, Tabelle und sechs Inhalts-Widgets — Markdown, Notizen, HTML, iframe, Aktivitäten-Feed und letzte Tickets.
Das geöffnete Menü eines Widgets auf einem Dashboard, mit den Aktionen Aktualisieren, Konfigurieren und Löschen.
Widget-Aktionen Jedes Widget lädt für sich und hat sein eigenes Menü — ein Diagramm aktualisieren, ohne den Rest des Boards neu zu laden.

Teilen und wechseln

Der Freigabedialog eines Dashboards mit den Sichtbarkeiten privat, geteilt und öffentlich sowie Auswahlfeldern für Rollen, Gruppen und Projekte.
Freigabe Ein Board privat halten, für bestimmte Rollen, Gruppen oder Projekte freigeben oder für alle angemeldeten Benutzer öffnen — aufgelöst über Redmines Mitgliedschaften.
Der Dashboard-Umschalter in der Werkzeugleiste listet jedes sichtbare Board, mit Optionen zum Festlegen als Standard, Exportieren als JSON oder Anlegen eines neuen Boards.
Boards wechseln Der Umschalter in der Werkzeugleiste listet jedes Board, das Sie sehen dürfen. Legen Sie eines als Standard fest, exportieren Sie es als JSON oder beginnen Sie ein neues.

Die Abfrage ist bereits der Bericht

Nichts hier verlangt, dass Sie Ihre Daten ein zweites Mal beschreiben. Filtern Sie eine Ticketliste wie immer, speichern Sie sie, und diese gespeicherte Abfrage wird zu dem Bereich, über den ein Widget aggregiert — dieselbe Relation, mit der Redmine die Liste selbst darstellt.

Eine gespeicherte Abfrage, drei Wege auf ein Board
SchrittWas Sie tunWas Sie bekommen
1. Abfrage speichernDie Ticketliste filtern — benutzerdefinierte Felder, Beobachter, Unterprojekte — und auf Speichern klickenEine benannte Abfrage, sichtbar für die, mit denen Sie sie geteilt haben
2. Ein Widget darauf richtenDiese Abfrage im Widget-Dialog auswählenDatenquelle und eine sinnvolle Standardgruppierung, für Sie abgeleitet
3. Oder gleich das ganze BoardAuf „Aus Abfrage“ klickenEin Dashboard aus KPI-Kacheln und Diagrammen, an sie gebunden, in einer einzigen Anfrage

Aus Auswahlfeldern konfiguriert, nicht aus SQL

Ein Widget besteht aus Quelle, Dimension, Kennzahl und Aggregation. Gruppieren Sie Tickets nach Status, Priorität, Tracker, Bearbeiter oder einem beliebigen Datumsfeld in Tages-, Wochen-, Monats- oder Jahresbuckets; zählen Sie sie, summieren Sie geschätzte Stunden oder mitteln Sie den Fortschritt. Niemand im Team schreibt SQL für ein Diagramm — und weil es kein SQL zu schreiben gibt, gibt es auch keine Abfrage, die über die Berechtigungen der lesenden Person hinausgreifen könnte.

Der Dialog „Aus Abfrage“: eine gespeicherte Redmine-Abfrage auswählen, um ein Dashboard aus KPIs und Diagrammen zu erzeugen, das an ihre Filter gebunden ist.
Aus einer gespeicherten Abfrage Wählen Sie eine beliebige gespeicherte Abfrage und erhalten Sie ein fertiges Board aus KPIs und Diagrammen — Status, Priorität, Bearbeiter, Trend und eine Tabelle —, gebunden an ihre Filter.

Jedes Widget aus einem Formular konfiguriert

Jedes Widget, ob KPI, Balken oder Ring, wird im selben kurzen Formular eingerichtet: Titel und Typ, eine Datenquelle, optional eine gespeicherte Abfrage für die Filter, eine Kennzahl und eine Gruppierung mit Top-N. Wechseln Sie den Typ, und das Formular passt sich an.

Formular „Widget konfigurieren“ für eine KPI: Titel Tickets gesamt, Datenquelle Tickets, gespeicherte Abfrage, Kennzahl Ticketanzahl, Funktion count.
KPI-Kachel Eine Zahl: eine Kennzahl und eine Aggregation über eine gespeicherte Abfrage.
Formular „Widget konfigurieren“ für ein Balkendiagramm: Tickets nach Priorität, gruppiert nach Priorität, Top N 20.
Balkendiagramm Nach einer beliebigen Dimension gruppieren, etwa Priorität, und den langen Schwanz mit Top-N kappen.
Formular „Widget konfigurieren“ für ein Ringdiagramm: Tickets nach Status, gruppiert nach Status.
Ringdiagramm Dieselben Felder, ein anderer Typ. Beim Wechsel des Diagramms bleiben Ihre Dateneinstellungen erhalten.
Einstellungen des Plugins Redmine Charts: Caching aktiviert, Cache-Ablauf 300 Sekunden, Standardthema Hell, Intervall für automatische Aktualisierung 0.
Plugin-Einstellungen Caching, Cache-TTL, Standardthema und automatische Aktualisierung, auf Redmines eigener Einstellungsseite.

Eine Einstellungsseite für Administratoren

Unter Administration › Plugins › Redmine Charts legen Sie das Ergebnis-Caching je Benutzer fest, die Cache-TTL (5–86400 Sekunden, Standard 300), das Standardthema hell oder dunkel sowie ein Standardintervall für die automatische Aktualisierung, wobei 0 sie abschaltet. Die Seite ist Redmines eigene Einstellungsseite für Plugins.

23 Widget-Typen, und Platz für Ihre

Jeder Typ ist Metadaten aus einer Registry, sodass sich die Konfigurationsoberfläche aus der Deklaration des Widgets selbst aufbaut statt aus einem handgeschriebenen Formular je Diagramm.

Der Katalog, der mitgeliefert wird
FamilieTypenKonfiguriert mit
DiagrammeBalken, liegende Balken, gestapelte Balken, Linie, Mehrfachlinie, Fläche, Kreis, Ring, Radar, Polar, Tacho, Trichter, Heatmap, Treemap, FortschrittsringQuelle, Dimension, Kennzahl, Aggregation
KPI / ZahlEine einzelne aggregierte Kennzahl mit eigenem Filtercount · sum · avg · min · max
TabelleEin seitenweises Raster über dieselben berechtigungsgeprüften DatenSpaltenauswahl und Filter
InhaltMarkdown, Notizen, HTML, iframe, Aktivitäten-Feed, letzte TicketsFreier Text oder einer von Redmines eigenen Feeds

Gezeichnet mit Apache ECharts

Fünfzehn Varianten, für hell und dunkel gestaltet, beim Skalieren neu gezeichnet und auch auf einer Wandanzeige noch lesbar. Das Bundle liegt fertig gebaut im Paket, die Installation braucht also weder Node noch einen Build-Schritt.

Jedes Segment führt in die Tiefe

Ein Klick auf einen Balken, ein Kreissegment oder eine Heatmap-Zelle öffnet die Redmine-Ticketliste, gefiltert auf genau diese Tickets. Die Zahlen bleiben prüfbar, weil Sie immer bei den Zeilen dahinter landen können.

Globale Filter und automatische Aktualisierung

Eine Filterleiste stellt alle Widgets eines Boards auf einmal neu ein, und ein Aktualisierungsintervall je Dashboard hält den Bildschirm im Flur aktuell. Null schaltet die Aktualisierung ab.

Vorlagen und Blaupausen

Speichern Sie ein Board als wiederverwendbare Vorlage, duplizieren Sie es je Team, oder exportieren Sie es als JSON-Blaupause und importieren es in eine andere Instanz — von Staging nach Produktiv, ohne es neu zu bauen.

Ein Plugin, ein Board für jedes Team

Eine Delivery-Leitung, ein Support-Desk und ein einzelner Entwickler haben diese Boards jeweils in wenigen Minuten gebaut — aus gespeicherten Abfragen, die sie schon hatten.

Dashboard in voller Länge: KPI, Ringdiagramme, Balken nach Priorität, Monatstrend, Auslastung nach Bearbeiter und eine seitenweise Tickettabelle.
Portfolio-Überblick KPI, Ringdiagramme, Trend, Auslastung nach Bearbeiter und eine seitenweise Tickettabelle.
Dashboard „Mir zugewiesene Tickets“ mit einer KPI, einem Flächendiagramm und einem Status-Ringdiagramm.
Mir zugewiesene Tickets Ein persönliches Board mit Flächendiagramm und Status-Ring.
Dashboard „Angelegte Tickets“ mit einer KPI, einem Tracker-Ringdiagramm und Balken nach Priorität.
Angelegte Tickets Tracker-Mix, Verteilung nach Priorität und Status auf einen Blick.
Support-Dashboard: KPI-Kacheln für die Gesamtzahl der Tickets und die aufgewendete Zeit, ein Status-Ringdiagramm, Balken nach Priorität, Unter-Tracker und Modul sowie ein Liniendiagramm der pro Monat angelegten Tickets.
Support-Überblick Tickets, aufgewendete Zeit, Priorität, Unter-Tracker und Arbeitslast je Modul für einen Support-Zeitraum.
Support-Dashboard über ein ganzes Jahr: KPI-Kacheln für die Gesamtzahl der Tickets und die aufgewendete Zeit, ein Status-Ringdiagramm, Balken nach Priorität, Modul und Unter-Tracker sowie ein Liniendiagramm der pro Monat angelegten Tickets.
Das Support-Jahr in Zahlen Ticketaufkommen, aufgewendete Zeit sowie Verteilung nach Priorität und Modul, mit dem Verlauf Monat für Monat.

Zwei Quellen eingebaut, Ihre daneben

Tickets und Zeiterfassung bringen ihre Dimensionen und Kennzahlen von Anfang an mit, beide hinter Redmines eigenen Sichtbarkeitsbereichen. Eine Quelle, die ein anderes Plugin registriert, wird genauso behandelt.

QuelleDimensionenKennzahlen
TicketsStatus, Priorität, Tracker, Projekt, Bearbeiter, Autor, Kategorie, Version, erstellt, aktualisiert, FälligkeitsdatumTicketanzahl, geschätzte Stunden, Fortschritt
ZeiterfassungProjekt, Benutzer, Tätigkeit, DatumStunden, Anzahl Einträge
Ihre eigeneWas immer Sie registrierenWas immer Sie registrieren

Erweitern heißt registrieren, nicht patchen

Eine Datenquelle ist eine Klasse mit einem Namen, ihren Dimensionen, ihren Kennzahlen und einem berechtigungsgeprüften base_scope; ein Widget-Typ ist ein Hash. Registrieren Sie beides aus der init.rb Ihres eigenen Plugins mit RedmineCharts.register_data_source oder register_widget_type, und es erscheint sofort in der Konfigurationsoberfläche — mitsamt Filterung, Caching und Absprung in die Ticketliste. Dafür wird an diesem Plugin nichts geändert.

Niemand aggregiert, was er nicht lesen darf

Ein Dashboard ist ein schneller Weg, eine Zahl preiszugeben. Deshalb beginnt jeder Lesezugriff beim Sichtbarkeitsbereich der betrachtenden Person, statt mit einer Prüfung dagegen zu enden.

Erst Sichtbarkeit, dann Gruppierung

Issue.visible(user), TimeEntry.visible(user) und Query.visible(user) schränken die Relation ein, bevor eine einzige Zeile gezählt wird. Eine Summe aus einem Projekt, in dem Sie kein Mitglied sind, kann in keinem Widget auftauchen, weil diese Zeilen nie in der Menge waren.

Vier feingranulare Berechtigungen

Dashboards ansehen, anlegen, alle verwalten, Vorlagen verwalten — jede einzeln je Rolle vergebbar. Und alles bleibt aus, bis jemand das Dashboards-Modul für das Projekt aktiviert.

Teilen über Mitgliedschaften

Geben Sie ein Board für Benutzer, Gruppen, Rollen oder ganze Projekte frei. Jede Anfrage löst viewable_by? und editable_by? erneut über Redmines eigene Mitgliedschaften auf, statt über eine parallele Zugriffsliste, die aus dem Tritt gerät.

Nichts verlässt den Server

Das Frontend spricht ausschließlich mit der JSON-API dieses Plugins auf Ihrem eigenen Redmine, über die Sitzung und das CSRF-Token, die ohnehin da sind. Kein externer Dienst, kein Lizenz-Callhome, keine Telemetrie.

Gebaut für große Instanzen

Hunderttausend Tickets zu zählen sollte nicht bedeuten, hunderttausend Objekte zu laden. Hier bedeutet es das nicht.

Was passiert, wenn ein Board geöffnet wird
ThemaWie es gelöst ist
AggregationGROUP BY, COUNT, SUM und AVG laufen in SQL — Zeilen werden nie instanziiert, nur um gezählt zu werden
Breite DimensionenTop-N-Faltung hält die Antwort klein, wenn eine Dimension tausende Ausprägungen hat
Wiederholte AufrufeErgebnisse werden je Benutzer, Widget-Änderungszeit und aktiven Filtern über Rails.cache zwischengespeichert; die TTL ist eine Einstellung, Redis funktioniert unverändert
Ein langsames WidgetWidgets laden unabhängig voneinander, eine schwere Abfrage hält also nie das ganze Board auf
Fehlendes JS-BundleRails rendert die Daten jedes Widgets serverseitig als Rückfallebene, die Seite degradiert also, statt leer zu bleiben

Bewusst portabel, nicht zufällig

Die Unterstützung über Versionen und Datenbanken hinweg ist eingeplant — Migrationen, JSON-Speicherung und Datumsgruppierung wurden alle so geschrieben, dass sie die Unterschiede überstehen.

ThemaUnterstütztWie
Redmine4.x, 5.x, 6.x, 7.xDeklariert requires_redmine version_or_higher 4.0.0, ohne Core-Overrides, die veralten könnten
Rails5.2 → 8.0Migrationen zielen auf die Basis 5.2, die jede Version bis 8.0 versteht
Ruby2.5+Entspricht der Mindestanforderung von Redmine 4
DatenbankenMySQL, MariaDB, PostgreSQLJSON liegt in einfachen Textspalten — überall identisches DDL — mit einem Serializer, der je Rails-Version die passende Form wählt
DatumsgruppierungTag, Woche, Monat, JahrGruppiert über ein portables CAST(col AS DATE) und fasst dann in Ruby zu Buckets zusammen — kein herstellerspezifisches SQL
Migrationen erneut ausführenGefahrlosDefensiv geschrieben, sodass sich ein abgebrochenes Upgrade wiederholen lässt

Vom ersten Tag an skriptbar

Jeder Endpunkt liegt unter /redmine_charts/api, liefert JSON und erzwingt genau die Berechtigungen der Oberfläche — Boards lassen sich also aus der CI bereitstellen oder je Team erzeugen.

MethodePfadWas er tut
GET/dashboardsJedes Dashboard, das der Aufrufer sehen darf
POST/dashboardsEines anlegen
GET/dashboards/:idEin Dashboard samt seinen Widgets holen
PATCH/dashboards/:idName, Layout oder Einstellungen ändern
POST/dashboards/:id/duplicateEs klonen, Widgets inklusive
GET/dashboards/:id/exportEine JSON-Blaupause exportieren
POST/dashboards/importEin Board aus einer Blaupause anlegen
POST/dashboards/:id/widgetsEin Widget hinzufügen
GET/widgets/:id/dataAggregierte, berechtigungsgeprüfte Widget-Daten
GET/meta/data_sourcesQuellen, Dimensionen, Kennzahlen und die nutzbaren gespeicherten Abfragen

Was heute enthalten ist und was als Nächstes kommt

Die Roadmap-Punkte sind bewusst additiv — neue Datenquellen, Widget-Typen und Exportdienste —, keiner davon wird Sie also zu einer Migration zwingen. Sie stehen als Roadmap da, nicht als Funktionen, damit Sie auf Basis dessen kaufen, was heute im Paket ist.

FunktionStatus
Dashboards: anlegen, duplizieren, als Standard festlegen, exportieren und importierenVerfügbar
Skalierbares Drag-and-drop-Raster mit automatischem SpeichernVerfügbar
KPI, Tabelle und der vollständige ECharts-DiagrammsatzVerfügbar
Visuelle Widget-Konfiguration ohne SQLVerfügbar
Wiederverwendung gespeicherter Abfragen und Board-Erzeugung mit einem KlickVerfügbar
Globale Filter, die das ganze Board aktualisierenVerfügbar
Absprung vom Diagramm in die TicketlisteVerfügbar
Berechtigungsgeprüfte SQL-Aggregation und Caching je BenutzerVerfügbar
Freigabe, Vorlagen, helles und dunkles ThemaVerfügbar
Versions- und datenbankübergreifend, serverseitige RückfallebeneVerfügbar
Export als PDF, PNG und ExcelGeplant
Hintergrundjobs für sehr schwere BerichteGeplant
Live-Aktualisierung über WebSocketGeplant
Geplante Schnappschüsse per E-MailGeplant
Kiosk- / Wandanzeige-ModusGeplant
KI-Berichtsbaukasten in natürlicher SpracheGeplant
Widgets für Kalender, Burndown und Gantt-ZusammenfassungGeplant

Preise

Ein Server

$199

Eine Redmine-Instanz · unbegrenzt viele Benutzer · 12 Monate Updates.

Unlimited users12 months of updatesPriority email support
Lizenz kaufen

Mehrere Server

$399

Unbegrenzt viele Redmine-Server · unbegrenzt viele Benutzer · 12 Monate Updates.

Unlimited users12 months of updatesPriority email support
Lizenz kaufen
Kaufen