Als Datenbank wird SQLite verwendet. Die Datenbankstruktur ist in folgendem Bild dargestellt.
Ein Benutzer kann sich mittels Basic-Auth und seinem Benutzernamen und Passwort anmelden. Wenn die Anmeldung erfolgreich war bekommt der Benutzer in seiner Antwort einen Session-Cookie der für weitere Anfragen verwendet werden kann. Damit ist sichergestellt, dass ein Benutzer nur einmalig sein Passwort an den Server übermitteln muss.
Die REST-API des Backends ist mittels einer openapi.yaml Datei definiert und dokumentiert. Damit die Dokumentation benutzerfreundlich gelesen werden kann ein Online-Viewer verwendet werden indem die URL https://raw.githubusercontent.com/Cryp-Tour/dokumentation/main/backend/openapi.yaml importiert wird.
Da die REST-API mittels der OpenAPI.yaml Datei dokumentiert ist und alle Funktionen dafür ein einheitliches Namensschema haben, entfählt die Kommentierung dieser Funktionen.
Enthält die Workflow-Dateien für die Ausführung der Github Actions.
Konfig-Datei zum einfacheren Starten des Nodejs-Servers in VSCode.
Enthält Funktionen die für die Datei API/routes/testRoute.js benötigt werden.
Hilfreiche Funktionen für die Fehlerbehandlung und dem Dateiumgang.
Erstellt die Hauptrouten für die Touren und Benutzer, sowie der 404 Fehlermeldung.
Route die Verwendet werden kann, um zu testen ob die REST-API erreichbar ist.
Enthält alle Routen / Endpoints die für Touren verfügbar sind. Alle Endpoints rufen dann die datenverarbeitenden Funktionen in API/services auf. Diese Funktionen überprüfen auch, ob ein Benutzer eingeloggt ist.
Enthält alle Routen / Endpoints die für Benutzer verfügbar sind. Alle Endpoints rufen dann die datenverarbeitenden Funktionen in API/services auf. Diese Funktionen überprüfen auch, ob ein Benutzer eingeloggt ist.
Enthält alle datenverarbeitenden Funktionen für Touren.
Enthält alle datenverarbeitenden Funktionen für Benutzer.
JSON-Dateien mit Rinkerby Contracts. Für den Kauf benötigt.
Hier werden die Bilder und GPX-Dateien für jede Tour abgelegt. Dazu bekommt jede Tour einen Ordner. Der Ordnername ist die TourID.
JS-Klasse die die Arbeit mit SQLite Datenbank vereinfacht. Erstellt die Tabellen falls sie nicht exestieren und hat funktionen, um SQL-Befehle auszuführen.
Environment Variablen die für die erkennung von Tourkäufen benötigt wird.
Enthält die Konfiguration, um aus dem Server Repo ein Docker Image zu erstellen.
Ist die Docker-Compose Datei die sich auf dem Server befindet und die Container für das Frontend und Backend startet.
Funktionen die den Umgang mit Ordnern, GPX-Dateien, Bildern, Benutzern und Crypto vereinfacht und häufiger in verschiedenen Routen der REST-API benötigt werden.
Dateien, damit der Nodejs-Webserver läuft, um das Backend bereitzustellen.