Flask-Web-App statt Tkinter: Live-Berechnung, PDF-Rechnung, Dark Mode, Tabler CSS
This commit is contained in:
51
AGENTS.md
Normal file
51
AGENTS.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# AGENTS.md — 3D-Druck Kostenkalkulation
|
||||
|
||||
## Project structure
|
||||
|
||||
- `app.py` — Flask web app (ersetzt das fruehere Tkinter-GUI)
|
||||
- `3dDruckKalkulator.py` — alte Tkinter-Version (nicht mehr verwenden)
|
||||
- `templates/index.html` — Hauptseite mit Formular und Live-Ergebnissen
|
||||
- `templates/invoice.html` — Rechnungsseite mit PDF-Download
|
||||
- `static/style.css` — Light-/Dark-Mode-Theming
|
||||
- `static/script.js` — Live-Berechnung + Auto-Save beim Tippen
|
||||
- `druckkalkulation_config.yaml` — auto-created/auto-saved state
|
||||
- `.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:5000
|
||||
```
|
||||
|
||||
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 |
|
||||
|
||||
## 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/` und `druckkalkulation_config.yaml` ignorieren (kein `.gitignore` vorhanden).
|
||||
- `3dDruckKalkulator.py` ist die alte Tkinter-Version und wird nicht mehr verwendet.
|
||||
Reference in New Issue
Block a user