Entwicklung eines Headless Geo-CMS zur Unterstützung standortbasierter Daten

Elisabeth Zweigner 08 Nov. 2023

Cms blog

Entwicklung eines Headless Geo-CMS zur Unterstützung standortbasierter Daten

4 Min

Durch die zunehmende Diversität von Digitalen Plattformen nimmt auch die Verwendung von Headless-CMS Systemen stetig zu. Durch diese Systeme lassen sich Datenschemata nach den individuellen Bedürfnissen der Softwareanwendung modellieren. Zudem steht oft eine Rest-API oder GraphQL-API für die Erfassung, Bearbeitung, Suche, Filtern und Abrufen der Daten sofort nach der Datenmodellierung zur Verfügung. Das eigene Backend kann dadurch sehr schmal gehalten werden und ermöglicht so bei der Softwareentwicklung die Konzentration auf die eigentliche Business Logik. Der Kunde selbst kann bei der Daten- und Inhaltspflege durch eine automatisch generierte Webanwendung mit einbezogen werden.

Anwendungsbeispiele

Bei folgenden Bespielen konnte im Rahmen des Projektes das Geo-CMS bereits erfolgreich angewendet werden.

Bundestagswahl 2021 – Stadt Karlsruhe

Im Informationspanel an der Seite werden allgemeine Daten zu Stimmen, Wahlscheinen und Wählern angezeigt. Diese beziehen sich jeweils auf einen Stadtteil, welcher vom Nutzer ausgewählt wurde. Auf der Karte werden alle Geometrien der Stadtteile Karlsruhes angezeigt, beschriftet mit dem Namen des Stadtteils. Beim Klick auf einen Stadtteil erscheint ein Popup mit Informationen zu der Erststimme von unterschiedlichen Parteien.

Election karlsruhe

Abfuhrkalender der Stadt Karlsruhe

Für dieses Beispiel wurden fiktive Daten für die Müllarten Restmüll, Biomüll, Wertstoff, Papier und Sperrmüll erstellt. In der Abbildung wird das Thema Restmüll dargestellt. Hierbei wird auf den Geometrien dargestellt, um welchen Stadtkreis es sich handelt und welches der nächste Termin für die Restmüll-Abholung wäre. In der Abbildung unten ist ersichtlich, wie das Informationspanel für das Thema Restmüll aussehen würde. Im Informationspanel werden anhand des Filters und Themas die aktuellen Termine für die verschiedenen Stadtkreise angezeigt. Zudem lassen sich auch mehrere Müllarten auswählen, welche im Informationspanel angezeigt werden.

Calendar karlsruhe

Baden Marathon

Der Baden-Marathon wurde mit der entwickelten Anwendung nachgestellt. Hierbei wurden die Themen Strecke, Start/Ziel, Kilometer und zusätzliche Informationen verwendet. Die Strecke stellt den Streckenzug dar, der von den Teilnehmern durchlaufen wird. Dieser enthält zudem die Information zur Länge der Strecke. Der Start stellt den Startpunkt dar und enthält Informationen zu den verschiedenen Start-Zeiten. Das Ziel stellt das Ende der Strecke dar. Die Kilometer-Punkte enthalten die Themen Kilometer sowie zusätzliche Informationen. Das Thema Kilometer stellt nur die einzelnen Kilometer-Knoten dar. Bei den zusätzlichen Informationen handelt es sich um Informationen bezüglich Toiletten und Stände für Getränke. Zudem enthalten sie Informationen zu den Sperrzeiten der Strecke.

Baden marathon

Umsetzung und Verwendete Technologien:

Für die Umsetzung wurde ein proprietäres relationales Datenmodel erstellt, welches erlaubt Geodaten und herkömmliche Daten flexibel zu kombinieren. Dabei lassen sich beliebige geografische Umrisse, Polygone und Streckenzüge einschließlich Höhenmetern abbilden. Zusätzlich ist es für viele praktische Anwendungsfälle notwendig diese Daten zeitlich zu kategorisieren und dynamisch in der selben Ansicht darstellen zu können. Für die Umsetzung der reinen CMS Funktionalität wurde das weit verbreitete PHP-Framework Laravel verwendet, welches mit seinem besonders starken ORM „Eloquent“ die Entwicklung besonders vereinfacht hat. Als Datenbank wurde das open source Datenbanksystem PostgreSQL verwendet. Bei der Entwicklung der Anwendung wurde ein serverseitiger Ansatz mit Livewire verwendet bei dem PHP-code automatisiert in Ajax-Calls umgewandelt wird. Die Ajax-Calls ermöglichen das Aufrufen der PHP-Methoden aus der View.
Rückblickend konnte Folgendes festgestellt werden:
Bei der Entwicklung der graphischen Benutzeroberfläche für CMS mit Laravel Livewire und Blade kommt man zügig und unkompliziert ohne viele Rest-Api-Calls für die Kernfunktionalität des CMS vorankommt.
Ein ausgereiftes clientseitiges Javascript Farmework wie Angular, React und Vue mit einer Rest oder GraphQL Service Schnittstelle bei der Integration im Web die bessere Wahl gewesen wäre. Diese Integration bezieht sich vor allem auf Softwarebibliotheken (verwendet wurden in diesem Beispiel OpenLayers und Leaflet) im Web die für die dynamische Darstellung des Kartenmaterials verwendet werden. Diese sind oft in Javascript und Typescript entwickelt.

Aussicht

Dieses Projekt diente als Möglichkeit unsere Expertise in GIS Systemen, Headless CMS Systemen zu vertiefen und neuste Software- und Web-Technologien erfolgreich aufzufrischen.
Falls sie Interesse an der Realisation ähnlicher Projekte haben, melden sie sich bei uns unter contact@bieber-systems.com! Gemeinsam setzten wir ihre Vorstellungen effektiv um.