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