Überblick
- Anforderungsworkshops zur Definition der Prozesse und der Benutzendenoberfläche
- Entwicklung und Betrieb der Web-Plattform
- Datenschutz-konforme Umsetzung bei gleichzeitig möglicher Nutzung von Daten für Begleitforschung
Informationen
Träger des Projekts ist der Konglomerat e.V.
Die Materialvermittlung Dresden
Die Idee für das Projekt entstand im Rahmen des Wettbewerbs "Zukunftsstadt Dresden 2030". Das Ziel ist der nachhaltige Umgang mit Rest-Material. Dieses soll zum Up- und Recycling an Kunstschaffende, Schulen, Kitas und Privatpersonen vermittelt sowie ein Beitrag zur Umweltbildung geleistet werden.
Die Materialvermittlung ist eines von 8 Projekten, die in diesem Wettbewerb ausgewählt wurden.
Herausforderung
Ziel war die Erstellung einer Plattform, die es Organisationen erlaubt Rest-Material unter einander oder an Privatpersonen zu vermitteln. Ein Material durchläuft dabei mehrere Zustände von der initialen Erstellung in der Plattform, über die Veröffentlichung und Reservierung bis hin zur Abholung. Die Plattform soll dabei intuitiv und insbesondere auf Mobilgeräten benutzbar sein, um eine hohe Akzeptanz zu erreichen.
Materialflüsse, also die tatsächliche Vermittlung von Material, sollte im System für Forschungszwecke dokumentiert werden. Die Herausforderung bestand hierbei in der Konzeption und Implementierung eines Datenmodells, welches die datenschutzrechtlichen Aspekte berücksichtigt, das Rechtekonzept berücksichtigt und trotzdem ausreichend Flexibilität in der täglichen Nutzung lässt.
Eine weitere Herausforderung stellte die Visualisierung der Zustände dar, die ein Material Schritt für Schritt durchläuft, damit dieser Prozess auch für gelegentliche Nutzer:innen nachvollziehbar ist.
Lösung
Die Web-Anwendung basiert auf dem API Platform Framework, welches das PHP-Framework Symfony als Grundlage hat. Die Nutzeroberfläche ist als React-Anwendung implementiert. Diese kommuniziert mit dem Backend über eine GraphQL-Schnittstelle.
Aus dem in PHP implementierten Datenmodell erzeugt API Platform automatisch eine GraphQL Schnittstelle. In einem zweiten Schritt kann für diese Schnittstelle automatisch eine typsichere Beschreibung in TypeScript generiert werden. Durch dieses Vorgehen gewährleisten wir Typsicherheit im gesamten Stack und erhöhen so die Entwicklungsgeschwindigkeit bei Änderungen des Datenmodells.
Zusätzlich wurde das Datenmodell testgetrieben entwickelt. So konnte das Verhalten von Material hinsichtlich Sichtbarkeit, Zuständen und Abläufen modelliert, implementiert und dokumentiert werden.
Als Grundlage für ein besseres Verständnis über die Material-Zustände wurden diese mit Hilfe einer Statemachine von einander abgegrenzt und können so verständlicher in der Nutzeroberfläche visualisiert werden.
Der beschriebene Stack und das zu Grunde liegende Datenmodell garantieren auch in Zukunft Spaß und Geschwindigkeit bei der Weiterentwicklung :)