Skip to content

Architektur-Überblick

Bereich Technologie
Backend NestJS 11, TypeScript, Prisma ORM 6
Datenbank PostgreSQL 16 (Multi-Tenant via tenantId)
Cache/Queue Redis 7
Web-Frontend Next.js (App Router) mit Tenant-Subdomains
Mobile Expo / React Native (Eltern-App)
E2E-Tests Playwright
Dokumentation Astro Starlight (diese Site + Benutzer-Handbuch)

Das Projekt ist ein pnpm-Monorepo. Jeder Workspace ist klar abgegrenzt:

Workspace Pfad Zweck
API api/ NestJS-Backend — REST-API, Geschäftslogik, Datenbankzugriff
Web web/ Next.js-Frontend — Verwaltungsoberfläche und Elternportal
Mobile mobile/ Expo/React-Native-App für Eltern
Shared shared/ Geteilte TypeScript-Typen und Utilities (@flowgeist-kita/shared)
E2E e2e/ Playwright-Test-Suites (API, Web, Mobile)
Docs-Site docs-site/ Endbenutzer-Handbuch (eigenes Lockfile, kein Workspace-Member)
Dev-Docs dev-docs/ Diese Entwickler-Dokumentation (eigenes Lockfile, kein Workspace-Member)

Die API ist in fachliche Module unter api/src/modules/<name>/ gegliedert — z. B. kinder, beitraege, betreuungsvertraege, elternportal, tagespflege. Jedes Modul kapselt Controller, Services und DTOs.

Querschnittliche Funktionalität (Auth, Tenant-Auflösung, Mail, gemeinsame Utilities) liegt in api/src/common/ und api/src/modules/ für technische Basis-Module.

  1. Tenant-Resolution: Middleware löst den Mandanten aus der Subdomain auf.
  2. Authentifizierung: JWT-Guard prüft Access-Token, MFA-Status wird für privilegierte Rollen erzwungen.
  3. Autorisierung: Rollen- und Berechtigungs-Guards prüfen den Zugriff.
  4. Tenant-Isolation: Ein Interceptor stellt sicher, dass alle Datenbankzugriffe auf den Mandanten-Kontext beschränkt sind.
  5. Audit: Sicherheitsrelevante Aktionen werden revisionssicher protokolliert.