# 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.