51 lines
1.8 KiB
Markdown
51 lines
1.8 KiB
Markdown
# 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.
|