Personal poker tracker: Go + React + PostgreSQL PWA for tracking home sessions and poker trips with AI-powered schedule research. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
87 lines
2.7 KiB
Markdown
87 lines
2.7 KiB
Markdown
# 🃏 PokerTrip
|
|
|
|
Personal poker tracker for tournament players. Track ad-hoc home sessions, plan poker trips with AI-powered schedule research, and analyze your game with real data.
|
|
|
|
## What It Does
|
|
|
|
- **Home tracking** — Log tournament sessions at your local venues with quick entry and smart defaults
|
|
- **Trip planning** — Create poker trips with budgets, tournament schedules, and venue info
|
|
- **AI research** — Give the app a location and dates, it searches the web and builds your trip schedule (bring your own OpenRouter/Requesty API key)
|
|
- **Tournament snapshots** — Snap the tournament clock screen, AI extracts level/blinds/players, you add your stack — track your trajectory over time
|
|
- **Tilt guard** — Re-entry prompts show you the math: BBs you'll get, total invested, break-even needed
|
|
- **Stats & analysis** — Filter by venue, buyin range, dates, game type. Compare late reg vs. on time, re-entry ROI, stack trajectories
|
|
|
|
## Stack
|
|
|
|
| Layer | Tech |
|
|
|-------|------|
|
|
| **Backend** | Go, Chi, pgx, sqlc, River (job queue) |
|
|
| **Frontend** | React, TypeScript, Vite, Tailwind (Catppuccin Mocha) |
|
|
| **Database** | PostgreSQL |
|
|
| **AI** | OpenAI-compatible API (OpenRouter / Requesty) |
|
|
| **Search** | Self-hosted SearXNG |
|
|
| **Deploy** | Single Go binary with embedded frontend |
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
- Go 1.22+
|
|
- Node.js 20+
|
|
- PostgreSQL 16+
|
|
- SearXNG instance (for AI research web search)
|
|
|
|
### Setup
|
|
|
|
```bash
|
|
# Clone
|
|
git clone ssh://git@10.5.0.14:2222/mikkel/pokertrip.git
|
|
cd pokertrip
|
|
|
|
# Configure
|
|
cp .env.example .env
|
|
# Edit .env with your database credentials and JWT secret
|
|
|
|
# Database migrations
|
|
make migrate
|
|
|
|
# Development
|
|
make dev
|
|
```
|
|
|
|
### Build & Deploy
|
|
|
|
```bash
|
|
# Build single binary (Go + embedded React frontend)
|
|
make build
|
|
|
|
# Run
|
|
./pokertrip
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
pokertrip/
|
|
├── cmd/server/ Go entrypoint
|
|
├── internal/
|
|
│ ├── api/ HTTP handlers + middleware
|
|
│ ├── db/ Migrations + sqlc queries
|
|
│ ├── jobs/ River workers (research, scraping, OCR)
|
|
│ ├── ai/ OpenAI-compatible client + tools
|
|
│ ├── storage/ File upload (local fs, swappable to S3)
|
|
│ └── config/ Environment config
|
|
├── frontend/ React + Vite + Tailwind
|
|
├── docs/ Design specs + reference files
|
|
├── .env.example Environment template
|
|
├── Makefile Dev/build/migrate commands
|
|
└── Dockerfile Container deployment
|
|
```
|
|
|
|
## Design
|
|
|
|
See [`docs/2026-03-18-pokertrip-design.md`](docs/2026-03-18-pokertrip-design.md) for the full design spec.
|
|
|
|
## License
|
|
|
|
Private — personal project.
|