Technische Realisierung
Diese Applikation wurde ab September 2018 von Grund auf überarbeitet. Obgleich ich mich schon vor 15 Jahren mit Templates beschäftigt habe, waren die alten Seiten doch sehr "selbst gestrickt". Außerdem ist die Version 4 bzw. 5 von PHP inzwischen sehr in die Jahre gekommen, so dass eine Modernisierung auch technisch anstand.
Entwicklungsumgebung
Den Rahmen der Entwicklungen bildet das Framework Laravel, das mir – hoffentlich – ermöglicht, näher an den Release-Zyklen zu sein, als es bisher der Fall war. Laravel bietet zahlreiche Module, die die Funktionalität sinnvoll und einfach erweitern. Folgende Module haben mir besonders geholfen:
- Laravel-Maps: Dieses Modul ermöglichte mir einen lang gehegten Traum umzusetzen: die Organisationseinheiten auf einer dynamischen Karte anzuzeigen. Es ist sehr einfach zu benutzen, ‐ allerdings habe ich einige Anpassungen vornehmen müssen. Als Kartenmaterial ‐ ganz bewusst ‐ nur das von Openstreetmap genutzt.
- Mit barryvdh/laravel-dompdf lassen sich Abfragen als pdf-Dokumente exportieren. Da diese Funktion ziemlich viel CPU-Last erzeugen kann, bleibt diese Funktion einstweilen nur registrierten Benutzern vorbehalten.
- Die Widgets von arrilot/laravel-widgets strukturieren schön die Daten zu den einzelnen Organisationseinheiten und machen manche Seite schön übersichtlich(er).
- Für grafische Darstellungen ist in Bälde die Nutzung des Moduls khill/lavacharts vorgesehen.
Programmiersprache
Benutzt wurde die Skriptsprache PHP, und zwar in der heutigen Version 7.3. Da man an JavaScript nicht unbedingt vorbei kommt, sind auch einige Funktionen hiermit umgesetzt worden.
Datenbank
Die Datenbasis wird im Netz von einer Datenbank von MySQL verwaltet; privat nutze ich hierzu einen "Fork" von MySQL mit dem Namen MariaDB. MariaDB ist Open Source und unterwirft sich nicht dem Dictum von Oracle.
Versionierung
Diese Seiten unterliegen seit einiger Zeit auch einer Versionsverwaltung. D.h. die aktuellen Entwicklungsstände werden in ein eigenständig betriebenes GIT "eingecheckt" und von hieraus auch released.
- pragmarx/version führt die Versionierung dieser Webseite mit.
- Die Commits im Versionsverwaltungssystem GIT werden mit dem Modul graham-campbell/markdown ausgelesen und automatisiert in die Release-Übersicht und die CHANGELOG.md eingetragen. Ein Stück mehr Automatisierung des Deployments.
© Carsten Kumke, 04.11.2020