kfe-viewer-py/README.md
Julian Appel a19558fc6c KFE-Viewer: Web-Viewer für die ZVEH-Kalkulationshilfe
Python-Server ohne Abhängigkeiten, der die dBase/FoxPro-Dateien des
originalen KFE-Viewers (KFE.DBF, VORTEXT, GRUPPEN, Parameter, Muster-LVs)
direkt einliest, plus Single-Page-Frontend mit Live-Suche, Facettenfiltern,
einstellbarer Kalkulation (Lohnsätze, Materialzuschlag, DEL-Notiz),
Detailansicht und Merkliste mit CSV-Export.

Docker-Image enthält nur die App; die lizenzpflichtigen KFE-Daten werden
zur Laufzeit nach /data gemountet und sind nicht Teil des Repos.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 14:00:55 +02:00

3.4 KiB
Raw Permalink Blame History

KFE Viewer

Leichtgewichtiger Web-Viewer für die ZVEH-Kalkulationshilfe (KFE). Liest die dBase/FoxPro-Dateien des originalen KFE-Viewers direkt ein – keine Konvertierung, keine Abhängigkeiten außer Python ≥ 3.8.

Daten

Die KFE-Daten sind nicht in diesem Repository enthalten. Sie sind lizenzpflichtig (Herausgeber ZVEH, Vertrieb META Handelsgesellschaft). Benötigt wird das Datenverzeichnis des originalen KFE-Viewers, auf der KFE-CD unter 0_software/KFE_ViewerCD3/Daten. Darin liegen u. a. KFE.DBF/.FPT, VORTEXT.DBF/.FPT, GRUPPEN.DBF, STDPARAM.DAT, LOHNSTD.DBF und Projekt/*.prj.

Am einfachsten kopierst du den Inhalt nach ./data (per .gitignore ausgeschlossen) oder gibst den Pfad mit --data an.

Start

python server.py

Öffnet automatisch http://127.0.0.1:8765. Unter Windows geht auch ein Doppelklick auf start.bat.

Option Bedeutung
--data PFAD Verzeichnis mit KFE.DBF. Standard: ./data, alternativ ../2020-05-12-NEU/0_software/KFE_ViewerCD3/Daten
--port 8765 Port
--host 0.0.0.0 im LAN erreichbar machen
--no-browser Browser nicht automatisch öffnen
--static kfe.html eine einzelne HTML-Datei mit eingebetteten Daten erzeugen (ohne Server nutzbar, ca. 5 MB)

Alle Optionen lassen sich auch per Umgebungsvariable setzen: KFE_DATA, KFE_HOST, KFE_PORT, KFE_NO_BROWSER=1.

Docker

Das Image enthält nur die App (ca. 80 MB, Basis python:3.13-alpine, läuft als Nicht-root-Benutzer). Die Daten werden schreibgeschützt nach /data gemountet.

cp .env.example .env      # KFE_DATA_DIR auf das Datenverzeichnis setzen (Standard: ./data)
docker compose up -d --build

Danach erreichbar unter http://127.0.0.1:8765. Weitere Befehle: docker compose logs, docker compose down. Für Zugriff aus dem LAN in compose.yaml den Port auf "8765:8765" ändern.

Ohne Compose:

docker build -t kfe-viewer .
docker run -d -p 127.0.0.1:8765:8765 -v /pfad/zu/Daten:/data:ro --name kfe-viewer kfe-viewer

Funktionen

  • Live-Suche über Positionsnummer, Matchcode, Kurztext, Zusatztext und optional den Langtext (Vortext)
    • mehrere Begriffe = UND, -wort schließt aus, "genaue phrase"
    • 04.03 sucht nach Positionsnummer-Präfix
    • Umlaute/Komma egal: schutzkontakt findet „Schutzkontakt“, 3x1.5 findet „3x1,5“
  • Filter mit Trefferzahlen: Kapitel → Gruppe, Einheit, Lohngruppe, Rohstoff (Cu/Al), Änderungsjahr, Bauzeit- und Preisbereich
  • Kalkulation live: Stundensätze je Lohngruppe (Satz 1/2 oder eigene), Materialzuschlag, Bauzeitfaktor, aktuelle DEL-Notiz für Kupfer/Aluminium (Rohstoff-Mehr-/Minderpreis), netto/brutto
  • Detailansicht mit Langtext, Kalkulationsaufschlüsselung, den vier KFE-Kalkulationssätzen, Rohstoffdaten
  • Merkliste mit Mengen, Summen (Lohn/Material/netto/brutto/Bauzeit) und CSV-Export; die 60 Muster-LVs (Daten/Projekt/*.prj) lassen sich direkt übernehmen
  • URL enthält Suche und Filter (Lesezeichen/teilen), Tastatur: / Suche, ↑/↓ Auswahl, Enter Details, + merken, Esc schließen
  • Hell/Dunkel-Modus, mobil nutzbar

Preisformel

EP = Bauzeit[min] × Bauzeitfaktor × Stundensatz(LG) / 60  +  (Material + Rohstoffzuschlag) × (1 + Zuschlag %)
Rohstoffzuschlag = (DEL − Basis) / 100 × Cu-Zahl[kg/km] / 1000

Mit den Standardwerten (43,75 €/h, 20 %, Cu 550) stimmen die Preise mit dem GAEB-Export der KFE überein.