Ein modernes, webbasiertes Tool zur einfachen Erstellung Γ€sthetisch ansprechender Diagramme. Mit einer intuitiven BenutzeroberflΓ€che kΓΆnnen Sie verschiedene Diagrammtypen auswΓ€hlen, Daten und Farben anpassen und das fertige Ergebnis in verschiedenen Formaten exportieren.
Die Hauptansicht der Custom Chart Composer Anwendung mit Sidebar fΓΌr Diagrammtypen, Vorschau-Bereich und Konfigurationspanel
- π Installation
- β¨ Features
- π― Verwendung
- π Diagrammtypen im Detail
- π Automatische Updates
- ποΈ Technologie-Stack
- π₯οΈ Lokale Entwicklung
- π Projektstruktur
- π§ Eigene Chart-Module erstellen
- π¨ Design-System
- π Umgebungsvariablen
- π§ͺ Testing
- π Lizenz
Die einfachste MΓΆglichkeit, Custom Chart Composer zu nutzen β keine Docker oder Node.js erforderlich!
Downloads:
- Alle Releases: GitHub Releases
- Neueste Version: v1.0.2
Installation:
- Laden Sie die neueste
Custom Chart Composer Setup <version>.exeherunter - FΓΌhren Sie die Setup-Datei aus
- Die Anwendung wird installiert und steht im StartmenΓΌ zur VerfΓΌgung
Hinweise:
- Der Installer enthΓ€lt Frontend und Backend β keine zusΓ€tzliche Runtime nΓΆtig
- Die App-Version in der Kopfzeile entspricht der Release-Version
- Keine Installation von Node.js, Docker oder anderen AbhΓ€ngigkeiten erforderlich
FΓΌr Server-Bereitstellung oder Container-Umgebungen.
Image herunterladen:
docker pull ghcr.io/timbornemann/custom-chart-composer:latestContainer starten:
docker run -d --name custom-chart-composer -p 3003:3003 ghcr.io/timbornemann/custom-chart-composer:latestZugriff:
- Web UI: http://localhost:3003
- API: http://localhost:3003/api
Bestimmte Version verwenden:
docker run -d --name custom-chart-composer -p 3003:3003 ghcr.io/timbornemann/custom-chart-composer:1.0.2Eigene Chart-Module hinzufΓΌgen:
Linux/Mac:
docker run -d --name custom-chart-composer -p 3003:3003 -v $(pwd)/modules:/app/backend/modules ghcr.io/timbornemann/custom-chart-composer:latestWindows (PowerShell/CMD):
docker run -d --name custom-chart-composer -p 3003:3003 -v %cd%\modules:/app/backend/modules ghcr.io/timbornemann/custom-chart-composer:latestWeitere Informationen:
- π¨ 40+ Diagrammtypen: Balken, Horizontal, Linie, FlΓ€che, Kreis, Donut, Radar, Streudiagramm, Blasen, Polar-FlΓ€che, Gestapelt, Multi-Line, Kombiniert, Gruppiert, Treppenstufen, Vertikal, Prozent, Heatmap, Treemap, Sankey, Trichter, Violin, Box-Plot, Kalender-Heatmap, Koordinaten, Matrix, Sunburst, Wasserfall und viele mehr
- π― Modulares Plugin-System: Neue Diagrammtypen einfach hinzufΓΌgen
- ποΈ Umfangreiche Anpassungen: Farben, Beschriftungen, Optionen
- π¦ Multiple Export-Formate: PNG, JPEG, HTML
- π Modernes Dark Theme: Professionelles UI-Design
- β©οΈ Undo & Redo inklusive Shortcuts: Γnderungen bequem per Toolbar oder mit Strg+Z / Strg+Shift+Z rΓΌckgΓ€ngig machen bzw. wiederholen
- πΎ Automatische Zwischenspeicherung: Deine Diagrammdaten werden lokal gepuffert, sodass beim Neuladen nichts verloren geht
- π³ Docker-Support: Einfache Bereitstellung
- β‘ Live-Vorschau: Echtzeit-Aktualisierung bei Γnderungen
Auswahl verschiedener Diagrammtypen mit Live-Vorschau
WΓ€hlen Sie in der Sidebar den gewΓΌnschten Diagrammtyp:
Balkendiagramme (9 Typen):
- Balkendiagramm: Klassische Wertevergleiche
- Horizontales Balkendiagramm: Balken von links nach rechts
- Gestapeltes Balkendiagramm: Mehrere DatensΓ€tze ΓΌbereinander
- Gruppiertes Balkendiagramm: Mehrere DatensΓ€tze nebeneinander
- Prozent-Balkendiagramm: Prozentuale Verteilung
- Radiales Balkendiagramm: KreisfΓΆrmige Anordnung
- Range-Balkendiagramm: Bereichswerte darstellen
- Segmentiertes Balkendiagramm: Aufgeteilte Balken
- Wasserfall-Diagramm: Kumulative Γnderungen
Liniendiagramme (9 Typen):
- Liniendiagramm: Trends und Zeitreihen
- FlΓ€chendiagramm: GefΓΌllte Linie fΓΌr Volumen
- Multi-Liniendiagramm: Mehrere Linien vergleichen
- Treppenstufen-Liniendiagramm: Gestufte VerlΓ€ufe
- Vertikales Liniendiagramm: Spezielle Darstellung
- GeglΓ€ttetes Liniendiagramm: Weiche Kurven
- Gestricheltes Liniendiagramm: Gestrichelte Linien
- Geschwungenes FlΓ€chendiagramm: Weich gefΓΌllte Kurven
- Stream-Graph: Gestapeltes FlΓ€chendiagramm
Kreisdiagramme (8 Typen):
- Kreisdiagramm: Anteile und VerhΓ€ltnisse
- Donutdiagramm: Modern mit Loch in der Mitte
- Polar-FlΓ€chendiagramm: KreisfΓΆrmige FlΓ€chendarstellung
- Halbkreis-Diagramm: Halbkreis-Donut
- Radiales Balkendiagramm: KreisfΓΆrmige Balken
- Sunburst-Diagramm: Hierarchische konzentrische Ringe
- Verschachteltes Donut: Mehrere Donuts
- Chord-Diagramm: Beziehungen zwischen EntitΓ€ten
Punktdiagramme (6 Typen):
- Streudiagramm: Korrelationen zwischen zwei Variablen
- Blasendiagramm: 3-dimensionale Daten mit Radius
- Heatmap-Diagramm: Matrix mit FarbintensitΓ€ten
- Kalender-Heatmap: GitHub-Style JahresΓΌbersicht
- Koordinatendiagramm: Geografische Koordinaten
- Matrix-Diagramm: Gewichtete Punkte
Spezialdiagramme (8 Typen):
- Radar-Chart: Mehrdimensionale Daten auf polaren Achsen
- Box-Plot-Diagramm: Statistische Verteilungen
- Kombiniertes Diagramm: Verschiedene Charttypen kombiniert
- Sankey-Diagramm: Flussdiagramm fΓΌr DatenflΓΌsse
- Tachometer-Diagramm: Aktuelle Werte visualisieren
- Treemap-Diagramm: Hierarchische verschachtelte Rechtecke
- Trichter-Diagramm: Prozessphasen darstellen
- Violin-Chart: Erweiterte statistische Verteilungen
Im Tab "Daten":
- Titel eingeben (optional)
- Beschriftungen (Labels) kommagetrennt eingeben
- Werte kommagetrennt eingeben
- Datensatz-Label definieren
Umfangreiche Styling-Optionen mit Farbpalette, Hintergrundfarbe und Hintergrundbild-Upload
Im Tab "Styling":
- Farbpalette: Benutzerdefinierte Farbzuweisung fΓΌr jeden Datenpunkt
- Hintergrundfarbe: Vordefinierte Optionen oder eigene Farbauswahl
- Hintergrundbild: Upload-Funktion fΓΌr PNG, JPG, GIF bis 5MB
- Transparente HintergrΓΌnde: FΓΌr Overlay-Darstellungen
Im Tab "Optionen":
- Legende ein/ausschalten
- Gitter anzeigen/verbergen
- Diagrammspezifische Optionen anpassen
- ExportgrΓΆΓe festlegen (Breite/HΓΆhe)
Umfangreiche Export-Funktionen mit verschiedenen Formaten und AuflΓΆsungen
Export-Formate:
- PNG: Hochqualitative Rasterbilder
- JPEG: Komprimierte Bilder fΓΌr Web
- HTML: Interaktive Diagramme fΓΌr Webseiten
AuflΓΆsungen:
- HD: 1280Γ720 Pixel
- Full HD: 1920Γ1080 Pixel
- 4K: 3840Γ2160 Pixel
- Quadrat: 1080Γ1080 Pixel
- Benutzerdefiniert: Eigene Dimensionen
ZusΓ€tzliche Optionen:
- Skalierung: Prozentuale GrΓΆΓenanpassung
- Transparenter Hintergrund: FΓΌr Overlay-Darstellungen
- JSON-Export: Konfiguration speichern und teilen
Die Custom Chart Composer bietet eine beeindruckende Vielfalt an Diagrammtypen fΓΌr alle Datenvisualisierungs-Anforderungen:
Klassisches Kreisdiagramm mit proportionalen Sektoren
Radiale Darstellung kategorialer Werte
Streudiagramm fΓΌr Korrelationsanalyse zwischen zwei Variablen
Radar-Chart fΓΌr mehrdimensionale Daten auf polaren Achsen
Intelligente Suchfunktion zur schnellen Navigation durch alle Diagrammtypen
πΈ Screenshots: Eine detaillierte Sammlung aller Screenshots mit Beschreibungen finden Sie im Ordner
screenshots/
Damit dein Container automatisch aktualisiert wird, kannst du Watchtower verwenden. Watchtower prΓΌft in Intervallen auf neue Images und aktualisiert betroffene Container.
Alle Container ΓΌberwachen:
docker run -d --name watchtower --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --interval 3600Nur diesen Container aktualisieren:
docker run -d --name watchtower --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower custom-chart-composer --interval 3600Einmalige PrΓΌfung (danach endet der Watchtower-Container):
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower custom-chart-composer --run-onceTipp: Benenne deinen Container genau
custom-chart-composer, damit die obigen Befehle 1:1 funktionieren.
| Komponente | Technologie |
|---|---|
| Frontend | React + Vite + TailwindCSS |
| Backend | Node.js + Express |
| Charts | Chart.js |
| Export | Canvas (Node) |
| Container | Docker |
Windows:
# Doppelklick auf start-dev.bat
# oder im Terminal:
start-dev.batLinux/Mac:
# AusfΓΌhrbar machen
chmod +x start-dev.sh
# Starten
./start-dev.shSchritt 1: Backend starten
cd backend
npm install
npm run devWarten Sie bis "Server running on port 3003" angezeigt wird
Schritt 2: Frontend starten (neues Terminal)
cd frontend
npm install
npm run devWarten Sie bis "Local: http://localhost:5173" angezeigt wird
Schritt 3: Anwendung ΓΆffnen
- Γffnen Sie http://localhost:5173 in Ihrem Browser
- Die Anwendung ist jetzt bereit!
# Repository klonen
git clone https://github.com/timbornemann/Custom-Chart-Composer.git
cd Custom-Chart-Composer
# Mit Docker Compose starten
docker-compose up --build
# App ΓΆffnen unter http://localhost:3003Voraussetzungen:
- Node.js 20+ (fΓΌr lokale Entwicklung)
- Docker & Docker Compose (fΓΌr Container-Deployment)
- npm oder yarn
Die Desktop-Variante nutzt denselben Express-Server und das gebaute Vite-Frontend wie die Docker- bzw. Web-Version. Alle Γnderungen an Backend, Frontend oder den Modulen wirken sich somit automatisch auch auf die Electron-App aus.
Vorbereitung:
# AbhΓ€ngigkeiten installieren
cd backend
npm install
cd ../frontend
npm install
cd ../desktop/electron
npm installWindows-Build erstellen:
cd desktop/electron
npm run build:winDer fertige Installer befindet sich im Verzeichnis desktop/electron/dist.
Entwicklung im Desktop-Kontext:
# Frontend-Dev-Server starten
cd frontend
npm run dev
# In einem zweiten Terminal das Electron-Fenster ΓΆffnen
cd ../desktop/electron
npm run devHinweis: Die Electron-App startet automatisch den Express-Server auf einem freien lokalen Port und ΓΌbergibt diesen intern an das Frontend. Anpassungen am Backend (z. B. neue Module im Ordner
backend/modules) stehen sowohl in Docker als auch in der Desktop-App direkt zur VerfΓΌgung.
Custom-Chart-Composer/
βββ backend/
β βββ controllers/ # API-Controller
β βββ routes/ # API-Routes
β βββ services/ # Business Logic
β βββ modules/ # Chart-Module (40+ Diagrammtypen)
β β βββ areaChart.js
β β βββ barChart.js
β β βββ boxPlotChart.js
β β βββ bubbleChart.js
β β βββ calendarHeatmap.js
β β βββ candlestickChart.js
β β βββ chordChart.js
β β βββ coordinateChart.js
β β βββ curvedAreaChart.js
β β βββ dashedLineChart.js
β β βββ donutChart.js
β β βββ funnelChart.js
β β βββ gaugeChart.js
β β βββ groupedBarChart.js
β β βββ heatmapChart.js
β β βββ horizontalBarChart.js
β β βββ lineChart.js
β β βββ matrixChart.js
β β βββ mixedChart.js
β β βββ multiLineChart.js
β β βββ nestedDonutChart.js
β β βββ percentageBarChart.js
β β βββ pieChart.js
β β βββ polarAreaChart.js
β β βββ radarChart.js
β β βββ radialBarChart.js
β β βββ rangeBarChart.js
β β βββ sankeyChart.js
β β βββ scatterChart.js
β β βββ segmentedBarChart.js
β β βββ semiCircleChart.js
β β βββ smoothLineChart.js
β β βββ stackedBarChart.js
β β βββ steppedLineChart.js
β β βββ streamGraph.js
β β βββ sunburstChart.js
β β βββ treemapChart.js
β β βββ verticalLineChart.js
β β βββ violinChart.js
β β βββ waterfallChart.js
β βββ package.json
β βββ server.js
β
βββ frontend/
β βββ src/
β β βββ components/ # React-Komponenten
β β β βββ Layout/
β β β βββ ChartPreview.jsx
β β β βββ ChartConfigPanel.jsx
β β β βββ ExportPanel.jsx
β β βββ hooks/ # Custom React Hooks
β β βββ services/ # API-Services
β β βββ App.jsx
β β βββ main.jsx
β βββ package.json
β βββ vite.config.js
β
βββ docker-compose.yml
βββ Dockerfile
βββ screenshots/ # Screenshots der Anwendung
β βββ README.md # Detaillierte Screenshot-Beschreibungen
β βββ *.png # Screenshots verschiedener Diagrammtypen
βββ Guideline.md # Technische Spezifikation
βββ README.md
Neue Diagrammtypen kΓΆnnen durch HinzufΓΌgen eines Moduls in backend/modules/ erstellt werden:
// backend/modules/customChart.js
import Chart from 'chart.js/auto';
export default {
id: "custom",
name: "Mein Custom Chart",
library: "chartjs",
configSchema: {
labels: { type: "array", default: ["A", "B", "C"] },
values: { type: "array", default: [10, 20, 30] },
colors: { type: "array", default: ["#FF0000", "#00FF00", "#0000FF"] },
backgroundColor: { type: "string", default: "#0F172A" },
width: { type: "number", default: 800 },
height: { type: "number", default: 600 },
options: {
showLegend: { type: "boolean", default: true }
}
},
render: async (ctx, config, canvas) => {
// Chart.js Rendering-Logik
const chartConfig = {
type: 'bar', // oder 'line', 'pie', etc.
data: { /* ... */ },
options: { /* ... */ }
};
new Chart(ctx, chartConfig);
}
};Nach dem HinzufΓΌgen wird das Modul automatisch geladen und in der UI verfΓΌgbar sein.
| Methode | Route | Beschreibung |
|---|---|---|
| GET | /api/charts |
Liste aller verfΓΌgbaren Diagrammtypen |
| POST | /api/render |
Rendert ein Diagramm |
| POST | /api/export |
Exportiert Diagramm in gewΓ€hltem Format |
| GET | /api/plugins/reload |
LΓ€dt Chart-Module neu |
| GET | /health |
Health-Check |
Beispiel: Export Request
POST /api/export
Content-Type: application/json
{
"chartType": "bar",
"config": {
"labels": ["Jan", "Feb", "MΓ€r"],
"values": [10, 20, 30],
"colors": ["#4ADE80", "#22D3EE", "#F472B6"],
"backgroundColor": "#0F172A",
"width": 800,
"height": 600
},
"format": "png",
"transparent": false
}| Element | Farbe | Hex |
|---|---|---|
| Hintergrund | Dunkel | #0F172A |
| SekundΓ€rflΓ€che | Dunkelgrau | #1E293B |
| Akzentfarbe 1 | Blau | #3B82F6 |
| Akzentfarbe 2 | Cyan | #22D3EE |
| Text Hell | WeiΓ | #F8FAFC |
| Text Grau | Hellgrau | #CBD5E1 |
- Schriftart: Inter (Google Fonts)
- Γberschriften: 600 Gewicht, 1.5-2rem
- FlieΓtext: 400 Gewicht, 0.875-1rem
PORT=3003
NODE_ENV=developmentVITE_API_URL=http://localhost:3003/api# Backend Tests (wenn implementiert)
cd backend
npm test
# Frontend Tests (wenn implementiert)
cd frontend
npm testDieses Projekt ist unter der MIT-Lizenz lizenziert - siehe LICENSE Datei fΓΌr Details.