Zum Inhalt springen
PaketArchitektur-Review: unabhängige Prüfung und schrittweiser Migrationsplan in 5–7 Werktage
Projekte
Projektdetails

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. 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. 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. 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