docs: add wiki page
70
Architektur.md
Normal file
70
Architektur.md
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
# Architektur
|
||||||
|
|
||||||
|
## Monorepo-Struktur
|
||||||
|
|
||||||
|
```
|
||||||
|
michess/
|
||||||
|
├── client/ # Next.js 14 Frontend
|
||||||
|
├── server/ # Express.js Backend
|
||||||
|
├── types/ # Gemeinsame TypeScript-Typen (@michess/types)
|
||||||
|
├── docker-compose.yml
|
||||||
|
├── Dockerfile
|
||||||
|
└── pnpm-workspace.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
## Client (`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 (`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
|
||||||
|
```
|
||||||
|
|
||||||
|
## Datenfluss
|
||||||
|
|
||||||
|
```
|
||||||
|
Browser ──HTTP──> Next.js (SSR/CSR)
|
||||||
|
──API──> Express /v1/...
|
||||||
|
──WS───> Socket.io (Echtzeit)
|
||||||
|
│
|
||||||
|
PostgreSQL (pg.Pool)
|
||||||
|
Stockfish (child_process)
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user