All lines now verified at exactly 68 characters wide. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
67 lines
3.4 KiB
Markdown
67 lines
3.4 KiB
Markdown
```
|
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
░░ ░░
|
|
░░ ██████╗ ██╗ ██╗███╗ ███╗ ♠ ♥ ♣ ♦ ░░
|
|
░░ ██╔══██╗██║ ██║████╗ ████║ ░░
|
|
░░ ██████╔╝╚██╗ ██╔╝██╔████╔██║ poker venue manager ░░
|
|
░░ ██╔═══╝ ╚████╔╝ ██║╚██╔╝██║ -- since 2026 -- ░░
|
|
░░ ██║ ╚██╔╝ ██║ ╚═╝ ██║ seat open, table 3! ░░
|
|
░░ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ░░
|
|
░░ ░░
|
|
░░ tournaments · cash games · dealers · players · displays ░░
|
|
░░ all managed · always on · no rake required ░░
|
|
░░ ░░
|
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
```
|
|
|
|
---
|
|
|
|
## What is PVM?
|
|
|
|
PVM is a comprehensive management system for poker venues of any size. It handles the full lifecycle of venue operations:
|
|
|
|
- **Tournament Management** — Planning, live clocks, seating, registration, results, and recurring series
|
|
- **Cash Game Operations** — Table tracking, waiting lists, game types, and session history
|
|
- **Player Accounts** — One account across all venues, memberships, and game history. Players sign up for PVM first, then join venues.
|
|
- **Dealer Coordination** — Scheduling, availability, shift swaps, and cross-venue mobility
|
|
- **Venue Display System** — Push live clocks, seatings, waitlists, and info to any TV via Android display clients with mDNS auto-discovery
|
|
- **Local Node Support** — Optional on-premise Raspberry Pi 5 proxy (Docker-based) for zero-downtime operation during internet outages (up to 72h offline)
|
|
|
|
## Architecture
|
|
|
|
```
|
|
Hetzner PVE (LXC + Docker)
|
|
├── Rust API (Axum) + WebSocket Gateway
|
|
├── PostgreSQL 16 + DragonflyDB
|
|
├── NATS + JetStream
|
|
└── SvelteKit Web Apps
|
|
│
|
|
├── near-realtime event sync (NATS) ──► Venue RPi5 Nodes (Docker)
|
|
├── Web App / PWA (managers, staff, players, dealers)
|
|
└── Venue TVs (Android display client, cloud fallback)
|
|
```
|
|
|
|
## Tech Stack
|
|
|
|
| Layer | Technology |
|
|
|-------|-----------|
|
|
| Backend | Rust + Axum |
|
|
| Frontend | SvelteKit (Svelte 5) + shadcn-svelte + Tailwind v4 |
|
|
| Cloud DB | PostgreSQL 16+ |
|
|
| Local DB | libSQL (embedded) |
|
|
| Cache | DragonflyDB |
|
|
| Messaging | NATS + JetStream |
|
|
| Auth | Custom JWT + RBAC |
|
|
| API | REST + OpenAPI 3.1 |
|
|
| Infra | Hetzner PVE, Docker, Forgejo Actions |
|
|
|
|
## Documentation
|
|
|
|
- **[Vision & Feature Overview](docs/VISION.md)** — The full product vision and feature roadmap
|
|
- **[Tech Stack Research](docs/TECH_STACK_RESEARCH.md)** — Comprehensive technology decisions and reasoning
|
|
|
|
---
|
|
|
|
<p align="center">
|
|
<sub>Built for the poker community.</sub>
|
|
</p>
|