← Zurück zu den Projekten
Nicht öffentlich

Gutz Intern

Interne Vereins-App des Gutzkowclub e.V.: Mitgliederverwaltung, Schichtplanung, Guthaben-System, Nachrichten.

Gutz Intern

Gutz Intern (intern bekannt als „RattenNetz“) ist die interne Verwaltungsplattform des Gutzkowclub Dresden. Sie bündelt Mitgliederverwaltung, Schichtplanung für Bardienste, ein internes Guthaben-/Kredit-Wallet-System mit QR-Gutscheinen, private Nachrichten, Dokumente und Putzdienst-Organisation für einen ehrenamtlich geführten Verein mit wechselnder Vorstandsbesetzung.

Galerie

Case Study

Ausgangslage

Ein ehrenamtlich geführter Studentenclub braucht verlässliche Schichtplanung, Mitgliederverwaltung und interne Kommunikation, ohne dass das an Zuruf und Tabellen mit wechselnder Vorstandsbesetzung hängt. Gutz Intern ersetzt das durch eine zentrale, seit Oktober 2025 durchgängig weiterentwickelte Plattform.

Herausforderung

Die Schichtlogik muss halbe Schichten, wiederkehrende Wochendienste und einmalige Event-Schichten einheitlich behandeln: Zuweisungen werden gewichtet (1,0 bzw. 0,5 je Halbschicht) und treiben sowohl den Besetzungsstatus als auch die Anmeldeberechtigung. Der Schicht-Tausch ist ein Mehrstufen-Workflow — Angebot, Annahme durch ein zweites Mitglied, Pflicht-Genehmigung durch den Vorstand, dann der atomare Transfer der Zuweisung. Ein realer Produktionsvorfall betraf UUID-Routenschlüssel: Die separate Admin-App schrieb über dieselbe Datenbank Zeilen ohne UUID, wodurch die Dienstübersicht komplett ausfiel; ein zusätzlicher Bug in einem Teil-Select überschrieb echte UUIDs fälschlich, weil eine Leer-Prüfung statt einer Existenz-Prüfung verwendet wurde — jeder Ordnerlink führte dadurch ins Leere.

Vorgehen

Laravel 12, PHP 8.4, MySQL/MariaDB, Blade-Templates ohne SPA-Framework, Tailwind CSS 4 und Alpine.js über Vite 7, Laravel Octane mit RoadRunner als Application-Server. Zwei-Wege-Synchronisation mit Google Calendar je Schichttyp, Push-Benachrichtigungen, QR-Code-Workflow für den Bardienst.

Entscheidungen

Kein Berechtigungs-Paket, sondern ein einfaches role-Feld

Bewusst einfach gehalten statt eines vollen Permission-Systems — für einen kleinen Verein nachvollziehbarer.

UUID statt Auto-Increment als Routenschlüssel

Verhindert das Erraten oder Durchzählen fortlaufender IDs bei öffentlich verlinkten Ressourcen wie Dokumenten.

Effective-Count-Modell für Schichtbesetzung

0,5 pro Halbschicht statt starrer Ganzzahl-Slots, damit Teilbesetzung ohne Sonderfälle in der Anzeige-Logik funktioniert.

Interne Systemnachricht statt E-Mail für Tauschbenachrichtigungen

Reduziert die Abhängigkeit von Mail-Infrastruktur und nutzt das ohnehin vorhandene Nachrichtenmodell.

Admin-Panel als separate App auf gleicher Datenbank

Trennt die komplexe Admin-Oberfläche vom schlanken Mitglieder-Stack — erkauft mit einem UUID-Konsistenzproblem, das per selbstheilendem Mechanismus abgefangen wird.

Eigenanteil

Vollständige Schichtplanungs- und Tauschbörsen-Logik, Nachrichtensystem, Bardienst-Workflow, Guthaben-/Gutschein-System, Google-Calendar-Sync, automatisierte Scheduler-Jobs sowie der Produktions-Fix für den UUID-Vorfall.

Ergebnisse

Umfang
43 Models, 110 Migrationen, 51 Controller
Tests
23 Feature-/Unit-Testdateien decken Kernflüsse ab
Betrieb
seit Oktober 2025 durchgängig im internen Einsatz, 552 Commits

Suche & Navigation

Navigieren Öffnen Esc Schließen