2.3 KiB
Executable File
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.