Management-Portal für einen Mehrfachbetreiber von Telekom-Partnershops
Eine Plattform, die HR, Verkauf, Provisionierung, Filialverwaltung und interne Kommunikation eines mehrstandortigen Telekom-Partnerbetriebs unter einem Dach bündelt – seit acht Jahren im Produktivbetrieb, kontinuierlich weiterentwickelt.
Kontext
Wer mehrere Telekom-Partnershops gleichzeitig betreibt, sitzt zwischen zwei Welten: einem hart vorgegebenen Vertriebs- und Provisionierungsmodell der Telekom auf der einen, dem ganz normalen Alltag eines Einzelhandelsunternehmens (Personal, Kasse, Mietverträge, Schulungen) auf der anderen Seite. In den meisten Häusern verteilt sich das auf drei bis fünf Tools, eine Excel-Sammlung und einen Mailverteiler.
Dieses Portal löst das anders: alles, was in einem Mehrfachbetrieb tatsächlich getan, gemessen und abgerechnet wird, läuft seit Februar 2018 in einer einzigen Anwendung – die ich als Entwickler über die gesamte Laufzeit verantworte und gemeinsam mit dem Betrieb weiterentwickle.
Was die Plattform abdeckt
- Filialen & Personal: Standorte, Öffnungszeiten, Sonderzeiten, Mitarbeitende mit Rollen (Verkäufer:in, Trainee, Filialleitung, Springer:in, Trainer:in), Dienstplanung, Stundenerfassung, Überstunden, Urlaub, Krankmeldung.
- Vergütung: Gehaltsbänder, Wochenabrechnung, individuelle Boni, automatische Nacht-Aggregation pro Mitarbeitenden und Standort.
- Verkauf & Provisionen: Sales pro Mitarbeitenden, Push-Kampagnen mit eigenen Geldzielen, Dealcloser-Boni, Hardware-Incentives, automatische Punktverrechnung.
- Telekom-Spezifika: ACCI-Tracking (Vertragsverlängerung & Kundenbindung), Magenta-Aktionen, Smart-Home-Aktivierungen, Winback- und Rework-Aktionen mit eigenen Kennzahlen.
- Qualität & Kassenführung: Quality-Checks pro Filiale (zwei aufeinander aufgebaute Versionen, weil sich der Anforderungskatalog geändert hat), Quick-Checks, Kassenprüfungen, Tresor-Codes mit verschlüsselter Speicherung und Zugriffsprotokoll.
- Filialbetriebsführung: Mietverträge mit Vermieter-Stamm, Lieferantenverträge, Verbrauchsdaten, Ansprechpartner, Werbeflächen-Vereinbarungen.
- Kommunikation: Hauseigener Newsfeed, Forum, Aufgabenmanagement, Echtzeit-Chat zwischen den Standorten, Push-Notifications via Pusher.
- Reporting: Tages-, Wochen- und Monatsreports per Mail, Excel-Exports, KPI-Dashboards pro Standort und Person, iCal-Feed für Termine.
Architektur, die im Alltag den Unterschied macht
- Acht Jahre Codebase, schrittweise modernisiert. Die Anwendung ist 2018 mit Laravel und reinem Blade gestartet. Heute läuft sie auf Laravel 9, mit Livewire 2 für die reaktiven neuen Komponenten und einem schrumpfenden Restbestand Vue 2 für ältere Bereiche. Tailwind ist von 2 auf 3 migriert, der Build läuft weiterhin auf Laravel Mix – pragmatisch, weil ein produktives Tool nicht zum Selbstzweck umgebaut wird. Größere Umbauten passieren nur dort, wo sie sich an einer Funktionserweiterung mitnehmen lassen.
- AWS Lambda über Laravel Vapor. Telekom-Partnershops haben sehr ungleiche Last (Vormittag leise, Nachmittag laut, Aktionswochen brutal). Vapor mit
--classmap-authoritativeundevent:cacheminimiert Cold-Start-Zeiten, Worker und Web skaliert die Plattform automatisch. Wartungsfenster gibt es de facto keine. - Multi-Shop-Scoping per Session statt Subdomain. Filialleitungen wechseln im laufenden Betrieb mehrmals täglich zwischen ihren Standorten. Statt mit Subdomains oder URL-Pfaden zu arbeiten, hängt der aktive Shop an der Session – ein einziger Switcher in der UI, alle Queries bleiben auf den gewählten Standort scoped. Trade-off: Disziplin im Controller-Code (jede Query muss den Filter explizit anwenden), dafür viel weniger Reibung im Alltag.
- Audit-Log auf alles, was relevant ist. Spatie Activity-Log läuft auf praktisch allen Domain-Modellen: Login-Versuche (auch fehlgeschlagene auf deaktivierten Accounts), Kassen-Code-Zugriffe, Dokumenten-Downloads, Vertragsänderungen. Wenn die Compliance-Frage „wer hat wann was?" kommt, ist die Antwort einen SELECT entfernt.
- Microsoft 365 als Adressbuch der Wahrheit. Mitarbeiteränderungen (Telefon, Adresse, Position) werden über Microsoft Graph automatisch in die Office-365-Kontakte des Betriebs synchronisiert. Eine Pflegestelle, ein konsistentes Adressbuch in Outlook und Teams.
Stack
Laravel 9 mit Livewire 2, Blade, im Restbestand Vue 2. Tailwind CSS 3 über Laravel Mix. MySQL, deployt auf AWS Lambda via Laravel Vapor, S3 für Dokumente und Medien. Spatie Permission für die Rollen, Spatie Activity-Log für die Audit-Spur, Algolia Scout für die hausweite Suche, Pusher für Echtzeit-Chat und Push-Benachrichtigungen, Mailgun für die Zustellung, Microsoft Graph für die Office-365-Anbindung, Cronofy für Kalender-Exports.
PDF-Erzeugung über dompdf und mikehaertl/php-pdftk, Excel-Exports über maatwebsite/excel, Imports der Telekom-Produktkataloge ebenfalls über Excel-Pipelines.
Status
Im durchgängigen Produktivbetrieb seit 2018, aktuell mit 128 Eloquent-Modellen und über 400 Migrationen Geschichte. Die Plattform wird in Sprints fortlaufend weiterentwickelt, getrieben von Telekom-Tarifrunden, neuen regulatorischen Anforderungen, organisatorischen Änderungen beim Betreiber und natürlich aus dem Alltag der Filialen.
Aus Entwicklersicht der ehrlichste Lehrmeister: ein Codebase, mit dem man tatsächlich acht Jahre lebt, in dem Refactorings nicht nach Schönheit, sondern nach Wirkung priorisiert werden – und in dem jede Architekturentscheidung später noch jemand (in der Regel ich selbst) bezahlen muss. Genau die Art von Projekt, die einen über Jahre besser macht.