Zurück zum Blog

8. September 2026

AzubiSuite: Warum ich eine eigene HR-Software für die Ausbildung gebaut habe

Azubi-Verwaltung per Excel funktioniert, bis es nicht mehr funktioniert. AzubiSuite ersetzt die zentrale Tabelle durch eine vollständige HR-Software mit Gantt-Vorplanung, digitalem Berichtsheft und DSGVO-Feldverschlüsselung — gebaut mit Next.js und PostgreSQL.

AzubiSuite: Warum ich eine eigene HR-Software für die Ausbildung gebaut habe

Das Excel-Problem in der Ausbildungsverwaltung

In vielen Unternehmen sieht die Azubi-Verwaltung gleich aus: ein zentrales Excel-Sheet, gepflegt von einer Person in der HR-Abteilung. Wer wo eingesetzt wird, wann die nächste Versetzung ansteht, ob der Berichtsheft-Status aktuell ist — das lebt alles in einer Tabelle mit 40 Spalten und farbigen Zellen. Es funktioniert, solange genau diese eine Person da ist.

Sobald mehrere Standorte beteiligt sind, Ausbilder eigene Übersichten brauchen und Azubis ihre Berichte digital einreichen sollen, stößt die Tabelle an ihre Grenzen. Genau da setzt AzubiSuite an.

Excel ist kein Workflow-Tool. Es ist ein Taschenrechner mit Größenwahn.

Was AzubiSuite macht

AzubiSuite ist eine webbasierte HR-Software speziell für die Ausbildungsverwaltung. Sie bildet den kompletten Lebenszyklus eines Auszubildenden ab — von der Stammdatenerfassung über Versetzungsplanung und Berichtsheft-Management bis zur Auswertung am Ausbildungsende.

Die neun Module im Überblick

  • Dashboard — KPI-Kacheln, anstehende Versetzungen, Fälligkeiten, Azubi-Verteilung pro Standort
  • Stammdaten — Azubi-Profile mit Archivierung und DSGVO-Löschprotokoll
  • Versetzungsmanagement — Rotationsplanung mit automatischen Mail-Benachrichtigungen an Ausbilder
  • Berichtsheft — Digitaler Einreich- und Abzeichen-Workflow mit Kalenderansicht
  • Vorplanung — Gantt-basierter Editor für jahrgangsbezogene Versetzungsplanung mit Drag & Drop
  • Auswertungscenter — Standortübergreifende Tabellen, Filter und PDF-Export
  • Standortübersicht — KPIs, Berichtsstatus, Ausbilder-Listen pro Standort
  • Benutzerverwaltung — Drei Rollen (Admin, Ausbilder, Azubi) mit feingranularem RBAC
  • System-Dashboard — Server-Health, Datenbankstatus, SMTP-Konfiguration, Aktivitätslog

Drei Dinge waren mir besonders wichtig: Mehrere Standorte müssen gleichzeitig arbeiten können, Azubis sollen selbst aktiv werden (Berichte einreichen, eigenes Profil sehen), und personenbezogene Daten müssen sauber verschlüsselt sein — nicht weil es cool klingt, sondern weil der Betriebsrat sonst zu Recht Fragen stellt.

Der Gantt-Editor — das Herzstück

Das Feature, das am meisten Arbeit gemacht hat und am meisten Spaß macht: die Versetzungsvorplanung. Man sieht alle Azubis eines Jahrgangs als farbkodierte Gantt-Balken, kann Rotationsphasen per Drag & Drop verschieben, und das System prüft sofort Kapazitätskonflikte an den Zielstandorten.

Was in Excel eine Nachmittags-Aktion mit Copy-Paste und manueller Plausibilitätsprüfung ist, dauert hier fünf Minuten. Und wenn sich der Ausbildungsrahmenplan ändert, zieht man die Balken einfach um — die Folge-Versetzungen passen sich automatisch an.

Jahrgangsvorlagen machen das Setup für neue Jahrgänge schnell: einmal eine gute Rotation gebaut, als Vorlage gespeichert, beim nächsten Jahrgang importieren und anpassen.

Der Tech-Stack

Wie bei meinen anderen Projekten: bewusst pragmatisch, keine Technologie um der Technologie willen.

Next.js 16 · TypeScript · Prisma 7 + PostgreSQL 17 · NextAuth.js v5 · Argon2 · pg-boss · React Email · AES-256-GCM · Docker Compose

Die Authentifizierung läuft über NextAuth.js v5 mit Argon2-Hashing — kein bcrypt, weil Argon2 gegen GPU-Angriffe deutlich resistenter ist. Für asynchrone Jobs (Mail-Versand, geplante Benachrichtigungen) nutze ich pg-boss, das direkt PostgreSQL als Queue verwendet. Kein Redis, kein RabbitMQ — eine Abhängigkeit weniger.

Die DSGVO-Verschlüsselung war die technisch interessanteste Entscheidung: Alle personenbezogenen Felder (Name, Adresse, Kontaktdaten) werden per AES-256-GCM feldverschlüsselt in der Datenbank gespeichert. Die Bibliothek @47ng/cloak macht das transparent — man definiert in Prisma welche Felder verschlüsselt werden, und die Middleware erledigt den Rest. Im Klartext: selbst bei einem Datenbank-Dump wären die personenbezogenen Daten nicht lesbar.

Was ich dabei gelernt habe

Gantt-Charts im Browser sind ein Rabbit Hole. Ich hab drei verschiedene Ansätze ausprobiert, bevor ich bei einer Custom-Lösung mit CSS Grid gelandet bin. Fertige Gantt-Libraries kommen entweder mit einer riesigen Bundle-Size oder lassen sich nicht an die spezifischen Anforderungen (Kapazitätsprüfung, Jahrgangs-Grouping, Drag & Drop zwischen Zeilen) anpassen. Am Ende war die eigene Implementierung weniger Code als der Wrapper um die Library gewesen wäre.

RBAC richtig machen bedeutet: früh anfangen. Bei Stack-Base hab ich Berechtigungen nachträglich eingebaut. Bei AzubiSuite war RBAC von Tag eins dabei — und das hat enorm geholfen. Jede neue Route, jede neue API bekommt sofort eine Permission-Prüfung. Das ist anfangs mehr Aufwand, spart aber die schmerzhaften Refactorings später.

E-Mail-Templates in React schreiben ist überraschend angenehm. React Email hat mir die Angst vor HTML-Mails genommen. Man baut die Vorlage wie eine React-Komponente, mit Props und Conditional Rendering, und bekommt am Ende valides HTML raus das in Outlook nicht auseinanderfällt. Zumindest meistens.


Aktueller Stand

AzubiSuite läuft in Version 2.3.0 und wird aktiv weiterentwickelt. Das System ist produktiv im Einsatz und verwaltet Azubis über mehrere Standorte hinweg.

Was noch auf der Roadmap steht: eine mobile Ansicht für Azubis (Berichtsheft einreichen vom Handy), ein Dokumenten-Upload für Zeugnisse und Zertifikate, und ein Ausbildungsplan-Generator der aus dem Ausbildungsrahmenplan automatisch einen Rotationsvorschlag erstellt.