Skip to content

Getting Started

REMSFAL ist eine Open-Source Facility-Management-Software, die aus einem Frontend und mehreren unabhängigen Backend-Microservices besteht. Diese Seite gibt dir einen Überblick über die Architektur, bevor du das Projekt lokal einrichtest.

Für die eigentliche Einrichtung stehen dir zwei Wege zur Verfügung:

  • Entwickler Setup — Backend und Frontend werden direkt mit mvn und npm gestartet. Empfohlen, wenn du aktiv am Code mitentwickeln möchtest.
  • Docker Setup — Das komplette Projekt wird per docker compose aus fertigen Container-Images gestartet. Empfohlen, wenn du REMSFAL nur ausprobieren oder als Ganzes lokal betreiben möchtest.

Architekturüberblick

┌──────────────────────┐
│  remsfal-frontend    │  Vue 3 SPA (Vite, TypeScript, PrimeVue, Tailwind CSS)
└──────────┬───────────┘
           │ HTTP (REST, JWT via Cookie)

┌──────────────────────────────────────────────────────────────────────────┐
│                         remsfal-backend                                  │
│                                                                          │
│  ┌────────────────────┐  ┌────────────────────┐  ┌─────────────────────┐ │
│  │  remsfal-platform  │  │  remsfal-ticketing │  │ remsfal-notification│ │
│  │  Port 8080         │  │  Port 8081         │  │  Port 8082          │ │
│  │  Login, Nutzer,    │  │  Mängel, Aufgaben, │  │  Benachrichtigungen │ │
│  │  Liegenschaften,   │  │  Chat, Angebote,   │  │  (E-Mail)           │ │
│  │  Organisationen    │  │  Dokumente         │  │                     │ │
│  └─────────┬──────────┘  └─────────┬──────────┘  └──────────┬──────────┘ │
│            │                       │                        │            │
│      PostgreSQL              Cassandra + MinIO          (kein Storage)   │
│                                                                          │
│            └───────────────┬───────┴────────────────────────┘            │
│                            ▼                                             │
│                     Apache Kafka (Event-Bus)                             │
└──────────────────────────────────────────────────────────────────────────┘

Frontend — remsfal-frontend

Das remsfal-frontend ist eine Single-Page-Application (SPA) auf Basis von Vue 3, Vite und TypeScript, gestylt mit Tailwind CSS und PrimeVue-Komponenten. Es kommuniziert ausschließlich über REST-Schnittstellen mit den Backend-Microservices und verwendet dafür einen typsicheren API-Client, der aus den OpenAPI-Spezifikationen der Microservices generiert wird.

Backend — remsfal-backend

Das remsfal-backend ist als Maven-Multi-Modul-Projekt organisiert und baut auf dem Quarkus-Framework (Java) auf. Es besteht aus drei eigenständigen Microservices, die jeweils über einen eigenen Port und eigene Datenhaltung verfügen:

MicroserviceZuständigkeitPortDatenhaltung
remsfal-platformLogin/Authentifizierung (OAuth/JWT), Nutzerverwaltung, Liegenschaften, Organisationen8080PostgreSQL
remsfal-ticketingMängel-/Aufgabenmanagement, Chat, Angebote, Dokumentenablage8081Cassandra + MinIO
remsfal-notificationVersand von Benachrichtigungen (z. B. E-Mails) an Nutzer:innen8082

Zusätzlich enthält das Backend-Repository zwei gemeinsam genutzte Bibliotheken:

  • remsfal-core — Business-Modelle und API-Interfaces, die von allen Microservices genutzt werden
  • remsfal-gaeb — XML-Bindings für den GAEB DA XML Standard 3.3 (Baugewerbe-Datenaustausch)

Kommunikation zwischen den Microservices

Die Microservices sind lose über Apache Kafka gekoppelt: Ereignisse wie neue Nutzer oder Statusänderungen an Mängeln werden als Events veröffentlicht und von den jeweils interessierten Microservices konsumiert. Synchron werden nur wenige Schnittstellen aufgerufen, etwa die Prüfung von JWT-Zugriffstoken durch die remsfal-platform-Microservice (Bereitstellung der öffentlichen Schlüssel unter /api/v1/authentication/jwks).

Repository-Übersicht

RepositoryBeschreibung
remsfal/remsfal-frontendVue 3 SPA (Frontend)
remsfal/remsfal-backendQuarkus Multi-Modul-Projekt mit allen drei Backend-Microservices
remsfal/remsfal-ocrOCR-Dienst zur Texterkennung in hochgeladenen Dokumenten

Bereit? Wähle den passenden Einstieg für dich: