Die Kooperation mit der Hochschule Augsburg startete im April in die nächste Runde. Doch wie gestaltet man ein Hochschulprojekt während des Corona-Lockdown? Wir entschieden uns als Team dafür, das Open Source-Projekt RemedyMatch zu unterstützen - eine Plattform, die sich auf die Verteilung von Hilfsmitteln fokussiert hat und im Rahmen des WirVsVirus-Hackathons entstanden ist.
Die Herausforderung bestand vor allem darin, flexibel auf die sich ändernden Rahmenbedingungen eingehen zu können. Außerdem musste die bestehende Plattform modular erweitert werden. Insgesamt entwickelten über zehn Personen an der Lösung, die bisher noch nicht in Berührung mit RemedyMatch gekommen waren.
Wir entschieden uns deshalb dafür, für die neue Logistik-Domäne einen eigenen Microservice zu implementieren und diesen in die bestehende Architektur einzubinden. Dabei kümmerten wir uns um sämtliche anfallenden Aufgaben im Rahmen der Entwicklung und des Prozessmanagements. Nach der Analyse der Logistikprozesse modellierten wir diese in BPMN und automatisierten sie mit Camunda.
Wir orientierten uns bei Technologie und Software-Architektur am bereits bestehenden Stack des RemedyMatch-Projekts. Wir setzten auf Spring Boot im Backend und nutzten das External-Task-Feature von Camunda, um unsere Service Tasks zu implementieren.
Zum Start des Semesterprojekts gab es in der Architektur von RemedyMatch bereits sechs verschiedene Komponenten. Die für uns relevanten sind dabei der SSO-Server, die Process Engine und das Frontend:
Für die Umsetzung starteten wir mit einer fachlichen Analyse der Logistik-Domäne, in der zunächst die Abläufe etablierter Unternehmen näher betrachtet wurden. Für RemedyMatch überlegten wir uns dann ein Konzept, das wie folgt aufgebaut war:
Den Prozess selbst hatten wir in Camunda samt Test-Automatisierung in kurzer Zeit implementiert und konnten uns dadurch auf das Logistik-Backend konzentrieren. Für die REST-Calls nutzen wir den bekannten Feign-Client und für die Speicherung der Daten setzten wir auf Spring Data JPA. Dabei teilten wir die Anwendung in drei Ebenen:
Das Anlegen des Lieferauftrags implementierten wir mit einem External-Task-Worker, was es uns erlaubte, den neuen Microservice von der restlichen Anwendung zu entkoppeln. Um offene User-Tasks abzuschließen oder Nachrichten an den Prozess zu senden, stellten wir für die bestehende React-Anwendung REST-Aufrufe im Logistik-Service bereit. Dies ermöglicht es den Empfängern und Spendern der Hilfsmittel, die Lieferung eigenständig abzuwickeln.
Um die Zustellung durch externe Logistiker zu ermöglichen, entwickelten wir gemeinsam mit dem UI/UX-Team von RemedyMatch einen MVP für eine separate Anwendung und passten unseren BPMN-Prozess darauf an.
Insgesamt war es ein rundum gelungenes und lehrreiches Projekt, das vor allem durch das Engagement aller Beteiligten sehr viel Spaß gemacht hat.
Rechtliches