From 8efc001bf7422cf84c334a542bedc3a0d6fb85b4 Mon Sep 17 00:00:00 2001 From: Eduard Iten Date: Sat, 21 Feb 2026 15:25:48 +0100 Subject: [PATCH] Added readme --- README.md | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/README.md b/README.md index e69de29..b70e04c 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,80 @@ +# cf-zeiten + +Eine FastAPI-Anwendung zur dynamischen Anzeige von Öffnungszeiten und Bemerkungen, die direkt aus Google Sheets gespeist werden. + +## Features + +* **Google Sheets Integration**: Daten werden via CSV-Export aus Google Sheets geladen. +* **Automatisches Caching**: Daten werden für 60 Minuten zwischengespeichert, um API-Anfragen zu minimieren. +* **Admin-Interface**: Zentrale Verwaltungsoberfläche zum Bearbeiten der Tabellen, Löschen des Caches und Testen der Ansicht. +* **Dynamische Filterung**: Anzeige kann über URL-Parameter nach Tagen (`?days=X`) oder Zeilen (`?lines=X`) gefiltert werden. +* **Typografische Optimierungen**: + * Automatisches Ersetzen von Bindestrichen durch En-Dashes (–) in Zeitangaben. + * UTF-8 Unterstützung für korrekte Darstellung deutscher Umlaute (z.B. "März"). + * Unterstützung von Markdown in den Bemerkungsfeldern. +* **Custom Fonts**: Einbindung der "Brittany Signature" Schriftart für Monatsüberschriften. + +## Installation + +1. Repository klonen: +```bash +git clone +cd cf-zeiten +``` + +2. Virtuelle Umgebung erstellen und aktivieren: +```bash +python -m venv venv +source venv/bin/activate # Linux/macOS +# oder +venv\Scripts\activate # Windows +``` + +3. Abhängigkeiten installieren: +```Bash +pip install -r requirements.txt +``` + +## Konfiguration + +Die Konfiguration erfolgt über die config.yaml im Hauptverzeichnis. Hier müssen die Google Sheet ID und die GIDs der einzelnen Tabellenblätter hinterlegt werden: +YAML + +```yaml +google_sheet: + sheet_id: "DEINE_SHEET_ID" + gid_times: "GID_DER_ZEITEN" + gid_remarks: "GID_DER_BEMERKUNGEN" + date_column: "Datum" + +processing: + days_to_show: 14 + +server: + host: "0.0.0.0" + port: 8000 + +``` + +## Verwendung +### Server starten +```bash +python main.py +``` + +### Endpunkte +- Admin-Bereich: `http://localhost:8000/` +- Öffentliche Tabelle: `http://localhost:8000/zeiten` +- Cache manuell leeren: `http://localhost:8000/cache-clear` + +### URL-Parameter für `/zeiten` +- `test=1`: Aktiviert einen dunklen Testhintergrund zur Vorschau. +- `days=X`: Zeigt die Einträge der nächsten X Tage an. +- `lines=X`: Zeigt exakt X Zeilen an (hat Vorrang vor days). + +## Projektstruktur +- `main.py`: Einstiegspunkt der Anwendung. +- `core/`: Logik für Konfiguration und Datenverarbeitung (`data_processor.py`). +- `routers/`: Definition der Web-Routen. +- `static/`: Statische Dateien (Fonts, CSS). +- `templates/`: Jinja2-Templates für Admin- und Tabellenansicht. \ No newline at end of file