Skip to content

MauricePutinas/ExcelPulse

Repository files navigation

ExcelPulse

Aus chaotischen Excel- und CSV-Dateien werden in Sekunden lokale Business-Dashboards – ohne Cloud, ohne SaaS-Zwang, ohne teures ERP.

Python FastAPI React TypeScript Vite Docker License

ExcelPulse Dashboard – KPI-Karten, Diagramme, Warnsystem und Tabelle

Automatisch erkanntes Qualitäts-Dashboard aus einer hochgeladenen Excel-Datei – KPI-Karten, numerische Kennzahlen, Kategorie- & Zeitverlauf-Diagramme, Warnsystem und durchsuchbare Tabelle.


Warum ExcelPulse?

Viele kleine und mittlere Unternehmen steuern Produktion, Lager, Qualität und Wartung mit Excel – weil ERP-Systeme teuer, komplex oder überdimensioniert sind. Die Daten sind da, aber niemand sieht auf einen Blick, was kritisch ist.

ExcelPulse schließt diese Lücke: Datei rein, Dashboard raus. KPI-Karten, Diagramme, automatische Warnungen und teilbare Reports – alles lokal auf dem eigenen Rechner. Keine Daten verlassen die Maschine.

Features

📥 Import & automatische Erkennung

  • Upload von .xlsx und .csv (12 MB Limit, Endungs-Whitelist, Schutz vor leeren/defekten Dateien, UUID-basierte Ablage)
  • Automatisches CSV-Trennzeichen-Sniffing und Normalisierung (leere Zeilen entfernen, Spaltennamen trimmen) – auch unsaubere Tabellen werden sauber eingelesen
  • Spalten-Datentyp-Erkennung je Spalte: Zahl, Datum (über >55 %-Parse-Heuristik) oder Text, inklusive Zähler für leere Felder
  • Geschäftsrollen-Erkennung der Spalten (Auftrag, Kunde, Status, Menge, Preis, Umsatz, Datum, Liefertermin, Maschine, Mitarbeiter, Material, Priorität) per deutsch+englischem Keyword-Matching
  • Automatische Dashboard-Typ-Erkennung über fünf Typen: Produktion, Lager, Qualität, Wartung und Allgemein (Fallback) anhand gewichteter Regelsätze

📊 Analyse, KPIs & Visualisierung

  • KPI-Kennzahlen: Zeilen, Spalten, leere Felder gesamt, pro numerischer Spalte Summe/Durchschnitt/Min/Max, erkannte Rollen und Daten-Vorschau (bis 60 Zeilen)
  • Numerische Übersichtstabelle (Summe/Ø/Min/Max je Zahlenspalte)
  • Diagramme (Recharts): Kategorie-Balkendiagramm (Top-10 der ersten Textspalte), Zahlen-Diagramm (Summe + Ø für bis zu 8 Spalten) und Monats-Zeitverlauf (bis 18 Perioden, gruppierte Summe oder Anzahl) als Balken-, Linien- und Kreisdiagramm

🚨 Warnsystem

Automatische Erkennung kritischer Datenlagen (max. 20 Warnungen):

  • Leere Pflichtfelder in wichtigen Spalten
  • Negative Werte in Zahlenspalten
  • Doppelte Auftrags-IDs (Dubletten)
  • Kritische Status (offen, kritisch, gesperrt, verzögert, delayed, blocked)
  • Überfällige Liefertermine (Datumsabgleich gegen heute)

🔎 Interaktive Tabelle

  • Durchsuchbare, sortierbare und paginierte Datentabelle
  • Status- und Datumsfilter sowie bedingte Zellen-Einfärbung
  • Warnungs-Feed mit Rollen-Badges und Erfolg-/Warn-Zuständen

📤 Export & Reports

  • CSV-Export (/export/csv): liest die Quelldatei neu ein, normalisiert sie und liefert einen Download mit Originalnamen
  • HTML-Report (/report): in sich geschlossene, dark-themed Seite mit Datei-Metadaten, KPI-Box, Warnliste und 20-Zeilen-Vorschau – ideal zum Teilen

🗄️ Persistenz & Deployment

  • SQLite-Datenbank (zwei Tabellen, JSON-serialisierte Analyse), Schema wird beim Start automatisch erstellt; Analyse wird stets als „neueste pro Datei" geliefert
  • Lokale Dateiablage, keine externe Abhängigkeit zur Laufzeit
  • Docker Compose (Backend + Frontend) und Windows-One-Click-Start (start-excelpulse.bat / .ps1)
  • Responsives, dunkles Glass-UI (eigene Tailwind-Palette), durchgehend deutschsprachig

🧪 Developer-Tooling

  • Generator für synthetische Demo-Daten (tools/generate_demo_data.py)
  • Playwright-UI-Smoke-Test in Headless-Chrome (tools/smoke_ui.py)

🎬 Live-Demo

ExcelPulse Workflow – Demo-Daten laden und Dashboards erkunden

Ein Klick auf „Demo-Daten laden" – ExcelPulse erkennt Dashboard-Typ, KPIs, Charts und Warnungen automatisch und wechselt nahtlos zwischen Qualitäts-, Produktions- und Lager-Dashboard.

📸 Screenshots

Produktions-Dashboard – automatisch erkannt aus production_orders.xlsx (11 Spalten, 5 Warnungen):

Produktions-Dashboard mit KPIs, Diagrammen, Warnungen und Tabelle

HTML-Report – eigenständige, teilbare Seite (GET /api/files/{id}/report):

ExcelPulse HTML-Report mit Metadaten, Warnungen und Tabellen-Vorschau

Schnellstart

Windows (One-Click)

.\start-excelpulse.bat

Startet Backend (Port 8000) und Frontend und öffnet anschließend http://localhost:4173.

Docker

docker compose up --build

Backend läuft auf http://localhost:8000, Frontend auf http://localhost:5173.

Manuell

Backend

cd backend
python -m venv .venv
.venv\Scripts\activate        # Windows  (Linux/macOS: source .venv/bin/activate)
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000

Frontend

cd frontend
npm install
npm run dev                    # Entwicklung (Port 5173)
# oder: npm run build && npm run preview   (Port 4173)

💡 Über den „Demo-Daten laden"-Button in der Sidebar (oder POST /api/demo/seed) werden vier realistische Beispieldateien sofort eingelesen – perfekt zum Ausprobieren ohne eigene Daten.

API

Methode Endpoint Beschreibung
POST /api/upload .xlsx/.csv hochladen und analysieren
GET /api/files Alle Dateien (neueste zuerst)
GET /api/files/{id} Datei-Detail
GET /api/files/{id}/analysis Vollständige Analyse (KPIs, Charts, Warnungen)
GET /api/files/{id}/warnings Nur Warnungen
GET /api/files/{id}/export/csv Normalisierter CSV-Export
GET /api/files/{id}/report Eigenständiger HTML-Report
POST /api/demo/seed Demo-Daten einspielen

Interaktive API-Doku (Swagger UI) unter http://localhost:8000/docs.

Demo-Daten

Im Ordner demo-data liegen vier vollständig synthetische Datensätze mit Metallbau-Thema (keine echten Firmendaten):

Datei Format Dashboard-Typ
production_orders.xlsx Excel Produktion
inventory.csv CSV Lager
quality_checks.xlsx Excel Qualität
maintenance_tasks.csv CSV Wartung

Die Demo-Dateien enthalten absichtlich fehlerhafte Zeilen (negative Mengen, doppelte Auftrags-IDs, leere Pflichtfelder, kritische Status, überfällige Termine), um das Warnsystem zu demonstrieren – das sind keine echten Bugs.

Architektur

ExcelPulse
├── backend                 # FastAPI, Service-Layer, SQLite (ohne ORM)
│   └── app
│       ├── main.py         # API-Orchestrierung (8 Endpoints)
│       ├── config.py       # Pfade & Konstanten
│       ├── database.py     # SQLite-Init & Verbindung
│       ├── repositories.py # Datenzugriff
│       └── services        # upload, file_reader, detection, analysis,
│                           # warning, chart, export, demo
├── frontend                # React 19 + Vite + TypeScript + Tailwind + Recharts
│   └── src/modules         # api, app, dashboard, layout, upload
├── demo-data               # Synthetische Beispieldateien
├── tools                   # Demo-Generator & UI-Smoke-Test
├── docker-compose.yml
└── start-excelpulse.bat / .ps1

Designprinzipien: Jede Datei bleibt unter 250 Zeilen, Logik wird in kleine Module ausgelagert, komplexe Abläufe werden orchestriert statt in eine große Datei geschrieben.

Tech-Stack

Backend: Python 3.11 · FastAPI · uvicorn · pandas · openpyxl · python-multipart · httpx · SQLite Frontend: React 19 · Vite 7 · TypeScript 5.8 · Tailwind CSS 3 · Recharts 3 · lucide-react Tooling/Deployment: Docker & Docker Compose · Playwright (UI-Smoke-Test)

Roadmap

  • PDF-Export zusätzlich zum HTML-Report
  • Persistente Tabellenfilter
  • Mehrere Sheets pro Excel-Datei
  • KI-gestützte Spaltenzuordnung
  • Dashboard-Snapshots für Management-Reports
  • Konfigurierbare Backend-URL (VITE_API_URL) und produktionsreifes Frontend-Docker-Image

Lizenz

MIT © 2026 Maurice Putinas

About

Local-first web app that turns Excel/CSV files into business dashboards - KPIs, charts, warnings and reports. FastAPI + React, no cloud, no SaaS.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors