For coders TYPO3 Tech Corner

Unterrichtsausfall - und nun? Neues Portal für das Bayerische Staatsministerium für Unterricht und Kultus

Unterrichtsausfall - und nun? Neues Portal für das Bayerische Staatsministerium für Unterricht und Kultus

Für das Bayerische Staatsministerium für Unterricht und Kultus durften wir eine neue WebApp bzw. ein neues Portal auf Basis eines bereits bestehenden, aber stark veralteten Portals entwickeln. Das Portal meldet Unterrichtsausfälle in ganz Bayern und die registrierten Nutzer werden akut per E-Mail über neue Meldungen informiert. Neben der Verwaltung des eigenen Profils kann jeder Nutzer gezielt einzelne Standorte (i. d. R. Landkreise aus Bayern) abonnieren, um nur die für sich relevanten Meldungen zu erhalten.

Das Portal dient Radiosendern und anderen Medien als zuverlässige Informationsquelle, um die Öffentlichkeit zeitnah zu informieren. Dabei bietet die Anwendung detaillierte Meldungen, die neben dem Zeitraum und den betroffenen Standorten auch einen Meldungstyp wie z.B. "Teilweise Unterricht" oder "Unterricht fällt aus" enthalten, sowie einen Rich-Text-Editor, mit dem zusätzliche Informationen zu jeder Meldung hinzugefügt werden können.

Ein Rechteverwaltungssystem ermöglicht es den Benutzern, Meldungen entweder nur zu Informationszwecken einzusehen oder auch aktiv Meldungen für bestimmte Standorte zu erstellen. Die Rechte werden den Benutzern über Gruppen von Administratoren zugewiesen.

Über ein übersichtliches Dashboard können alle Meldungen eingesehen und nach Standort, Bezirk und Typ gefiltert werden – eine Funktionalität, die auch ohne Account zugänglich ist und somit Transparenz und Zugänglichkeit der Informationen gewährleistet.

Unter der Haube

Obwohl wir als Webagentur auf TYPO3 spezialisiert sind, haben wir uns bewusst gegen ein Content-Management-System entschieden. Die Einfachheit und Direktheit einer dedizierten WebApp überwog, um den spezifischen Anforderungen dieses Projektes gerecht zu werden.

Technischer Hintergrund

Wir entschieden uns für den TALL-Stack – eine moderne und agile Kombination aus TailwindCSS, AlpineJS, Laravel und Livewire, ergänzt durch das FilamentPHP-Paket. Diese Technologien haben es uns ermöglicht, ein responsives und benutzerfreundliches Interface zu entwickeln, das sowohl auf Desktops als auch auf mobilen Geräten eine intuitive Bedienung gewährleistet und gleichzeitig kostengünstig und schnell zu entwickeln ist. Auch nachträgliche Änderungen oder Anpassungen können sehr schnell umgesetzt werden.

TailwindCSS bietet uns die Möglichkeit, sehr einfach ein ansprechendes Interface zu erstellen und wird vor allem auch von Filament für die zahlreichen Komponenten verwendet.

AlpineJS gibt unserem Markup eine minimalistische, aber mächtige Syntax, vergleichbar mit jQuery, aber optimiert für moderne Webentwicklung und perfekt geeignet für reaktive Benutzerinteraktion.

Laravel, das Herzstück unseres Backends, bietet eine elegante Syntax und eine Vielzahl von Features, die uns ein schnelles und effizientes Arbeiten ermöglichen. Von Authentifizierung und Autorisierung über ORM und Datenbankmigrationen bis hin zu Validierung, Notifications, einer mächtigen Template-Engine und E-Mail-Templates bietet Laravel eine umfassende Lösung für alle Anforderungen der modernen Webentwicklung.

Livewire ermöglicht es uns, reaktionsfähige Komponenten zu entwickeln, die ein optimales Benutzererlebnis bieten. Ob es sich um Formulare, Tabellen, Diagramme oder Datei-Uploads handelt, Livewire ermöglicht es uns, anspruchsvolle Funktionen wie Echtzeit-Validierung, Lazy Loading und reaktive Interaktionen durch direkte Kommunikation mit dem Laravel PHP-Backend mit Leichtigkeit zu implementieren.

Besondere Erwähnung verdient FilamentPHP, das uns mit dem Panel-Builder, dem Form-Builder, dem Table-Builder und den Real-Time-Notifications ein Toolkit zur Verfügung stellt, mit dem wir schnell und effizient das Admin-Panel und die Benutzeroberflächen erstellen können. Die Möglichkeit, leistungsstarke Formulare, Tabellen, Aktionen und Benachrichtigungen zu erstellen, hebt die Benutzerfreundlichkeit auf ein neues Niveau. Durch die hohe Anpassungsfähigkeit von Filament an unsere Bedürfnisse konnten wir eine maßgeschneiderte Lösung entwickeln, die gleichzeitig eine intuitive Benutzererfahrung bietet.

Authentifikation und Sicherheit

Ein weiterer wichtiger Aspekt war die Sicherheit der Applikation. Der erfolgreiche Penetrationstest, welchen das Portal auf Anhieb bestand, bestätigte die Sicherheit und Robustheit unserer Lösung. Lediglich zwei optionale Optimierungen wurden im Nachhinein noch vorgenommen, was nun ein hohes Maß an Sicherheit garantiert.

Eine Schlüsselrolle bei der Authentifizierung und Verwaltung der Benutzerkonten spielte Laravel Breeze. Dieses schlanke, aber mächtige Laravel-Paket erleichterte die Implementierung eines sicheren Authentifizierungssystems mit integrierten Funktionen wie Passwort-Zurücksetzung und Benutzereinstellungen.

E-Mail Templates

Darüber hinaus ermöglicht Laravel, die Handhabung der E-Mail-Templates erheblich zu erleichtern. Dank der Möglichkeit, E-Mail-Inhalte in Markdown zu verfassen, konnten wir ohne großen Aufwand sicherstellen, dass die E-Mails auf allen Clients korrekt angezeigt werden und professionell aussehen. Diese Effizienz im Gestaltungsprozess hat uns wertvolle Zeit gespart, die wir dann in die Feinabstimmung der User-Experience investieren konnten.

Ein weiterer Schritt in die digitale Zukunft

Wir blicken mit Stolz auf die Realisierung des Portals zurück. Unsere technische Expertise, kombiniert mit innovativen Lösungen, hat zu einer effizienten und benutzerfreundlichen Plattform geführt. Wir danken dem Bayerischen Staatsministerium für Unterricht und Kultus für die Möglichkeit, einen Beitrag zur Digitalisierung der Bildungslandschaft in Bayern leisten zu können. Wir freuen uns darauf, auch in Zukunft mit solchen Projekten die Digitalisierung zu bereichern und die technologische Entwicklung voranzutreiben.

Kennst du das: Immer nur schnell schnell?

Wie wäre es einmal mit Zeit und Respekt für Codequalität? Arbeiten im Team? Automatisierte Tests?

Komm zu uns

Wir verabschieden uns von der Plattform X

Nach reiflicher Überlegung haben wir uns dazu entschlossen, unsere Aktivitäten auf der Plattform X (ehemals Twitter) einzustellen. Wir haben die Entwicklung der Plattform in den letzten Monaten...

Zum Beitrag

Zum zweiten Mal in Folge - TYPO3 Award Winner 2024

Eine aufregende Woche in Düsseldorf liegt hinter uns – und wir schwelgen immer noch in Erinnerungen an die T3CON 2024. Mit dabei waren unser in2code Messestand, vier Kollegen und ein spannender...

Zum Beitrag

LUX Marketing Automation: TYPO3 13, Darkmode und Livesearch

Pünktlich zur bedeutendsten TYPO3-Konferenz des Jahres präsentieren wir die neuesten Versionen unserer Marketing-Automation-Lösungen: LUX 38.0.0 und LUXenterprise 44.0.0. Diese Updates bringen nicht...

Zum Beitrag

Content Publisher Version 12: Schneller, moderner und benutzerfreundlicher

Mit der neuen Version des Content Publishers Version 12 (für TYPO3 11 & 12) wird die Verwaltung und Veröffentlichung von Inhalten in TYPO3 spürbar verbessert. Die neue Version bringt einige...

Zum Beitrag
Fröhlicher Mann am Laptop

SQL: Zeige alle Tabellen absteigend nach Größe sortiert

Ich brauche in letzter Zeit häufiger den SQL-Befehl, um herauszufinden, welche Tabellen in der TYPO3-Datenbank am größten sind. Ich habe das Snippet einmal veröffentlicht.

Zum Beitrag

TYPO3 12 mit CKEditor 5: Stile als Einfachauswahl

Wenn man im RTE in TYPO3 einen Link setzt, kann es sein, dass man zwischen verschiedenen Link-Klassen auswählen muss, um beispielsweise Buttons im Frontend zu erzeugen. Neu ist in TYPO3 12 dass man...

Zum Beitrag