ABE BIYOSIDAL · 2020 – HEUTE
Biocidal Field-Management-System
Mandantenfähige, GIS-basierte Software für das Außendienstmanagement, die die Schädlings- und Vektorbekämpfung von Kommunen und privaten Schädlingsbekämpfern in einem System bündelt, von der Bürgermeldung bis zum Tagesabschluss. Mehrere Kommunen setzen sie ein.
Meine Rolle: Softwarearchitektur: Ich habe die Architektur von Grund auf entworfen und leite seit 2020 die Entwicklung.
biocidal.com.tr- im Einsatz seit
- 2020
- Daten jeder Organisation getrennt
- Mandantenfähig
- räumliche Abfragen
- PostGIS
- Kommunen nutzen es
- Mehrere
Das Problem
In der Vektorbekämpfung verteilt sich die Arbeit auf viele Schritte: Eine Bürgerbeschwerde geht ein, wird zum Arbeitsauftrag, ein Außendienstteam führt die Behandlung durch, das eingesetzte Mittel wird vom Bestand abgebucht, und zum Schluss entstehen die Berichte, die das Leistungsverzeichnis der Ausschreibung verlangt.
Liegen diese Schritte an verschiedenen Orten, lässt sich die Frage „Welches Team hat wo welches Mittel in welcher Menge eingesetzt?“ kaum beantworten, und Prüfungen und Berichte dauern Tage.
Architektur
Admin-Panel
- Angular
Karte
Außendienst-App
- React Native
Mobil
GraphQL-API
- GraphQL Yoga
- WebSocket
Live-Daten und Subscriptions
Datenbank
- PostgreSQL
- PostGIS
Daten je Mandant
Cache
- Redis
Echtzeit-Ereignisse
Benachrichtigungen laufen zweistufig: über eine WebSocket-Subscription, solange die App geöffnet ist, und per Push, SMS und E-Mail, wenn sie geschlossen ist.
Was ich umgesetzt habe
Außendienst
Der Ablauf Meldung → Arbeitsauftrag → Behandlung vor Ort → Tagesabschluss; Arbeitsaufträge durchlaufen einen Zustandsautomaten.
Räumliche Auswertung
Zuständigkeitsgebiete, Routenplanung und Point-in-Polygon-Abgleich, der ermittelt, in welches Gebiet ein Standort fällt, mit PostGIS.
Bestand und Kalkulation
Chargenverfolgung, Ausgabe nach First Expired, First Out (FEFO) und Bewertung nach First In, First Out (FIFO).
Ausgabe an Teams und Abgleich
An ein Team ausgegebene Mittel werden ihm zugeordnet; der Bestand wird abgebucht, sobald die Behandlung vor Ort freigegeben ist.
Berechtigungen und Audit-Trail
Dynamische Berechtigungen je Modul und Aktion; ein Protokoll, wer was wann geändert hat.
Berichte und Benachrichtigungen
Berichte nach Provinz und Bezirk; Benachrichtigungen in der App, per Push, SMS und E-Mail.
Schwierige Aufgaben, die ich gelöst habe
- 1
Mandantenfähigkeit im laufenden Betrieb nachrüsten
Ich habe einem bereits produktiven Schema die Datentrennung je Organisation hinzugefügt. Abfragen auf mandantenbezogene Tabellen werden in der Datenschicht automatisch gefiltert, sodass ein vergessener Filter kein Datenleck verursachen kann.
- 2
Bestandsbewertung
Bei Chargen desselben Produkts mit unterschiedlichen Preisen und Verfallsdaten erfolgt die Ausgabe nach FEFO und die Bewertung nach FIFO; der Verbrauch vor Ort wird der richtigen Charge und den richtigen Kosten zugeordnet.
- 3
Migration der Datenschicht im laufenden Betrieb
Das ORM und der Ansatz für das GraphQL-Schema wurden gewechselt, während das System im Einsatz war; die Schemadefinitionen liegen jetzt in handgeschriebenen SDL-Dateien.
Technologien
- Angular
- TypeScript
- GraphQL
- Node.js
- Prisma
- PostgreSQL
- PostGIS
- Redis
- Firebase
Passende Leistungen
Sie planen ein ähnliches System? Ich begleite Sie von der Architektur bis zum Go-live.
Kontakt aufnehmen