Apps · Case Study
Security Workforce Manager
Multi-Tenant-SaaS zur Personaleinsatzplanung im Sicherheitsgewerbe
Kontext
Sicherheitsdienstleister haben Anforderungen, die generische Dienstplan-Tools nicht abdecken: Jede eingeteilte Kraft braucht einen gültigen §34a-Qualifikationsnachweis, die Vergütung folgt dem BDSW-Tariflohn mit eigener Zuschlagslogik, und Wächterkontrollgänge müssen nachweisbar dokumentiert sein. Dazu kommt die Disposition über viele Objekte und Auftraggeber hinweg, mit Nachtschichten und gesetzlichen Pausen. Tabellen und Zettelwirtschaft skalieren dabei nicht. Ziel des Projekts: eine durchgängige Plattform von der Schicht- und Objektplanung über die Zeiterfassung bis zum Lohnlauf — mehrmandantenfähig und sicher genug für echte Personaldaten.
Architektur & Entscheidungen
Row-Level-Security als Fundament — nicht als Nachgedanke
Mehrere Firmen teilen sich eine Datenbank; Mitarbeiter können zu mehreren Firmen gehören. Die Mandantentrennung läuft daher über PostgreSQL Row-Level-Security, nicht über App-seitige Filter. Vorteil: Zugriffsregeln werden in der Datenbank erzwungen — ein vergessener WHERE-Filter im Code kann keine Daten leaken. Ergänzt durch bewusst gesetzte SECURITY-DEFINER/INVOKER-Funktionen, PII-Verschlüsselung und ein durchgehendes Audit-Log.
Integrität in der DB erzwingen, nicht nur in der UI
Doppelbuchungen (ein Mitarbeiter zur selben Zeit auf zwei Schichten) werden über einen Datenbank-Constraint verhindert — nicht nur per UI-Validierung. Nachtschichten über Mitternacht, gesetzliche Pausen (ArbZG) und Schicht-Status („Ampel") sind als Domänenlogik modelliert.
Abrechnung, die ein Steuerbüro akzeptiert
Stundenerfassung, Überstunden, Zuschläge, Festgehalt vs. Freelancer (§19 UStG), Lohnlauf mit PDF-Export und DATEV-Schnittstelle. Abgeschlossene Abrechnungsperioden sind schreibgeschützt, jede Änderung landet im Audit-Log — GOBD-Anforderungen im Blick.
Echtzeit + Optimistic UI für die Disposition
Disponent und Mitarbeiter arbeiten gleichzeitig: Supabase Realtime synchronisiert Schicht-Änderungen live, Optimistic UI gibt sofortiges Feedback. Server Components halten das Client-Bundle klein.
Was es leistet
Planung & Disposition
- ›Objekt- und Standortplanung
- ›Besetzungscheck offener Schichten
- ›Freigabe-Workflow: Entwurf → Veröffentlichung
- ›Verfügbarkeiten der Mitarbeiter
- ›Drag-&-Drop-Schichtplaner mit Nachtschicht-Logik
HR & Qualifikationen
- ›Mitarbeiter-Profile
- ›§34a-Qualifikationsnachweise
- ›Urlaub & Abwesenheiten
- ›Zeiterfassung
Abrechnung & Compliance
- ›BDSW-Zuschläge: Nacht, Sonn- und Feiertag
- ›Steuerfrei-Logik nach §3b EStG
- ›DATEV-CSV-Export
- ›Audit-Log
- ›Vertragsvorlagen: NachwG, §34a GewO, Nachunternehmer
Betrieb & Sicherheit
- ›Multi-Tenant mit strikter Datentrennung
- ›Row-Level-Security
- ›MFA
- ›Modul-Flags pro Firma
- ›Wächterkontrolle via NFC/QR
- ›Webhooks
KI-Assistent
- ›Chat für die Dienstplanung
- ›Offene Schichten finden
- ›Abwesenheiten abfragen
- ›Mitarbeiter zuweisen
Technisch bemerkenswert
Die Lohnabrechnung ist das fachlich tiefste Feature
Aus einer erfassten Stunde wird ein abrechenbarer Betrag erst nach mehreren fachlichen Schritten: Der BDSW-Tariflohn liefert den Grundsatz, darauf greifen Zuschläge für Nacht-, Sonn- und Feiertagsarbeit, die sich zeitanteilig überschneiden können — eine Sonntagsnachtschicht läuft durch beide Regeln. Anschließend greift die Steuerfrei-Logik nach §3b EStG, die einen Teil der Zuschläge steuerfrei stellt, aber nur bis zu gesetzlich festgelegten Grenzen. Das Ergebnis muss als DATEV-CSV so herausfallen, dass ein Steuerbüro es ohne Nacharbeit einlesen kann. Jeder Schritt ist nachvollziehbar protokolliert, damit eine Abrechnung im Nachhinein prüfbar bleibt.
Selbst gehostet statt Managed-Service
Das System läuft nicht auf einer Managed-Plattform, sondern self-hosted auf einem eigenen VPS: Docker-Container, orchestriert über Coolify, mit selbst betriebener Supabase-Instanz. Das bedeutet, Deployment, Reverse-Proxy, TLS-Zertifikate, Backups und die Absicherung des Servers liegen in eigener Verantwortung — inklusive der Frage, was passiert, wenn ein Container die Maschine unter Last mitreißt. Genau dieser Betrieb ist der praktische Beleg für die Docker- und DevOps-Kenntnisse, die sonst nur als Schlagwort in einer Skill-Liste stünden.
Engineering-Notizen
50+
SQL-Migrationen, versioniert
RLS
auf allen Tabellen erzwungen
< 1 s
Realtime-Sync (Ziel)
TOTP
2FA + Recovery-Codes
Sicherheit war von Anfang an Teil der Architektur, nicht nachgelagert: server-seitige Auth-Checks in allen Server Actions, Eingabevalidierung mit Zod, PII-Verschlüsselung, Rate-Limiting und eine DSGVO-konforme Löschroutine. Fehler werden über Sentry beobachtet, strukturiertes Logging via pino.
Status & Zugang
Wird aktuell von mehreren Unternehmen im Pilotbetrieb getestet.
Das System arbeitet mit echten Personal- und Abrechnungsdaten — der Zugang ist daher authentifiziert und der Quellcode nicht öffentlich. Eine Demo oder ein Code-Walkthrough ist auf Anfrage möglich.