Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

AltStyle によって変換されたページ (->オリジナル) /