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