``` ♠ ♥ ♣ ♦ ╔═══════════════╗ ║ P V M ║ ║ ║ ║ Poker Venue ║ ║ Manager ║ ╚═══════════════╝ "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 ---
Built for the poker community.