Add Radeln ohne Alter ride-coordination demo (Django + HTMX + Leaflet)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
steffen1971 2026-06-20 21:20:17 +02:00
commit 5d967c68b5
40 changed files with 2040 additions and 0 deletions

51
README.md Normal file
View file

@ -0,0 +1,51 @@
# Radeln ohne Alter — Koordinations-Demo
Schlanke Web-App, die die Rikscha-Fahrten des Projekts *Radeln ohne Alter*
(Saarbrücken-Malstatt) koordiniert — als Ablösung der bisherigen WhatsApp-Gruppe.
Dieser Stand ist eine **Demo** zum Draufschauen und Iterieren, kein Produktivsystem.
## Was die Demo zeigt
- **Fahrt-Lebenszyklus** als Herzstück: `Angefragt → Geplant → Übernommen → Erledigt`
(löst die WhatsApp-Schwächen Überblick / Historie / Auswertung auf einmal).
- **Rollen** mit unterschiedlicher Sicht: Koordination, Pilot, Besteller.
- **Karte** (Leaflet + OpenStreetMap): Abholorte als Pins, je Fahrt eine berechnete
Route (öffentlicher OSRM-Demo-Server).
- **Rollen-Sichtbarkeit**: Pflege-Hinweise sieht nur die zugeteilte Pilot:in bzw. die Koordination.
## Stack
Django 6 · server-rendered Templates + HTMX (für Inline-Aktionen) · Leaflet · SQLite · `ruff`.
Bewusst „langweilig" und abhängigkeitsarm.
## Lokal starten
```bash
python -m venv .venv
.venv/Scripts/python -m pip install -r requirements.txt # Windows
python manage.py migrate
python manage.py seed_demo
python manage.py runserver
```
Dann http://127.0.0.1:8000/ öffnen und eine Rolle per Demo-Button wählen
(Login ohne Passwort, nur bei `DEBUG`). Klassischer Login: Nutzer `koordinator`,
`felix`, `anna`, `pflege`, Passwort `demo`.
## Code-Qualität
```bash
ruff check .
ruff format .
python manage.py test
```
## Struktur
- `config/` — Projekt (Settings, URLs).
- `rides/` — die ganze Fachlogik:
- `models.py` — Datenmodell + Status-Übergänge + Sichtbarkeitsregeln.
- `services.py` — Routing (austauschbar: OSRM-Demo → später OpenRouteService/self-hosted).
- `views.py`, `urls.py`, `forms.py`, `templates/`, `static/`.
- `management/commands/seed_demo.py` — Demo-Daten.
- `tests/` — Status-Lebenszyklus + Rollen-Sichtbarkeit.