ROOK Server
Backend und Weboberfläche für die ROOK Kartenspiel-App.
Architektur
| Server |
Port |
Datei |
Beschreibung |
| UI Server |
3000 |
ui-server.js |
Weboberfläche (statische Dateien) |
| API Server |
3001 |
api-server.js |
REST API & SQLite Datenbank |
Installation
cd server
npm install
Server starten
Beide Server gleichzeitig
Windows (Batch):
start-servers.bat
PowerShell (öffnet automatisch Browser):
.\start-servers.ps1
Server einzeln starten
# API Server (Port 3001)
npm run start:api
# UI Server (Port 3000)
npm run start:ui
# Entwicklungsmodus mit Auto-Reload
npm run dev:api
npm run dev:ui
Legacy (kombinierter Server)
npm start
URLs
API Endpoints
Players
| Methode |
Endpoint |
Beschreibung |
| GET |
/api/players |
Alle Spieler abrufen |
| POST |
/api/players |
Spieler erstellen |
| PUT |
/api/players/:id |
Spieler aktualisieren |
| DELETE |
/api/players/:id |
Spieler löschen |
Games
| Methode |
Endpoint |
Beschreibung |
| GET |
/api/games |
Alle Spiele mit Runden abrufen |
| POST |
/api/games |
Neues Spiel erstellen |
| PUT |
/api/games/:id |
Spiel aktualisieren |
| POST |
/api/games/:gameId/rounds |
Runde hinzufügen |
| DELETE |
/api/games/:gameId/rounds/last |
Letzte Runde löschen |
Sync
| Methode |
Endpoint |
Beschreibung |
| POST |
/api/sync/players |
Spieler synchronisieren (upsert) |
| POST |
/api/sync/games |
Spiele synchronisieren (upsert) |
| POST |
/api/sync/games/resolve |
Sync-Konflikt auflösen (lokal oder Server-Version behalten) |
Health Check
| Methode |
Endpoint |
Beschreibung |
| GET |
/api/health |
Server-Status prüfen |
Responsive Design
Die Weboberfläche ist optimiert für:
- Desktop (> 1024px)
- iPad/Tablet (768px - 1024px)
- Mobile (< 600px)
- Landscape Mobile (< 500px Höhe)
Datenbank
- Typ: SQLite (sql.js)
- Datei:
rook.db
- Tabellen:
players, games, rounds
Dateien
server/
├── api-server.js # API & Datenbank (Port 3001)
├── ui-server.js # Weboberfläche (Port 3000)
├── server.js # Legacy kombinierter Server
├── start-servers.bat # Windows Startskript
├── start-servers.ps1 # PowerShell Startskript
├── package.json
├── rook.db # SQLite Datenbank
└── public/
└── index.html # Responsive Web-UI