Einleitung in unsere Idee

Was soll mit unserer Applikation „ConnectLogistic“ bewirkt werden? Es steckt schon im Namen „Connect“- also Verbindung zwischen – „Logistic“ – Logistik Dienstleistern – also allen Mitgliedern einer Lieferkette. Es gibt immer Logistik Unternehmen, die nicht genug Personal haben, manchmal auch gar kein Personal, um verschiedene Sendungen, vor allem auf der Straße, von A nach B zu bewegen. Zusätzlich gibt es auch viele private Fahrer oder auch Berufskraftfahrer, die nicht zu einem Unternehmen gehören und sich für verschiedene Aufträge bei verschiedenen Firmen mühsam über verschiedene Website oder Anbietern bewerben müssen.
Um dieses lästige hin und her suchen zu vereinfachen bieten wir eine zentralisierte Schnittstelle (Rest API), über die es möglich ist Aufträge zu erstellen, zuzuweisen, Bewerbungen auf Aufträge zu verschicken, diese anzunehmen oder abzulehnen, und den konsequenten Austausch zwischen Disponenten, Fahrern, und Empfängern über möglichst viele Kanäle zu ermöglichen.

Backend

Das Backend ist das Herzstück des Systems. Als UMS (Universal Messaging Server) bildet es die Schnittstelle zwischen dem Frontend und zahlreichen Messaging Diensten. Dabei ist das Backend als Restful API aufgebaut. Entsprechend nimmt die API via https Request die Nachlicht entgegen und verteilt diese an die entsprechenden Empfänger. 

Dabei vereint der UMS Messaging Dienste wie WhatsApp, SMS, E-Mail und Telegram. Durch die Implementierung als Restful API ist es in Zukunft ohne großen Aufwand, möglich weitere Messaging Dienste, zu implementieren. 

Datenbank

Beim Datenbank design lag unser Augenmerk auf der Skalierbarkeit. Um die gesamte Plattform dabei so dynamisch wie möglich zu halten ist die das gesamte Datenbank design in der 3. Normalform gehalten. Wenn der UMS (Universal Messaging Server) um weiter messenger erweitert wird. Können in der Datenbank einfach weitere Account Types hinzugefügt werden. 

Technologie

Als Technologien kommen hier NGINX als Webserver, Python als Programmiersprache und uwsgi als Webservice Gateway Interface zum Einsatz. In der heutigen Zeit spielt das Thema Security eine große Rolle. Daher ist die gesamte Kommunikation der API via SSL gesichert. Zudem kommt JWT (json web token) zum Einsatz, um entsprechend die Daten auch vor nicht autorisierten zugriffen zu schützen. Wenn nun ein Fahrer eine Nachricht via App an den Empfänger sendet, erkennt die API automatisch, wie die Daten versendet werden sollen und versendet diese. Wenn ein Empfänger auf eine Nachricht antwortet, wird diese über einen Bot analysiert.

Email

Die E-Mails werden von dem UMS über einen extern zur Verfügung gestellten SMTP Server angesteuert. Der UMS nimmt die Daten von dem Frontend Oberfläche entgegen und entscheidet anhand von diesen Informationen welcher Kontaktweg verwendet werden soll, momentan stehen 2 Möglichkeiten zur Verfügung, E-Mail und SMS-Kommunikation. Die entgegenkommenden Nachrichten werden ebenfalls von dem UMS verarbeitet und basierend auf dessen Inhalt an die richtige Stelle weitergeleitet

SMS

Der SMS-Server ist eigens dafür bereitgestellter Raspberry Pi mit GSM Modul (Sim7600E), der Raspberry implementiert einen Service, der in regelmäßigen abständen den UMS nach neuen zu versendenden Nachrichten anfragt und bei erfolgreicher Absendung dem API-Server antwortet, damit SMS einmal und nur einmal gesendet werden. Diese über die selbstentwickelte Bibliothek an das SIM7600E Modul gesendet und fragt anschließend nach empfangenen SMS ab und sendet diese aufbereitet an die UMS-API zurück.

Frontend

Um es nicht nur bei einer gut ausgebauten API zu belassen implementierten wir diese auch in einem Cross Plattform Frontend. Wir beginnen mit dem Login Screen unserer App auf einem iPhone. Unsere App ist in Flutter, einem Open Source Framework von Google, geschrieben. Durch Flutter würde dieser auf jeder Plattform gleich aussehen.

Sobald sich ein Nutzer angemeldet hat werden die Login Daten im lokalen Speicher des jeweiligen Geräts gespeichert. Somit wird der Nutzer bei jedem öffnen der App oder Website automatisch eingeloggt. 

Die Startseite ist Möglichst einfach und Übersichtlich Gestaltet. Wie in nahezu jeder App mit SwiftUI findet sich am unteren Bildschirmrand eine TabNavigationBar die Verschiedene Übersichten aufruft.

Jede Übersicht hat ausserdem in den Oberen ecken durch Icons symbolisierte Funktionen und Aktualisiert sich selbst durch einen sogenannten “pull to refresh”. 

 

 

Abhängig von der Rolle in der Lieferkette wird hier eine abgeänderte Navigationsleiste angezeigt.

Informationen zu einem Job

Die übersichtliche und einfach zu verstehende “Job Details” Seite ist für jeden Benutzer der App relevant. 

Je nach dem welches Verhältnis der Nutzer zu einem bestimmten Job hat, werden ihm unterschiedliche Elemente angezeigt.

Inform Congsingee: Fahrer informiert Empfänger über den UMS

Das Herzstück unserer Anwendung ist der Universal Messaging Service. Über diesen ist es möglich Informationen über gänige Wege (SMS, Email) zu verschicken und zu Empfangen. Die Möglichkeiten dafür sind größer als die Funktion aussieht. Unser UMS erkennt welche Kontakt Adresse im Job hinterlegt ist (Telefonnummer oder Email) und stellt Informationen an diese zu. 

Falls ein, wie im gezeigten Beispiel, Empfänger auf diese SMS reagieren sollte, weist der UMS diese Antwort dem bestimmten Job zu und wir können diese im Frontend ansehen.

Job auf den Marketplace einstellen

Dieses Elementare Feature darf natürlich auch nicht fehlen. Um die intuitive Benutzung sicherzustellen sieht diese nahezu gleich aus wie das ansehen eines Jobs.

Durch die Plus und Minus Icons lassen sich Orderlines zum Job hinzufügen. 

Auch hier erscheint vor dem einstellen des Jobs ein Popup, das nochmal abfragt, ob die vorgenomme Aktion wirklich durchgeführt werden soll. 

Chat

UM den schnellen Austausch zwischen jedem Mitglied einer Lieferkette zu ermöglichen, haben wir auch einen Chat implementiert. Bei diesem war eine Intuitive Bedienung besonders wichtig. Ob so ein Feature bei Personengruppen wie Berufskraftfahrern tatsächlich anklang findet bleibt offen aber die Möglichkeiten dafür sind auch hier weitaus größer wie im gezeigten Beispiel. 

Die API bietet bereits die Möglichkeit auf einen Dateiaustausch zwischen Nutzern, diese konnten wir aufgrund der mangelnden Zeit leider nichtmehr im Frontend integrieren. 

Ein schneller Austausch kann über dieses Tool auch zwischen Personen gewährleistet werden, die sonst über die unterschiedlichsten Plattformen (Email, Whatsapp, Telegram) kommuniziert hätten. (Disponent und Fahrer)

Zum Abschluss möchten wir sie auf unsere vollständige Zusammenfassung verweisen.

NACH OBEN