尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A web app for running school intramural sports leagues: captains draft teams, games are scheduled into lunch and free periods, stats are tracked live from the sideline, and playoffs settle it. Basketball first; the data model supports other sports.
The full product brief lives in docs/BRIEF.md. The brand
is docs/BRANDBOOK.html (v1.0) and
docs/DESIGN.md maps it onto the code.
The full league loop works end to end:
client_uuid), automatic plus/minus from lineups, box scores,
play-by-play, leaderboards, player/team pagesDeferred (schema often already in place): auction drafts, availability date-overrides UI, web-push delivery (subscriptions table exists; in-app inbox works), reactions UI, weekly awards UI, multi-team trades, game-reminder cron, public no-login league pages.
npm test — unit tests for the pure logic: stats/plus-minus engine,
scheduler, standings tiebreakers, bracketsnpm run test:db — applies every migration to an in-memory Postgres
(PGlite) and replays a full season scenario: signup → league → draft
(queues, auto-pick, undo) → availability → live game events (idempotency)
→ finalize → trade flow. It then drops to the authenticated role, the
way Supabase serves a signed-in request, and asserts that RLS actually
enforces access — non-members blocked, no self-promotion to
commissioner, game events writable only by the assigned scorekeeper and
only while the game is live.npm installsupabase/migrations/ against it (SQL editor or
supabase db push with the CLI).cp .env.example .env.local and fill in the URL and anon key.npm run devWithout env vars the app still runs: public pages render and authenticated
routes redirect to /setup, which explains what to configure.
app/ routes (App Router)
(auth)/ login, signup + server actions
(app)/ authenticated shell: dashboard, inbox, join, leagues/new
league/[slug]/ overview, schedule, standings, stats, teams, availability,
draft (live room), trades, playoffs, members, console,
game/[id] (+ /track), player/[id], team/[id], actions.ts
design/ living styleguide
components/ ui primitives, icons, shell, game card, standings table
lib/ supabase clients, data layer, and PURE tested logic:
stats.ts, scheduler.ts, standings.ts, bracket.ts
supabase/migrations/ SQL: full data model, RLS on every table, RPCs
scripts/db-test.mjs PGlite end-to-end migration + scenario test
docs/ BRIEF.md (product spec), DESIGN.md (design language)
proxy.ts Supabase session refresh (Next 16 proxy convention)