Commit Graph
124 Commits
Author SHA1 Message Date
SowinskiBraeden 8740ff31cd Finalize database deployment readiness 2026-06-28 18:02:12 -07:00
SowinskiBraeden 593420f984 Require production database configuration 2026-06-28 17:52:22 -07:00
SowinskiBraeden adbc60bfc3 Add friendly crash page 2026-06-28 17:47:58 -07:00
SowinskiBraeden e376b3628a Move application code into package 2026-06-28 17:41:11 -07:00
SowinskiBraeden 83c9fec489 Clean migration header whitespace 2026-06-28 17:11:09 -07:00
SowinskiBraeden c4260c8c7d Merge main into redesign for deployment 2026-06-28 17:07:46 -07:00
SowinskiBraeden fbf56e1271 Prepare redesign for public deployment 2026-06-28 17:07:29 -07:00
SowinskiBraeden f25de03c81 tidy internal tooling 2026-06-28 12:39:43 -07:00
SowinskiBraeden 734b3bdcaa update terms/privacy 2026-06-28 12:19:57 -07:00
SowinskiBraeden 51c8656a69 internal statistics & tooling 2026-06-28 12:11:22 -07:00
SowinskiBraeden 79c638b8fa remove legacy systems 2026-06-28 10:51:59 -07:00
SowinskiBraeden 9e6f5bd3ef update information + styles 2026-06-28 10:24:43 -07:00
SowinskiBraeden a31e48622b more muted pages 2026-06-28 10:15:32 -07:00
SowinskiBraeden a224a902e2 Merge main history into redesign 2026-06-27 18:39:36 -07:00
SowinskiBraeden 9921e61515 seperate delete from archive functions 2026-06-27 14:30:52 -07:00
SowinskiBraeden 42a9595966 allow archive season filtering on leaderboard 2026-06-27 14:21:55 -07:00
SowinskiBraeden 0411a0d099 fix bad inputs 2026-06-27 14:20:06 -07:00
SowinskiBraeden 48ad7fe1a6 actually add seasons 2026-06-27 14:14:57 -07:00
SowinskiBraeden cae60c9305 update email header 2026-06-27 13:16:48 -07:00
SowinskiBraeden e9d4392b8c privacy/terms/support/docs 2026-06-27 13:14:13 -07:00
SowinskiBraeden 2e1cc10dc7 update email styles 2026-06-27 12:47:49 -07:00
SowinskiBraeden ffc33c967a update email verification process 2026-06-27 12:35:00 -07:00
SowinskiBraeden 1b442011be account create on invite 2026-06-27 12:16:04 -07:00
SowinskiBraeden 3f2c9833a8 fix footers 2026-06-27 11:47:20 -07:00
SowinskiBraeden 34f03860a6 add 404/403 pages 2026-06-27 11:30:06 -07:00
SowinskiBraeden c645c722d5 upgrade landing page 2026-06-27 11:25:18 -07:00
SowinskiBraeden 964a0651f5 fix trasnfer ownership 2026-06-27 11:00:01 -07:00
SowinskiBraeden d1b9feab82 Remove ledger access from viewer role 2026-06-27 10:42:11 -07:00
SowinskiBraeden 00d59ac8ae fix re-invites + promote/demote members 2026-06-27 10:33:54 -07:00
SowinskiBraeden 3026204a99 fix email invites 2026-06-27 10:15:55 -07:00
SowinskiBraeden 00e640d6dc fix player actions button 2026-06-27 09:48:28 -07:00
SowinskiBraeden 5d27b83ecd chore: bump version to 2.5.3 2026-06-26 21:54:37 -07:00
SowinskiBraeden cacacb11bf fix: show league break-even threshold on player profile (2.5.2)
The ±$1.00 label was hardcoded; now reads from league.break_even_cents.
2026-06-26 21:53:34 -07:00
SowinskiBraeden 51bb8f03f6 fix: apply break-even threshold on player stat profile (2.5.2)
build_leaderboard, player_session_series, and session_breakdown_series
in the player detail and players routes were all called without
league.break_even_cents, so win/loss/even classification always used
the $1.00 default regardless of per-league settings.
2026-06-26 21:51:19 -07:00
SowinskiBraeden 882726e5e9 fix: correct migration chain for league settings columns (2.5.1)
Migration 0003_league_settings was chained to 0002 but the DB was already
at 0003_site_admin (an applied migration with no version file). Added a stub
for 0003_site_admin to satisfy the chain and updated the down_revision on
0003_league_settings accordingly. Columns eligible_min_sessions and
break_even_cents now apply cleanly on top of the existing schema.
2026-06-26 21:43:32 -07:00
SowinskiBraeden 2fc7bab183 feat: per-league eligible sessions and break-even threshold settings (2.5.0)
Add two configurable leaderboard settings per league, replacing the global
constants with per-row DB columns:

- eligible_min_sessions (default 3): minimum sessions before a player ranks
  on the main leaderboard rather than showing as provisional
- break_even_cents (default 100 = $1.00): sessions within ±this of $0 net
  are classified as break-even rather than a win or loss

Changes:
- Migration 0003 adds both columns with server defaults for existing leagues
- League DB model gains eligible_min_sessions and break_even_cents columns
- net_result_bucket() and build_leaderboard() accept optional tolerance param
- summarize_player_runs() passes tolerance to net_result_bucket for streaks
- League leaderboard route reads values from the league row instead of config
- League settings form exposes both fields with validation (1-100 sessions,
  $0.00-$100.00 threshold)
2026-06-26 21:37:47 -07:00
SowinskiBraeden 0e34600714 feat: client-side session search by name, date, and notes (2.4.0)
Add a search bar to the sessions list panel that filters rows in real time.
Searches display label, ISO date, month/year, and session notes. The count
badge updates to show matching/total; a no-results message appears when the
query has no matches.
2026-06-26 21:30:22 -07:00
SowinskiBraeden a5cb488b91 visual redesign: landing, dashboard overview, session calendar (2.3.1)
- Redesign landing page hero with split layout, features section, and in-app session/result demos
- Add fixed sidebar scroll isolation (app-shell overflow lock pattern)
- Redesign leagues index cards with initial badge, podium leader chips, and action links
- Redesign league dashboard: color-coded nav tiles, cash/stats overview strip, session history heatmap calendar
- Dashboard cash stats use real cash only (excludes rollovers and carry-ins)
- Session history calendar: JS-driven full-year grid, year navigation, hover tooltips, full-width responsive layout
- Bump leaderboard tile color from gold to blue (distinct from ledger orange)
- Bump version to 2.3.1
2026-06-26 21:24:00 -07:00
SowinskiBraeden 56c9a1084c create player on import 2026-06-25 01:05:38 -07:00
SowinskiBraeden 988f170ea4 fix imports 2026-06-25 01:02:15 -07:00
SowinskiBraeden 54fa80f06e email verification 2026-06-24 23:44:36 -07:00
SowinskiBraeden 5c7a498af6 admin improvements 2026-06-24 23:15:13 -07:00
SowinskiBraeden f078034789 update readme 2026-06-24 19:59:12 -07:00
SowinskiBraeden 6da4c3e379 major file restrucutre 2026-06-24 19:53:19 -07:00
SowinskiBraeden ac278065d2 security 2026-06-24 19:08:33 -07:00
SowinskiBraeden 2eadc722e9 2.0+ public access setup 2026-06-23 21:38:33 -07:00
SowinskiBraeden 5d88180e02 can I get a hamburger please? 2026-06-22 22:59:10 -07:00
SowinskiBraeden c891163c6d can I get a hamburger please? 2026-06-22 22:59:10 -07:00
SowinskiBraeden 263cd0a6d3 mobile improvements 2026-06-22 20:51:19 -07:00
SowinskiBraeden 49b0b54c2d mobile improvements 2026-06-22 20:51:19 -07:00