-
Notifications
You must be signed in to change notification settings - Fork 1
Installationsanweisung Backend
Im Gegensatz zur App und der Verwaltungsoberfläche bildet das Backend keine Benutzeroberfläche für Blutspender/innen oder Mitarbeitende der Blutspende-Einrichtung selbst, sondern eine Schnittstelle zur Datenbank und bestimmten Funktionalitäten, die diese Benutzeroberflächen erst ermöglicht. Diese Schnittstelle wird „API“ (Application Programming Interface) genannt. Um eine funktionsfähige App und Verwaltungsoberfläche zu gewährleisten, muss dieses Backend parallel auf einem Server laufen, um so die Anfragen der App als auch, die der Verwaltungsoberfläche verarbeiten zu können.
Jede Aktion der App und Verwaltungsoberfläche, die Daten der Datenbank abruft oder verändert, muss mit dem Backend und somit der „API“ kommunizieren, dies geschieht über sogenannte Endpunkte.
Da die Aktionen, die Endnutzer/innen der App oder Mitarbeitende der Einrichtung ausführen, sich in ihren Rechten, in Bezug auf Zugriff auf die Datenbank, unterscheiden, existieren im Backend zwei „APIs“, eine für die App und eine für die Verwaltungsoberfläche. Somit werden verschiedene Aktionen für verschiedene Rollen an Nutzern/innen ermöglicht(z. B. sollte ein/e Blutspender/in nicht eine Terminanfrage annehmen können).
Damit die Verwaltungsoberfläche durchgehend aktualisiert wird und Terminanfragen von Blutspendern/innen in Echtzeit angezeigt werden, basieren die Endpunkte der sogenannten „Admin-API“ (API für die Verwaltungsoberfläche) nicht auf dem HTTPS-Protokoll, sondern auf dem WebSocket-Protokoll. Dieses Protokoll ermöglicht eine bidirektionale Verbindung, somit kann das Backend automatisch die Verwaltungsoberfläche aktualisieren, ohne zuvor einen Request von dieser erhalten haben zu müssen, wie es sonst über HTTPS nötig ist.
Eine Übersicht über alle Endpunkte des Backendes kann im Wiki in der Backend API Dokumentation gefunden werden. Im Folgenden können Sie nun nachlesen, wie Sie das Backend auf ihrem System installieren und aufsetzen können. Nachdem Sie alle hier aufgeführten Schritte in der angegebenen Reihenfolge ausgeführt haben, können Sie das Backend auf ihrem Rechner lokal bearbeiten und nach Belieben verändern.
Da das Backend mit dem Framework Django erstellt wurde und somit in der Programmiersprache Python geschrieben ist, muss zunächst diese Sprache installiert werden. Hierzu sollte die Version 3.10.1 installiert werden, da diese bei der Entwicklung genutzt wurde und bei der Nutzung einer neueren Version eventuell Konflikte mit den benutzten Packages auftreten könnten. Die Installationsdatei kann hier heruntergeladen werden, anschließend müssen Sie den Schritten folgen, die von Ihnen während der Installation verlangt werden. Wenn Sie sich weiter zum Framework Django informieren wollen, können Sie dieses in der offiziellen Dokumentation oder im Wiki unter der Framework Nutzung tun.
Aus Sicherheits- und Wartbarkeitsgründen wird die Container-Technologie Docker genutzt. Ein Container ermöglicht es den Zugriff, von Applikationen, mit all ihren Abhängigkeiten und Codes, auf Ressourcen zu verwalten. Dies geschieht auf Ebene des Betriebssystems, daher ist es noch effizienter als die Verwendung von virtuellen Maschinen. Um Docker zu verwenden, müssen Sie es zunächst installieren, dafür müssen Sie auf dieser Website die passende Version von Docker für Ihr Betriebssystem herunterladen. Wenn Sie Docker unter Linux nutzen, müssen Sie zusätzlich zum Docker Engine auch Docker Compose installieren, Windows- und Mac-Nutzer benötigen nur Docker Desktop und haben bereits alles Notwendige installiert. Die für die Installation von Docker Compose notwendige Datei können Sie ebenfalls auf dieser Website finden.
Um nun das Backend als Ganzes, also beide APIs, sowohl die User-API als auch die Admin-API gleichzeitig, zu starten, müssen Sie zunächst den Branch docker-2
des Git Repositorys auswählen. Um einen Docker Container zu starten, muss der Docker Engine auf dem PC oder Server laufen. Nun kann einfach im Projektordner ein Terminal geöffnet werden und der Befehl
docker-compose up -d
ausgeführt werden. Hierdurch startet der Docker-Container und alle nötigen Befehle zum Starten der beiden Django-Projekte werden innerhalb, dieses Containers, ausgeführt. Anschließend können beide APIs über den Localhost genutzt und getestet werden. Das Backend kann nun mit dem Befehl
docker-compose down
wieder beendet werden. Weitere Informationen über das Aufsetzen des gesamten Backendes im Rahmen eines Roll-Outs können Sie im Wiki unter Rollout-als-Organisation finden.
Um die User API einzeln zu starten, müssen Sie manuell alle Schritte ausführen, um das Django-Projekt zu starten. Hierzu öffnen Sie einen Terminal innerhalb des Ordners userAPI und führen den Befehl
pip install -r requirements.txt
aus, dieser Befehl installiert alle für diese API nötigen Packages und berücksichtigt hierbei zusätzlich auch die Versionen. Nun führen Sie die Befehle
python manage.py makemigrations
python manage.py migrate
und
python manage.py runserver
aus (in mac os und linux python3 anstatt python verwenden). Durch Strg+C
, innerhalb der Konsole, in der der Server gestartet wurde, kann dieser wieder beendet werden.
Um die Admin-API zu starten, muss ein Terminal innerhalb des Ordners adminAPI geöffnet werden, nun muss der Befehl
pip install -r requirements.txt
ausgeführt werden. Nachdem alle Packages installiert wurden, können Sie die Modelle der Datenbank migrieren und führen hierzu
python manage.py makemigrations
und anschließend
python manage.py migrate
aus. Anschließend muss nun Redis gestartet werden (für das Websocket-Protokoll), hierzu müssen Sie den Befehl
docker run -p 6379:6379 -d redis:5
ausführen. Wenn alle diese Schritte erfolgreich abgeschlossen wurden, können Sie nun den Server mit dem Befehl
python manage.py runserver
starten und anschließend mit Strg+C
wieder schließen.