Commit Graph
7 Commits
Author SHA1 Message Date
derekandClaude Opus 5.5 022d161934 One deck form per session; rename leagues; e2e test script
- A player's deck for a night is edited in a single form and written to
  their match rows and their standings row, so the two can't disagree.
  Matches, standings and hand imports all fill blank decks from the decks
  already entered, whatever order the files are imported in. The imported
  standings table shows decks read-only.
- Admins can rename a league.
- test/e2e.sh runs end-to-end checks against the local podman stack
  (fixtures by default, or real exports: test/e2e.sh sampledata).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 17:20:45 +00:00
derekandClaude Opus 5.5 a99997b96d Break leaderboard ties with Melee's tiebreakers
After total of all sessions, ties fall to OMW%, GW% and OGW% over all the
league's matches (bye = 2-0 win, not an opponent; opponents floored at 1/3),
then name. Verified identical to Melee's order and percentages on a real
night. The leaderboard shows the three percentages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 17:13:24 +00:00
derekandClaude Opus 5.5 0e14228b8f Upload several Melee exports at once; let admins delete leagues
- The session import takes many files (every round's matches export plus
  the standings export) in one transaction; a bad file, a round repeated
  across files, or two standings exports rejects the whole batch.
- Delete league (with its sessions and results; players are kept).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 17:11:10 +00:00
derekandClaude Opus 5.5 985c85bcef Import Melee matches exports, add tests and local podman stack
- Parse Melee matches exports (one round per file, byes, null GameWins);
  one import form detects matches vs standings exports. Re-importing a
  round replaces just that round and keeps entered decks.
- Per-player deck entry for sessions scored from matches.
- node:test suite with anonymised fixtures; lockfile.
- scripts/local.sh runs the compose stack under podman with its own
  .env.local, project name and volume.
- README and CLAUDE.md docs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 16:58:24 +00:00
derek a7f440c658 add base path setting 2026-10-28 14:41:43 +00:00
derek 5368d6f32d add port setting 2026-10-28 14:32:59 +00:00
derek ef1c188807 Initial Commit 2026-10-28 12:47:05 +00:00