Zum Inhalt springen

Softwaremodule

Aus MegBes Wiki

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`.