🐂 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

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
Description
No description provided
Readme 824 KiB
Languages
JavaScript 60%
HTML 16.8%
CSS 11%
Shell 7.9%
PowerShell 3.8%
Other 0.5%