Files
3ddruckkalkulation/AGENTS.md
2026-07-02 17:12:10 +02:00

2.1 KiB

AGENTS.md — 3D-Druck Kostenkalkulation

Project structure

  • app.py — Flask web app
  • templates/index.html — Hauptseite mit Formular und Live-Ergebnissen
  • templates/invoice.html — Rechnungsseite mit PDF-Download
  • templates/settings.html — Einstellungsseite (Druckerabschreibung, Arbeitskosten, Marge, MwSt., Firmendaten, Logo)
  • static/style.css — Light-/Dark-Mode-Theming
  • static/script.js — Live-Berechnung + Auto-Save beim Tippen
  • druckkalkulation_config.yaml — auto-created/auto-saved state (in .gitignore)
  • proxmox-setup.sh — Proxmox LXC-Ersteinrichtung
  • proxmox-update.sh — Proxmox LXC-Update
  • .venv/ — virtual environment with all deps

Setup

source .venv/bin/activate

Dependencies: flask, fpdf2 (imported as fpdf), PyYAML. Alle in .venv.

Run

python app.py
# -> http://127.0.0.1:5001

Kein Test, Lint, Typecheck oder CI vorhanden. README.md und AGENTS.md enthalten die Projektdokumentation.

Routes

Methode Pfad Beschreibung
GET / Hauptseite mit Formular
POST /calculate JSON-Berechnung (AJAX)
POST /save_config Speichert Werte in YAML
GET /invoice Rechnungsseite
POST /invoice/pdf PDF-Download
POST /export TXT-Download
GET /settings Einstellungsseite (Druckerabschreibung, Arbeitskosten, Marge, MwSt.)
POST /upload_logo Logo hochladen (PNG/JPEG/WebP)
POST /delete_logo Logo loschen

Config

druckkalkulation_config.yaml wird beim Start gelesen und bei jeder Eingabe automatisch gespeichert (debounced 500ms via AJAX). Enthaelt alle Formularwerte plus dark_mode. Wird automatisch erstellt — kein manuelles Setup.

Wichtige Fallstricke

  • fpdf kommt via fpdf2-Paket, Import ist from fpdf import FPDF (alte API).
  • Saeamtliche UI-Texte sind Deutsch — Labels, Fehlermeldungen, Rechnungsinhalte.
  • Nur .venv/, druckkalkulation_config.yaml und static/logo.* werden ignoriert.
  • 3dDruckKalkulator.py ist die alte Tkinter-Version und wird nicht mehr verwendet (nicht im Tracking).