Für Dienstleister aus der Sicherheitsbranche im Bereich Objektschutz- und Revierdienste wurde ein Online-Wächter-Kontroll-System (OWKS) von Grund auf neu entwickelt. Das OWKS besteht aus einer Webanwendung, auf Basis von React und Material Design, einer Mobil-Anwendung auf Basis von React Native sowie einem Backend System auf Basis der Programmiersprache Go. Die mobile Anwendung kann auf Geräten mit iOS oder Android eingesetzt werden.
Für den Kunden wurde eine Software entwickelt, mit welcher die vor Ort durchzuführenden Rundgänge in Objekten und Gebäuden als Schichten für das Sicherheitspersonal angelegt und verwaltet werden können.
Mittels vor Ort angebrachte NFC-Tokens – oder alternativ: QR-Codes, Barcodes, Bluetooth Beacon oder GPS Geo Koordinaten – dienen als Kontrollpunkte und definieren den jeweiligen Rundgang des Sicherheitspersonals.
Das eingesetzte Personal in den geplanten Schichten erfasst diese Kontrollpunkte per Mobil-Anwendung mit dem Smartphone. Die durchgeführten Kontrollpunkte werden dadurch protokolliert.
Gerade im Bereich der Sicherheitsbranche erfordern sämtliche Leistungen eine akribische Protokollierung aller Aktionen (Rundgänge, Stechpunkte/ Kontrollpunkte, auszuführende Aufgaben, zu prüfende Bedingungen wie beispielsweise „Türe geschlossen“ oder „Licht aus“), die wie beschrieben von den Sicherheitskräften des Kunden vor Ort durchgeführt werden. Diese Protokolle werden als Nachweis für die Rechnungsstellung sowie bei Vorfällen als Beweismittel beispielsweise von Versicherungsgesellschaften angefordert.
Am Ende eines Rundgangs bzw. einer Schicht und sobald eine Internetverbindung besteht, werden die Protokolle für durchgeführte Rundgänge und gescannte Kontrollpunkte an ein zentrales Backend übertragen. Ein großer Vorteil ist hierbei, dass Rundgänge ohne bestehende Internetverbindung protokolliert werden können. Lediglich zur Übertragung der final erfassten Protokolle wird eine Internetverbindung benötigt.
In den Abbildungen wird gezeigt, dass der Rundgang gestartet wurde und der erste Kontrollpunkt erfasst bzw. gescannt werden kann. Die an diesem Kontrollpunkt zu erledigenden Aufgaben wie beispielsweise „Fenster schließen“ oder „Heizung aus“ können nach und nach geprüft und als erledigt markiert werden. Nach Erledigung der Aufgaben wird der nächste Kontrollpunkt freigeschalten.
Zu jedem Kontrollpunkt können zudem auch Ereignisse erfasst und gemeldet werden. Ein Szenario hierfür könnte sein, dass sich das Fenster nicht schließen lässt oder beispielsweise beschädigt wurde.
Der Sicherheitsmitarbeiter kann diesem Ereignis ein Foto und eine Beschreibung hinzufügen, um die Situation genau zu schildern.
Interventionseinsätze und Auswertung der Rundgänge
Desweiteren können durch sogenannte Interventionseinsätze die sowohl über die Mobil als auch Webanwendung erstellt werden können, das Sicherheitspersonal über Push-Benachrichtigungen auf Ihrem Mobilgerät alarmiert werden. Als Interventionseinsätze gelten beispielsweise Situationen, in denen Sicherheitspersonal bei einem Rundgang vor Ort unmittelbar Hilfe oder Unterstützung weiterer Kollegen benötigt.
Zur Auswertung der Rundgänge und Interventionseinsätze können individuelle Berichte und Reports erstellt werden. Zudem können sämtliche Protokolle zur Beweissicherung in der Web Anwendung eingesehen und regelmäßig automatisiert oder manuell per E-Mail an Kunden oder Objektverantwortliche versendet werden. Über ein Dashboard können diese außerdem in Echtzeit einsehen, welche Rundgänge oder Interventions-einsätze gerade aktiv sind und wo sich welche Einsatzkräfte vor Ort befinden. Bei Bedarf können hier beispielsweise auch weitere Einsatzkräfte zu Interventionen alarmiert oder abgezogen werden. In der Dashboard Ansicht für Berichte können die Einstellungen für den Versand sowie die E-Mail Empfänger bearbeitet werden. Bereits erstellte Berichte können hier zudem über die Lupe angesehen werden.
Entwicklungs- und Testumgebung
Um die Software frühzeitig am laufenden Betrieb einzusetzen und zu testen, wurden Entwicklungs- und Testumgebungen sowie eine Produktiv-umgebung als Pilot-Installation für den Kunden zur Verfügung gestellt. Der Betrieb dieser Pilot-Installation mit Entwicklungs-, Test- und Produktiv-umgebung erfolgte über ein „AWC Managed Hosting“ und wird zudem zentral über unser Configuration Management (SaltStack) verwaltet. Über unsere Prometheus Monitoring Federation wird die Software zudem 24/7 überwacht und ein entsprechendes Incident Management betrieben.
Backend und Frontend
Das Backend wurde auf Basis der Programmiersprache Go implementiert. Das Backend stellt über Swagger eine standardisierte OpenAPI RESTful Schnittstelle für das Frontend und die Mobile Anwendunge zur Verfügung. Weiterhin können aus der OpenAPI Spezifikation Typings für das Frontend sowie Interfaces für das Go-Backend abgeleitet werden. Als Datenbanken im Backend kam PostgreSQL zum Einsatz. Zur Persistierung von Bildern und Berichten kann ein S3 kompatibler Speicher wie beispielsweise Amazon S3 oder MinIO eingesetzt werden. Als interner Cache wird Redis verwendet.
Im Frontend wurde React sowie die auf JavaScript basierte Programmiersprache Typescript verwendet. Bei der mobilen Anwendung wurde Expo auf Basis von React Native verwendet. Hierbei wurde auf den kommerziellen Build-Service von Expo verzichtet und eine lokale Build- und Deployment Pipeline via GitLab CI aufgebaut, welche die Mobile Anwendung auf Testflight sowie später im iOS App-Store bzw. auf dem Android Play Store veröffentlicht. Sowohl für das Backend als auch das Frontend wurden entsprechende CI/CD Pipelines aufgebaut, um über OWASP Checks und Audits auf Schwachstellen (CVEs) im Code zu prüfen, Ende-zu-Ende (E2E) und Unit-Tests aufzuführen sowie entsprechende Docker Container oder die Mobile-App Anwendung zu bauen und zu deployen.
Herausforderungen und Fazit
Besondere Herausforderungen im Projekt lagen in der Kundenkommunikation sowie in der Strukturierung der Aufgaben für die angestrebte, agile Entwicklung: Es galt die Anforderungen und Wünsche des Kunden in logische Userstorys zu verpacken und daraus zielführende, technische Tasks abzuleiten. Anspruchsvoll waren zudem auch das UI/UX Design der mobilen Anwendung, da für das Sicherheitspersonal Rundgänge und die jeweiligen Kontrollpunkte sowie für jeden Kontrollpunkt die ausstehenden und erledigten Aufgaben übersichtlich und kompakt dargestellt werden mussten. Weiterhin sollte die Anwendung auch bei schwierigen Außenbedingungen einfach bedienbar sein. Zudem musste die Nutzung der Mobilgeräte auch ohne aktive Internetverbindung möglich sein, um beispielsweise Rundgänge in Kellerräumen oder in Bereichen ohne Mobilfunknetz oder WLAN zu ermöglichen. Hierzu wurde über über React Redux eine Offline-Nutzung sowie eine automatische Synchronisation und Konfliktlösung implementiert.
Unser Kunde erhielt somit eine maßgeschneiderte Anwendung nach seinen Vorstellungen und Anforderungen. Dabei sind die Erfahrungen aus dem Alltag des Kunden und aus der Nutzung von anderen OWKS Systemen mit eingeflossen. Die neu entwickelte Software ist daher bereits frühzeitig im Alltag getestet worden und vereint die Vorteile von anderen, gängigen OWKS Systemen. Es war uns wichtig, dass der optimale und bereits etablierte Workflow des Kunden exakt über ein trotzdem flexibles System abgebildet werden kann. Diverse Funktionen wie beispielsweise das Alarmieren von Sicherheitspersonal, die Protokollfunktion mit Bildern, Begründungen und Kommentaren sowie die Definition von Mindestkontrollzeiten für Kontrollpunkte sind große Benefits der Software, von denen der Kunde profitiert. Ein weiterer großer Vorteil ist, dass die Software als Web Anwendung konzipiert wurde und somit keine lokale Installation notwendig ist. Damit kann die Software von überall aus genutzt und eingesetzt werden.
Der agile Ansatz hat sich für dieses Projekt absolut bewährt. Dadurch sowie durch den frühen Einsatz der Anwendung im Laufenden Betrieb, konnten wir Probleme frühzeitig erkennen und funktionierende Lösungen dafür finden und umsetzen und unseren Kunden mit einer richtig guten Software ausstatten.