Zurück zu den Projekten

Hausheld

Workflow-Plattform für die mobile Pflege in NRW — Planung, GPS-verifizierter Check-in/out, digitale Signaturen, Entlastungsbetrag-Tracking. Mit Fokus auf Datenintegrität und EU/GDPR.

Ausgangslage

Ein Pflegedienst mit 200 Mitarbeitern in NRW arbeitete mit manuellen Papierplänen, Nachweisen auf Papier und strengen regulatorischen Anforderungen (GDPR, SGB XI) für Stammdaten und Abrechnung.

Lösung

Ein verteiltes Ökosystem: eine FastAPI-Backend (PostgreSQL + PostGIS), eine Next.js-PWA für Mitarbeiter im Einsatz (Plan, GPS-Check-in/out, Kundensignatur) und ein Vite+React-Admin-Dashboard (Kalender, Krankmeldungen, Vertretungsvorschläge, Budget-Warnungen, SGB-XI-CSV-Export, Audit-Log). PostGIS liefert distanzbasierte Vertretungsvorschläge; ein strikter Schicht-Zustandsautomat und ein nur anhängendes Audit-Log unterstützen die Compliance.

Funktionen

  • Mobile PWA: Mitarbeiter sehen ihren Plan, Check-in/out mit GPS, Kundensignatur (Leistungsnachweis).
  • Admin dashboard: Kalender, Krankmeldungen, Vertretungsvorschläge, Budget-Warnungen, SGB-XI-CSV-Export, Audit-Log.
  • Substitution engine: Bis zu 3 Vertreter nach Entfernung (PostGIS) und wöchentlicher Kapazität.
  • Budget & billing: Monatsbudget pro Klient, 15%-Warnschwelle, CSV-Export für Kostenträger (SGB XI).
  • Audit trail: Nur anhängendes Log jedes Zugriffs auf Klienten- (bzw. Gesundheits-)Daten; lesendes API.

Architektur

Hausheld ist ein verteiltes Ökosystem: eine API, zwei Frontends. Alle Änderungen laufen über das Backend mit JWT und rollenbasierter Zugriffskontrolle (Admin vs. Mitarbeiter).

flowchart LR
  subgraph Clients
    PWA["Mobile PWA - Next.js"]
    Admin["Admin Dashboard - Vite + React"]
  end
  subgraph Backend["Backend API"]
    API["FastAPI / PostgreSQL + PostGIS"]
  end
  PWA <-->|JWT| API
  Admin <-->|JWT| API
  • Backend: Single Source of Truth. FastAPI, SQLAlchemy 2 (async), PostgreSQL + PostGIS, Alembic. Erzwingt RBAC, verschlüsselt Gesundheitsdaten, schreibt ins Audit-Log.
  • Mobile: Next.js-PWA (deutsche UI). Plan, Check-in/out, Signaturfeld, Klientenliste für zugewiesene Schichten.
  • Admin: Vite + React. Kalender (FullCalendar), Mitarbeiter & Krankmeldungen, Klienten & Budget-Warnungen, Abrechnungsexport, Audit-Log, Vertretungszuweisung.

Datenfluss ist unidirektional: Frontends rufen nur die API auf; kein direkter DB-Zugriff vom Client.

Tech-Stack

PathStack
/backendFastAPI, PostgreSQL, PostGIS, SQLAlchemy 2, Alembic, Pydantic — API, Auth, Vertretungen, Budget, Audit, SGB-XI-Export
/frontendNext.js, Tailwind, PWA — Mobile Mitarbeiter-App
/adminVite, React, Tailwind, FullCalendar — Desktop-Admin

Geodaten & Vertretung

PostgreSQL/PostGIS liefert distanzbasierte Vertretungsvorschläge, wenn eine Schicht unbesetzt ist (z. B. Krankmeldung).

  • Worker- und Client-Modelle speichern einen PostGIS-Punkt (WGS84): current_location und address_location.
  • hausheldPage.geospatialBullet2
  • Ergebnis: Bis zu 3 Mitarbeiter mit Entfernung (m) und verbleibender Kapazität; Admin weist mit einem Klick zu.

GDPR & Compliance

MeasureImplementation
Health data encryptionFernet (AES) für Versicherungsnummer und Pflegegrad; Schlüssel über ENCRYPTION_KEY (nicht in der DB).
Audit logNur anhängendes audit_logs: user, action, target, timestamp. Lesendes API — keine Manipulation.
Soft deletesMitarbeiter, Klienten, Schichten: nur deleted_at gesetzt; Zeilen für Audit/legal hold erhalten.
Data residencyAusgelegt für AWS eu-central-1 (Frankfurt); Gesundheitsdaten bleiben in Deutschland.

Vollständige Erklärung: GDPR_COMPLIANCE.md

Schicht-Workflow

Schichten folgen einem strikten Zustandsautomaten; GPS und Signaturen liefern nachweisbaren Leistungsnachweis.

StatusMeaning
ScheduledMitarbeiter zugewiesen; noch nicht begonnen.
In_ProgressMitarbeiter hat eingecheckt (GPS + Zeitstempel gespeichert).
CompletedMitarbeiter hat ausgecheckt (GPS + Kundensignatur); Kosten für Budgetabzug gesetzt.
UnassignedKein Mitarbeiter (z. B. krank); Admin kann suggest-substitutes nutzen und zuweisen.
CancelledSchicht nicht durchgeführt.

Scheduled → (Check-in) → In_Progress → (Check-out + Signatur) → Completed. GPS-verifizierter Check-in/out ersetzt Papiernachweise für Kostenträger und Audits.

API-Referenz

AreaEndpoints
AuthAuth: POST /auth/dev-login, GET /auth/me
ShiftshausheldPage.apiShifts
WorkershausheldPage.apiWorkers
ClientsClients: GET /clients, budget-status, budget-alerts
BillingBilling: GET /exports/billing?month= (SGB-XI-CSV)
AuditAudit: GET /audit-logs (Admin, read-only)
Dieses Projekt dient Portfolio- und Lehrzwecken. Produktive Nutzung erfordert rechtliche, datenschutzrechtliche und versicherungstechnische Beratung. Siehe GDPR_COMPLIANCE.md.