Dokumentace
Centrum nápovědyArchitekturaPřehled systému
docs/cs/01-architecture/system-overview.md
Přehled systému
Co je OPORA
OPORA je multi-tenant B2B SaaS platforma pro výpočty lešení. Poskytuje projektové workflow pro vytvoření/úpravu výpočetních vstupů, deterministický výpočet výsledků a tvorbu auditovatelných výstupů.
Technologický základ
- Frontend / server rendering: Next.js (App Router)
- Autentizace + primární databáze: Supabase (Auth + Postgres)
- ORM: Prisma
- Doménová logika: čistá TypeScript doménová vrstva (deterministická, bez vedlejších efektů)
- Nasazení: Vercel (web), Supabase (managed Postgres/auth)
High-level architektura
- Client/UI: stránky a komponenty pod
/app/*pro autentizované produktové workflow; marketing na/…. - Aplikační vrstva: orchestruje use-cases (vytvořit projekt, spočítat, exportovat) a vynucuje guard logiku (auth/org/RBAC/subscription).
- Doménová vrstva: implementuje pravidla výpočtu lešení jako čisté funkce s explicitními vstupy/výstupy.
- Infrastrukturní vrstva: Supabase klienti, Prisma přístup k datům, externí integrace (billing, exporty).
Klíčové invarianty (musí platit)
- Izolace tenantů: veškerý přístup k datům je scoped na Organizaci (tenant). Žádné cross-tenant čtení/zápisy.
- Projekt je kanonický: stav výpočtu je perzistován jako Projekt; výpočty nejsou “standalone”.
- Determinismus: identické normalizované vstupy dávají identické výsledky (v rámci definované verze enginu).
- Auditovatelnost: každý výsledek je dohledatelný ke vstupům a verzi enginu, která ho vytvořila.
- Least privilege: RBAC gateuje akce (zápis, export, správa členů) na úrovni funkcí.
Primární uživatelské flow (na úrovni systému)
- Marketing → Auth → Post-auth routing → Org onboarding/selection → Projekty → Úprava projektu → Výsledky → Export.
Nefunkční požadavky (B2B SaaS)
- Bezpečnostní posture odpovídající multi-tenant zátěži.
- Predikovatelné výkonové chování pro typické velikosti projektů.
- Jasná rollback/mitigace strategie pro migrace a změny enginu.