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

57 lines
2.1 KiB
Markdown

# 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
```bash
source .venv/bin/activate
```
**Dependencies**: `flask`, `fpdf2` (imported as `fpdf`), `PyYAML`. Alle in `.venv`.
## Run
```bash
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).