Softwaremodule
Softwaremodule
[Bearbeiten]Der aktuelle Quellcode von MegBes ist als Maven-Projekt mit mehreren Modulen aufgebaut. Der maßgebliche Stand befindet sich im privaten Repository `tinetronics/megbes`.
common
[Bearbeiten]Gemeinsam verwendete Datenmodelle, Konfigurationsklassen, Logging-, Mail-, Zertifikats- und Sicherheitsfunktionen. Dieses Modul wird von mehreren Diensten verwendet.
external
[Bearbeiten]Implementiert `megbes-external`. Das Modul stellt die zentralen HTTP-Endpunkte bereit, übernimmt Authentifizierung und Benutzer-/Stationslogik und kommuniziert mit dem projektspezifischen `megbes-internal`.
internal
[Bearbeiten]Implementiert `megbes-internal`. Das Modul nimmt Aufrufe von `megbes-external` entgegen, verwaltet bei Bedarf Stationszustände und sendet die eigentlichen UDP-Signale in das lokale Ausstellungsnetz.
client
[Bearbeiten]Enthält die statischen Web-Oberflächen und JavaScript-Dateien für Anmeldung, Ticketdarstellung, Hub und Stationsbedienung. Es existieren Varianten mit und ohne Authentifizierung sowie für stationsgesteuerte Projekte.
status
[Bearbeiten]Implementiert den Status-Monitor. Zu den erkennbaren Funktionen gehören:
- Status- und Verbindungstests
- Anzeige interner Aufrufprotokolle
- Erstellung, Installation, Download und Löschung von Zertifikaten
- Ver- und Entschlüsselungswerkzeuge für Konfigurationswerte
- Aktivierung und Deaktivierung bestimmter Mail-Informationen
utils
[Bearbeiten]Enthält kleine Hilfsprogramme zum Senden von UDP-Testsignalen für `init`, `idle`, `touchscreen` und `open`.
release-builder
[Bearbeiten]Hilfsmodul zur Erstellung der Releases.
Build und Veröffentlichung
[Bearbeiten]Der aktuelle Build verwendet Java 25 und GitHub Actions. Bei Änderungen am Branch `master` werden die Module gebaut und Snapshot-Docker-Images für `megbes-external`, `megbes-internal` und den Status-Monitor veröffentlicht. Produktive Releases werden gesondert versioniert; die Historie steht in `version.txt`.