Files
RoggioApp/Brainstorm/260426/06_Schnittstellen_und_Architektur.md
T
2026-04-26 19:42:42 +02:00

2.3 KiB
Executable File

RoggioApp - Architektur & Schnittstellen-Strategie

1. Das Kern-System (Die absolute Source of Truth)

Das Ziel ist eine unantastbare, zukunftssichere und hochflexible Datenstruktur, die Schnittstellen (Frontends, CMS, Apps) als austauschbare Plugins betrachtet.

  • Der Datenbank-Core:
    • Relationales Fundament (SQL): Für absolute Konsistenz bei Transaktionen, Buchungen, Finanzen und den Kern-Entitäten (Nodes/Edges). Postgres ist hierfür ideal.
    • NoSQL-Einflüsse / Flexibilität: Eigenschaften (Traits/Properties), die sich ständig ändern können, werden als JSONB-Felder (in Postgres) oder in einer kooperierenden NoSQL-Struktur abgelegt.
    • Caching/Performance: Redis oder Memory-Caches vor den Berechnungen, damit der komplexe Graph nicht bei jedem Aufruf die SQL-DB auslastet.
    • Die API: Eine zentrale REST- oder GraphQL-API. Nichts redet direkt mit der Datenbank, alles geht durch diese API.

2. Die Satelliten (Schnittstellen & Konsumenten)

Um dieses Kern-System kreisen verschiedene spezialisierte Werkzeuge, die über die API kommunizieren:

A. Nextcloud (Das interne Werkzeug)

  • Auth (RBAC): Nextcloud fungiert als Identity Provider (OIDC). Rollen und Rechte des Kollektivs werden dort gepflegt.
  • Ablage: Dokumente, Rechnungs-PDFs und Verträge werden in Nextcloud gespeichert (das Roggio-Backend speichert nur den Link/die WebDAV-Referenz).
  • Organisation: Tasks (Putzen/Support) und interne Kalender-Syncs (CalDAV) für das Kollektiv.

B. WordPress (Das Schaufenster)

  • Aufgabe: Marketing, Landing Pages, SEO.
  • Integration: Ein schlankes Plugin oder Widget greift per API auf das Roggio-Backend zu, liest die Verfügbarkeiten aus (Belegungskalender) und schickt Buchungsanfragen zurück ins Kern-System.

C. WebApp / MobileApp (Das Cockpit)

Eine (oder zwei getrennte) maßgeschneiderte Frontend-Applikationen (vermutlich React/React Native), die über die API mit dem Kern sprechen:

  • Für das Kollektiv / Personal: Das "Backend-Frontend". Ansicht von Rechnungen, Zuweisen von Tasks, Managen der Graphen (Einheiten erstellen).
  • Für die Gäste (Kunden): Eine Art "Guest-Portal" (Self-Service). Rechnungen einsehen, Services hinzubuchen (z.B. Sauna), Chat/Nachrichten, Check-in-Infos.