Initial PlayBull release with Trilogy Hub integration.
Includes homelab deploy tooling, image position/zoom manifest persistence, and full trading/casino stack. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
80
README.md
Normal file
80
README.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# 🐂 PlayBull — Trading & Gamble (Spielgeld)
|
||||
|
||||
Eine mobile-first Web-App, die **Live-Trading** mit echten Aktienkursen und ein **Casino**
|
||||
verbindet. Alles mit Spielgeld, alle Spieler teilen denselben Live-Markt.
|
||||
|
||||
> ⚠️ Reines Spaßprojekt mit **Spielgeld**. Kein echtes Geld, kein echtes Glücksspiel.
|
||||
|
||||
## Features
|
||||
|
||||
### 📈 Trading (für alle sichtbar, Handel mit Login)
|
||||
- **Echte Startkurse** über die Finnhub-API (Aktien) + Live-Simulation
|
||||
- **Geteilter Live-Markt**: Kurse sind bei allen identisch und ticken jede Sekunde
|
||||
- **Long & Short**, Position-Netting, Live-P&L, Depot/Net-Worth
|
||||
- 14 Assets: Aktien (AAPL, TSLA, NVDA, …), Krypto/Meme (BTC, ETH, DOGE, BULL)
|
||||
- Live-Chart pro Asset (Canvas)
|
||||
|
||||
### 🎛️ Markt-Manipulation (Spaßmodus: jeder eingeloggte User)
|
||||
- **Pump 🚀 / Dump 📉**, Kurs hart **setzen**, **Halt/Resume**, **Reset**
|
||||
- Wirkt sofort für **alle** Spieler gleichzeitig (geteilter Live-Status)
|
||||
|
||||
### 🎰 Casino (Login erforderlich)
|
||||
- **🐔 Chicken Road** — Straße überqueren, Multiplikator steigt, rechtzeitig cashen (4 Schwierigkeiten)
|
||||
- **🃏 10×10 Karten-Deck** — 100 Felder, Bomben vermeiden, Multiplikator steigt pro sicherer Karte
|
||||
- **🚀 Crash** — server-autoritativ, raus bevor die Rakete crasht
|
||||
- **🎲 Dice** — Über/Unter mit einstellbarem Risiko
|
||||
- **🪙 Coinflip** — Kopf oder Zahl, 2×
|
||||
|
||||
### ⚙️ Einstellungen / Admin (Spaßmodus)
|
||||
- **Geld bearbeiten** bei sich selbst & anderen (hinzufügen / setzen, Quick-Buttons)
|
||||
- Markt-Kontrolle direkt aus den Einstellungen
|
||||
- Avatar wählen, Spielerliste
|
||||
|
||||
### 🏆 Social
|
||||
- Live-Aktivitäts-Feed (Trades, Wins, Manipulationen) als Ticker + Liste
|
||||
- Rangliste nach Net-Worth
|
||||
|
||||
## Tech-Stack
|
||||
- **Backend**: Node.js, Express, Socket.IO, eingebautes `node:sqlite`
|
||||
- **Auth**: JWT (httpOnly-Cookie) + bcrypt
|
||||
- **Frontend**: Vanilla JS (ES-Module), Canvas-Charts, mobile-first CSS
|
||||
- Keine Build-Tools nötig
|
||||
|
||||
## Start
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm start
|
||||
```
|
||||
|
||||
Dann im Browser öffnen: **http://localhost:3000** (Handy: gleiche WLAN-IP, Port 3000).
|
||||
|
||||
## Konfiguration (`.env`)
|
||||
|
||||
| Variable | Bedeutung |
|
||||
|---|---|
|
||||
| `PORT` | Server-Port (Default 3000) |
|
||||
| `JWT_SECRET` | Secret für Login-Tokens |
|
||||
| `FINNHUB_API_KEY` | API-Key für echte Aktienkurse |
|
||||
| `START_BALANCE` | Startguthaben neuer Spieler (Default 10000) |
|
||||
|
||||
## Verbindung Trading ↔ Casino
|
||||
Beide nutzen **denselben Spielgeld-Kontostand**. Gewinne aus dem Casino kannst du
|
||||
direkt im Trading einsetzen — und umgekehrt. Der erste registrierte User existiert
|
||||
gleichberechtigt; im Spaßmodus darf jeder eingeloggte Spieler den Markt manipulieren
|
||||
und Guthaben bearbeiten.
|
||||
|
||||
## Projektstruktur
|
||||
```
|
||||
server/
|
||||
index.js Express + Socket.IO + Routen
|
||||
config.js .env-Loader
|
||||
db.js SQLite-Schema & Helper
|
||||
auth.js Register/Login/JWT
|
||||
market.js Finnhub + Live-Simulation + Manipulation
|
||||
trading.js Buy/Sell/Short, Portfolio, P&L
|
||||
games.js Chicken, Mines, Crash, Dice, Coinflip
|
||||
realtime.js Socket-Broadcast + Feed
|
||||
public/
|
||||
index.html, css/styles.css, js/app.js
|
||||
```
|
||||
Reference in New Issue
Block a user