Bachelorarbeit von Maximilian Azendorf
Der Master ist immer unter ba.azendorf.com deployed.
- NX 12 als Projektverwaltung
- CouchDB als Datenbank
- Nest 7 als Node-basiertes Backend-Framework
- Angular 12 als Frontend-Framework
- Spectre.CSS als CSS-only UI-Framework
- JAM Icons als Icon-Bibliothek
Außerdem
Das Projekt benutzt yarn als Paketverwaltung.
- apps/ – Die einzelnen NX Apps (Frontend, Backend etc.)
- api/ – Das Backend
- client/ – Das Frontend
- client-e2e/ – End-to-End-Tests für das Frontend
- libs/ – Die einzelnen NX Libraries, die von Apps geteilten Code beinhalten
- api-interfaces/ – Enthält Datenmodell-Interfaces, die den Datenbankzustand abbilden und Code, um mit der CouchDB-Datenbank zu interagieren
- utility/ – Enthält Framework-unabhängigen Code (z.B. Implementationen von Algorithmen)
- deploy/ – Enthält CD-spezifische Docker-/docker-compose-files und ein Skript, um ein Docker-Image zusammen mit einem vorkonfigurierten CouchDB Image zu bauen.
Das Backend generiert signierte JWT-Access-Tokens, mit der sich das Frontend bei der CouchDB-Instanz authentifizieren kann. Damit das möglich ist, muss sowohl die CouchDB-Instanz als auch das Backend über den selben HMAC-Schlüssel verfügen.
Das Skript deploy/build.sh generiert einen solchen Schlüssel und erstellt sowohl ein App- als auch ein CouchDB-Image mit diesem genertierten Schlüssel.