27 lines
1.3 KiB
Markdown
27 lines
1.3 KiB
Markdown
---
|
|
name: project-overview
|
|
description: Flask poker ledger app — design system, tech stack, key files
|
|
metadata:
|
|
type: project
|
|
---
|
|
|
|
Flask/Jinja app: poker session tracker and leaderboard. Append-only CSV event ledger (`data/entries.csv`).
|
|
|
|
**Design system (Graphite + Violet):** Implemented June 2026.
|
|
- `static/css/tokens.css` — all CSS custom properties (--accent: #9b8cf0 violet, not orange)
|
|
- `static/css/style.css` — component classes: .panel, .stat, .tbl, .badge, .segmented, .btn, .feed, etc.
|
|
- Fonts: Spectral (display), Hanken Grotesk (UI), IBM Plex Mono (numbers/labels)
|
|
|
|
**Pages:** leaderboard, sessions, session_detail, player_detail, admin_dashboard, admin_login.
|
|
|
|
**Key patterns:**
|
|
- Leaderboard has Eligible/All/Recent segmented control; `ELIGIBLE_MIN_SESSIONS = 3` in app.py
|
|
- Session detail has Compact/Full toggle for the table (`col-acct` class, `.is-full` on table)
|
|
- Chart.js colors: leaderboard uses CHART_PALETTE from template JS; bars use `net_tone()` from stats.py
|
|
- `--text-muted` and `--line` CSS vars kept as backward compat for Chart.js JS reads
|
|
- `.venv/bin/python` is the Python runtime
|
|
|
|
**Data model:** EventRow CSV → SessionEntry → SessionSummary, PlayerStats (via stats.py). No DB.
|
|
|
|
**Why:** Design ported from "Poker Ledger.dc.html" prototype spec per handoff document.
|