- PHP 91.8%
- Blade 7.7%
- Shell 0.2%
- Dockerfile 0.2%
| .forgejo/workflows | ||
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| docker | ||
| docs | ||
| lang/vendor/backup | ||
| public | ||
| resources | ||
| routes | ||
| storage | ||
| tests | ||
| .editorconfig | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .npmrc | ||
| artisan | ||
| CHANGELOG.md | ||
| composer.json | ||
| composer.lock | ||
| docker-compose.build.yml | ||
| docker-compose.quickstart.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| HANDOVER.md | ||
| package.json | ||
| phpunit.xml | ||
| README.md | ||
| vite.config.js | ||
Persona
Personalverwaltung mit Mitarbeitenden-Self-Service fuer Vereine, Verbaende und Einrichtungen. Persona buendelt Stammdaten, Organisation, Beschaeftigung, Abwesenheiten/Urlaub, On-/Offboarding sowie eine schlanke Personalkosten- und DATEV-Exportschicht in einer eigenstaendigen Anwendung.
Module (MVP)
- Stammdaten & Organisation — Mitarbeitende, Abteilungen (inkl. Kostenstelle und Hierarchie) und Stellen. Sensible Felder (IBAN/BIC, Steuer-ID, SV-Nummer) werden verschluesselt gespeichert.
- Beschaeftigung/Vertraege — mehrere Beschaeftigungen je Person (Art, Pensum, Wochenstunden, Gehalt, Zeitraum) mit aktueller Beschaeftigung.
- Abwesenheiten/Urlaub — Antraege mit Halbtagen, automatischer Werktagsberechnung (Mo-Fr), Genehmigungs-/Ablehnungs-Workflow und Urlaubskonto je Jahr (Anspruch + Uebertrag - genommen = Rest). Abwesenheitsarten frei konfigurierbar.
- On-/Offboarding — Checklisten-Vorlagen mit relativen Faelligkeiten; per Klick als personenbezogene Aufgaben mit Termin instanziierbar.
- Personalkosten & DATEV — Personalkosten-Zeilen je Zeitraum (aus Beschaeftigungen erzeugbar) und Export als DATEV-EXTF-Buchungsstapel. Hinweis: Dies ist eine Export-/Buchungsschicht, keine Lohn-/Gehaltsabrechnung (keine Steuer-/SV-Berechnung) — Werte mit dem Steuerbuero pruefen.
Self-Service (Panel /mitarbeiter)
Mitarbeitende sehen ausschliesslich ihre eigenen Daten: Abwesenheiten beantragen und stornieren (inkl. Urlaubskontostand), eigene Qualifikationen und Onboarding-Aufgaben einsehen/abhaken sowie Kontakt- und Bankdaten pflegen. Der Zugang ist an eine verknuepfte Mitarbeitenden-Person gebunden.
Rollen
- super_admin — alle Rechte.
- personal — alle operativen HR-Rechte (ohne Konfiguration/Benutzer).
- fuehrungskraft — Personal und Abwesenheiten verwalten.
Stack
Laravel 13, Filament v5, PostgreSQL 16, FrankenPHP — gleiche Basis sowie Release-/CI- Konventionen wie die uebrigen natec-Anwendungen.
Konfiguration
Funktionsschalter und Stammwerte (Organisation, Branding, Mail/SMS, Backup, Urlaubs-Standard, DATEV-Konten) liegen in der In-App-Konfiguration; ENV dient nur als Fallback. Es sind keine Kontonummern fest im Code hinterlegt.
Setup (lokal)
composer install
php artisan migrate --seed # legt Rollen/Rechte + Standard-Abwesenheitsarten an
php artisan persona:ensure-admin
Verknuepfung zu Vereo
Optional ueber das Referenzfeld vereo_ref an Mitarbeitenden — lose Kopplung ohne
gemeinsame Datenbank.
Stand
v0.1.0 ist das Fundament: vollstaendiges HR-Domaenenmodell, Admin- und Self-Service-Panel, Abwesenheits- und Checklisten-Workflow sowie DATEV-Export. Tiefergehende Workflows folgen iterativ.
Screenshots
Ein visueller Ueberblick. Die vollstaendige Galerie findest du in docs/SCREENSHOTS.md.
| Mitarbeitendenliste | Mitarbeiter-Detail | Abwesenheiten / Urlaub |
|---|---|---|
![]() |
![]() |
![]() |
Screenshots noch nicht vorhanden? Lege die PNGs unter docs/screenshots/ ab (Dateinamen siehe docs/SCREENSHOTS.md). Bitte nur anonymisierte Demo-Daten verwenden.


