Systemarchitektur
Die Systemarchitektur besteht aus einem Touchdisplay als Ausgabe und Eingabe und dem Softwareteil bestehend aus Backend und Frontend. Das Frontend stellt klassische API Anfragen zum Backend. Das Backend liefert die nötigen Daten. Als Prototyp reicht es wenn das Backend und Frontend zusammen auf dem gleichen System, der Linux Rechner verbaut im Touchdisplay, liegt.
Frontend
Als Frontend wird das Framework Vue 3 verwendet, Sinn und Zweck davon ist die Wiederverwendbarkeit der Komponenten. Es ist ein clientseitiges Javascript-Webframework. Da es eine Art virtuelle Kopie des DOMs erstellt. Man arbeitet mit der Kopie um, das Ansprechen der Elemente oder auch Berechnen komplexer Daten einfacher zu gestalten. Vue sorgt dabei ganz selbstständig dafür, dass alles was man in der Kopie macht, zum echten DOM übersetzt und synchronisiert wird.
Backend
Golang wird bei Atticode häufig als Backend verwendet, zudem bietet es hohe Perfomance und Stabilität. Durch die Art wie Fehler behandelt werden, lassen sich auch Laufzeitfehler sehr genau bestimmen und Abhandlungen definieren, damit die Software eine hohe Ausfallsicherheit gewährleistet. Im Gegensatz zu vielen anderen Sprachen ist Golang sehr nahe an der Sprache C. Golang nutzt keine Zwischensprache oder Virtuelle Maschine. Auch ist Golang gewissermaßen eine cross-platform Technologie, das heißt, egal auf welchem Gerät man Golang nutzt, es verhält sich immer gleich. Golang erstellt einen Build als Executable und dieser bleibt so wie es programmiert wurde ganz ohne Runtime oder Dependecies. Nach einem Build ist Golang enorm performant. Golang hat den Vorteil, dass man eine hohe Entwicklungsgeschwindigkeit hat. Wir verwenden Golang um ein API-Schnittstelle zu bauen. Dazu kommt das Echo Webframework und das ORM für eine rudimentäre Datenbank via SQLite.
Hardware
Ein Touchdisplay auf einem Standfuss soll hier als Anzeige und Eingabe Gerät dienen. Die Idee entstammt den Verkaufsterminals von IKEA und McDonalds. Das Display hat eine Auflösung von 1080 x 1200. Im Touchdisplay Gehäuse kann ein kleiner Intel Nuc I3 mit einem Ubuntu 22.04 Betriebssystem verbaut werden.
Applikationsarchitektur
Das ganze Frontend wird mit Hilfe von Lorca in ein einzelnes Executeable zusammengeführt und steht dann so zur Verfügung. Das Framework stellt dann ein typisches “index” HTML File bereit in dessen die “App” eingesetzt wird. Die Startseite zeigt nur je nach URL eine von mir erstellte View und lädt dazu seine Komponenten rekursiv. Auch mit dazu wird der Pinia Store geladen, der dazu da ist, die vom Benutzer gemacht Eingaben und Änderungen festzuhalten. Der Aufbau der Webseite kann man sich wie ein Wühltisch mit Förderband zur Kasse vorstellen. Im ersten Schritt sucht man sich aus was man kaufen möchten, danach wird mit durch den Kaufprozess geführt bis hin zur Feedback View, an dessen Stelle man nun die Applikation verlassen kann. Das Gerät speichert keinerlei Informationen über den Mieter oder dessen Kunden, alles wird dynamisch von/zum Server geladen.
Schlusswort
Diese Diplomarbeit war für mich eine sehr große Chance, um gute Erfahrungen zu sammeln. Als Quereinsteiger war es nicht leicht in so kurzer Zeit mir verschiedenste Sprachen und Funktionen anzueignen. Ich könnte mich so richtig in ein neues Frameword rein fuchsen. Golang war auch spannend und das Zusammenspiel der beiden war auch sehr interessant. Das Ganze als Kiosk App starten zu können mit Lorca war auch beeindruckend. Ich habe sehr viel neues gelernt und konnte bestehendes gut vertiefen. Auch das Touchdisplay hat mir einige Einblicke erbringen können. Das Projekt hat mir gezeigt, dass es oft viele kleinere Probleme gibt, die sich aber mit genug Fleiß alle Stück für Stück beseitigt werden können. Und ich hoffe stark, dass ich nun bereit bin weitere wundervolle Programme zu entwickeln, um unser aller Leben einfacher zu gestalten.