Skip to content

burnsco/poker

Repository files navigation

Poker Platform

A real-time poker platform with a Phoenix backend, React frontend, and CFR-trained bot personalities. The project combines table state, live play, and training tooling in one repo.

Repo layout

  • frontend/: React + Vite client
  • backend/: Elixir/Phoenix realtime backend
  • training/: OpenSpiel-based bot training scripts

Highlights

  • Realtime table play over Phoenix channels
  • Multiple bot styles derived from CFR training output
  • Docker-first local development flow

Quick start

make up

Local development:

cd frontend && bun install && bun run dev
cd backend && mix deps.get && mix phx.server

Retrain bots:

make training-retrain
make training-retrain-holdem

Stress testing

The repo now includes a k6-based multiplayer stress harness under load/ that simulates one websocket-connected human per VU. Each table captain clears the table, fills the remaining seats with backend bots, and keeps hands cycling so you can measure mixed human-plus-bot load.

Quick start:

make stress-stack-up
make stress-low
make stress-thousands

Artifacts land in tmp/stress-runs/ with a metadata.json and k6 summary.json for each run. Override the default layout with environment variables such as BASE_URL, HUMANS_PER_TABLE, and SESSION_SECONDS.

More detail: load/README.md

About

Real-time full-stack poker platform with a Phoenix backend, React frontend, and CFR-trained bot opponents.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors