michess/ ├── client/ # Next.js 14 Frontend ├── server/ # Express.js Backend ├── types/ # Gemeinsame TypeScript-Typen (@michess/types) ├── docker-compose.yml ├── Dockerfile └── pnpm-workspace.yaml
client/src/
app/ # Next.js App Router (Seiten) ├── page.tsx # Startseite ├── [code]/ # Aktive Partie ├── archive/[id]/ # Archivierte Partie (PGN-Viewer) ├── ai/ # KI-Partie ├── correspondence/ # Tagespartien ├── tournament/ # Turniere ├── friends/ # Freunde ├── user/[name]/ # Nutzerprofil ├── settings/ # Kontoeinstellungen └── admin/ # Admin-Panel components/ # Wiederverwendbare Komponenten ├── game/ # Spielbrett, Züge, Socket-Events ├── home/ # Startseite-Karten ├── Header.tsx # Navigation + Benachrichtigungsglocke ├── NotificationPanel.tsx # Benachrichtigungs-Dropdown └── AuthModal.tsx # Login/Register/Gast-Modal context/ ├── session.ts # Nutzer-Session (global) ├── ContextProvider.tsx # Wrapper für alle Contexts └── NotificationContext.tsx # Echtzeit-Benachrichtigungen
server/src/
controllers/ # Business-Logik db/ ├── index.ts # DB-Verbindung + INIT_TABLES └── models/ # Datenbankmodelle middleware/ ├── auth.ts # requireAuth, requireAdmin └── session.ts # express-session routes/ # Express-Router socket/ ├── index.ts # Socket.io-Verbindungen, Online-Tracking ├── game.socket.ts # Spielereignisse └── state.ts # Gemeinsamer Socket-Zustand server.ts # Einstiegspunkt
Browser ──HTTP──> Next.js (SSR/CSR) ──API──> Express /v1/... ──WS───> Socket.io (Echtzeit) │ PostgreSQL (pg.Pool) Stockfish (child_process)
Deleting the wiki page "Architektur" cannot be undone. Continue?