Queued - Sicher im Supermarkt
Der Prototyp kann hier direkt getestet werden (ohne echte Daten).
Vorab zum Team und Projekt
Wir sind ein Team aus 11 Personen, die sich durch das Projekt #WirvsVirus kennengelernt haben. Unsere Erfahrungen aus den Bereichen der Wirtschaftsinformatik, Informatik, Telematik und dem Vertrieb im Lebensmitteleinzelhandel haben wir gemeinsam genutzt um ein komplett neues Produkt zu entwickeln. From Scratch haben wir die System-Architektur, Schnittstellen-Analyse und Programmierung, sowie das Design und Concept-Development aufgebaut.
Das Projekt
Heutige Situation
Im Frühjahr 2020 hat das Corona Virus auch Deutschland erreicht. Nachdem in manchen Teilen des Landes bereits Ausgangssperren verhangen wurden, galt es grundsätzlich Abstand zu anderen Menschen zu halten um das Infektionsrisiko niedrig zu halten. Beim Einkaufen in den Supermärkten jedoch war der Abstand aufgrund enger Regalreihen und langen Schlangen an den Kassen die Märkte oft überfüllt und der Mindestabstand zwischen den Menschen nicht mehr gewährleistet.
Das Problem, das gelöst werden muss
Um den Mindestabstand zwischen den Menschen sicherzustellen muss die Anzahl der Ladenbesucher reduziert werden. Dafür muss geregelt werden wie viele Personen wann einkaufen gehen können und dürfen. Somit kann die Anzahl an gleichzeitig Wartenden und Ladenbesuchern auf einem gesunden Level gehalten werden.
Lösung des Problems
Durch „Queued – Sicher im Supermarkt“ werden Wartenummern für Zeitfenster an die Menschen verteilt. Es wird vorgegeben zu welcher Uhrzeit eingekauft werden kann, ohne in langen Warteschlangen zu stehen oder überfüllte Supermärkte vorzufinden. Dadurch steigt die Sicherheit, dass der Mindestabstand zwischen den Kunden gewahrt ist. Gleichzeitig bleibt für die Mitarbeiter genügend Zeit zum Nachfüllen der Waren.
Was kann die Applikation?
"Queued" ist eine Webapplition , die im Browser und auf mobilen Geräten funktioniert. Die Anwendung ermöglicht es:
- einen Supermarkt auswählen, in welchem
- ein Zeitfenster gebucht und
- die Anzahl der freien und belegten Zeitfenster eingesehen werden kann.
Wer ist die Zielgruppe?
Alle Menschen in Deutschland (oder auch weltweit), die auch während der Corona-Krise einkaufen müssen. Insbesondere auch Menschen ohne Internetzugang oder wenig Kenntnisse im Umgang mit der digitalen Welt. Integration von Menschen ohne Internetzugang oder Kenntnissen im Umgang mit der digitalen Welt
Integrationskonzept
Für Menschen, die keinen Internetzugang besitzen oder denen der Zugang zur digitalen Welt aufgrund fehlender Kenntnisse erschwert ist, soll es dennoch die Möglichkeit geben, den Service von „Queued“ zu nutzen. Dafür soll es möglich sein „lokale Hotlines“ anzurufen, die von Mitmenschen auf freiwilliger Basis betrieben werden. Da für jeden Markt eigene Öffnungszeiten und abweichende Anzahlen an gleichzeitigen Kunden gelten ist es schwierig eine zentrale Hotline anzubieten, da auch die Auslastung sehr hoch sein dürfte. Für jeden Markt sollen daher Listen ausgehangen werden, wo sich Freiwillige mit ihrer Telefonnummer eintragen können, um somit für die entsprechende Zielgruppe erreichbar zu sein und im Namen dieser einen Termin buchen können. Freiwillige Helfer, die ihre Telefonnummer hinterlegt haben, können somit angerufen werden und übernehmen dann stellvertretend die Buchung eines Zeitfensters zum Einkaufen. Je mehr Menschen Solidarität zeigen, ihre Nummer als Hotline-Nummer anbieten, desto eher kann die Überlastung einer zentralen Hotline umgangen werden. Auch denkbar wäre die Zuordnung der Nummer für entsprechend umliegender Straßen. So könnten die freiwilligen Helfer Straßennamen angeben, für die sie die zuständige Hotline darstellen.
Bearbeitungsprozess
Die Teamfindungsphase verlief zugegebenermaßen ein wenig chaotisch. Nachdem wir uns jedoch zu einer Gruppe von 11 Leuten zusammengefunden haben, nutzten wir den ersten Abend damit uns gegenseitig kennen zu lernen und uns über unsere Skills auszutauschen. Auch wenn wir uns über den Grundgedanken der Aufgabe einig waren, so gab es hinsichtlich der Zielerreichung für das Wochenende sehr heterogene Meinungen. Aus diesem Grund befassten wir uns zunächst nur mit der Erarbeitung einer einheitlichen Zielvorstellung. Nach einer sehr produktiven und auch lustigen Brainstorming- und Diskussionsrunde stand diese dann fest und lautete wie folgt:
Beschränkung der Anzahl gleichzeitiger Einkäufer/innen in Supermärkten durch Vergabe von Timeslots
Ideenfindungsprozess - Galeriemethode
Das Problem, vor dem wir nun standen war, dass wir zwar eine einheitliche Zielstellung besaßen, jedoch jeder ein anderes Bild von dem Weg dorthin im Kopf hatte. Um also einen gemeinsamen Lösungsansatz zu finden wählten wir die Galeriemethode, die es möglich macht, Kreativ die Ideen von jedem einzelnen in der Gruppe zu Teilen um einen gemeinsamen Konzens zu erarbeiten.
Die Galerie:
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
Galeriemethode - Queued
Technologieentscheidung
Die Technologieentscheidungen wurden vor allem vom Bedarf nach schnellem Prototyping beeinflusst. Deswegen wurden Technologien gewählt für die im Team ein Experte vorhanden war, der diese täglich nutzt, um sicher zu stellen, das auch ein Ergebnis erzielt werden kann. Der Quellcode ist unter https://github.com/Nuckal777/queued zu finden und ist unter der GPLv3 veröffentlicht.
Frontend: Für das digitale Frontend kommt React.js zum Einsatz. Einerseits gibt es im Team einen Experten, andererseits bietet React.js ein qualitativ hochwertiges Ökosystem, um das Prototyping zu beschleunigen. React.js ist ein Framework für die Entwicklung von Webseiten. Da jene nur einen Browser benötigen, ist Kompatibilität für alle Endnutzerplatformen und Geräte gegeben. Weiterhin müssen die Endnutzer und die Ladenbetreiber kein neues Programm installieren, was Einführung des Systems vereinfacht. Um technisch unerfahrene Nutzer nicht auszuschließen, kann ein Termin auch per Telefon vereinbart werden.
Backend: Im Team gibt es einen Python Experten, weshalb dieses im Backend zum Einsatz kommt. Zusätzlich erlaubt es Python schnell funktionsfähige Programme zu entwickeln, was mit unter an den funktionsreichen Bibliotheken liegt. Bei Queued wird das Flask Framework für den Webserver in Kombination mit SQLAlchemy und SQLite verwendet. SQLite wurde als Datendatenbank gewählt, da diese nicht konfiguriert werden muss, was das Prototyping beschleunigt. Flask erlaubt es im Entwicklungsmodus ebenfalls statische Dateien zu verteilen. Dies kann genutzt werden, um die von React.js kompilierten Dateien über den Python-Server auszuliefern. Damit muss für den Prototyp nur eine Anwendung verteilt werden, um diesen testen zu können. Für die Integration des Telefonservices können Anbieter, wie z.B. Twilio, genutzt werden.
Skalierbarkeit: Obwohl für den Prototyp nur eine Anwendung verteilt werden muss und eine lokale SQLite Datenbank zum Einsatz kommt, ist das System mit wenigen Umbauten skalierbar. Durch die Verwendung des Object Relational Mapper SQLAlchemy kann die zugrunde liegende Datenbank einfach durch eine verteilte Lösung ausgetauscht werden. Damit können auch mehrere Instanzen des Webservers aufgesetzt werden, die mit den Daten arbeiten, da der Webserver selbst zustandslos ist. Das Frontend sollte dann über einen weiteren Webserver, wie nginx, ausgeliefert werden. Hier können bei Bedarf mehrere Instanzen aktiv sein. Durch die Containerisierung aller Komponenten könnten diese z.B. durch Kubernetes dynamisch skaliert werden.
Herausforderungen
Das Team ist/war mit verschiedenen Herausforderungen konfrontiert. Zu Beginn waren wir eine Gruppe völlig unterschiedlicher Menschen aus ganz Deutschland und mussten uns selbstständig organisieren und eine gemeinsame Zielstellung spezifizieren. Nachdem dies geschehen war musste eine Architektur für das System ausgearbeitet werden. Dabei war schwierig, dass jeder von uns Fähigkeiten in anderen Bereichen hat. Am Ende hat der Wille das Projekt voran zu treiben, aber auch diese Hürde überwunden. Neben den koordinativen Herrausforderungen gibt es natürlich auch technische. Zu Nennen sind hier Zeitzonen und der Datenschutz.
Was haben wir erreicht
Wir haben ein prototypisches Browser Frontend und Backend entwickelt mit dem es möglich ist, einen 20-minütigen Termin zum Einkaufen in einem Laden zu reservieren.
Weiterhin können alle gebuchten Einkäufe eines Nutzers in einer Übersicht dargestellt werden.
Was wir gelernt haben
Wir haben viel gelernt, angefangen bei Organisation, über technische Themen bis hin zur Erstellung von Videos.
Ausblick (What's next for 1_019_92_timeslotmanagement / Queued)
Queued ist noch erweiterbar. Dafür gibt es bereits verschiedene Ideen:
- Anzeige im Laden, welche Einkäufe gerade getätigt werden dürfen
- Tablets/Knopf oder ähnliches vor den Läden, um einen Termin zu erhalten, falls ein Kunde weder angerufen noch digital einen Termin vereinbart hat
- Algorithmus, der automatisch den zeitlich nächsten Termin mit akzeptabler Auslastung findet
- Oberfläche für Betriebe, wo Öffungszeiten, Kapizitäten und Narichten an Kunden konfiguriert werden können
- Algorithmus der konfigurierte Kapazitäten verwaltet/validiert
Mitglieder
Lukas, Lennard, Erik, Hendrik, Janosch, Dennis, Nico, Niels, Tobias, Rob, Wilfried
Log in or sign up for Devpost to join the conversation.