Added readme
This commit is contained in:
80
README.md
80
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 <repository-url>
|
||||||
|
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.
|
||||||
Reference in New Issue
Block a user