尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
brohda.
A private, invite-only sports pool platform for small friend groups. Invited
users pay a fixed entry fee, pick one outcome on a curated fixture, and split
the prize pool with everyone who picked the winning outcome — no odds, no
sportsbook, no exposure for the house beyond a transparent platform fee.查看完整 README ↗A private, invite-only sports pool platform for small friend groups. Invited users pay a fixed entry fee, pick one outcome on a curated fixture, and split the prize pool with everyone who picked the winning outcome — no odds, no sportsbook, no exposure for the house beyond a transparent platform fee.
Current implementation: NFL. Target supported leagues: NFL, NBA, NHL, MLB. NBA, NHL, and MLB are the product direction but are not yet built — nothing in this repo makes them available today. Association football / soccer was supported at launch and has since been retired — see docs/ARCHITECTURE.md for that history and the retirement decision.
Built with Next.js 16 (App Router), TypeScript, Supabase (Postgres + Auth + RLS), and Tailwind CSS v4 + shadcn/ui.
See docs/ARCHITECTURE.md for how it's built, and docs/ACCEPTANCE_CRITERIA.md for the spec acceptance-criteria audit. For deploying to production, see docs/DEPLOYMENT.md.
pnpm)pnpm install
pnpm supabase:start # starts local Postgres/Auth/Storage via Docker, applies migrations
cp .env.example .env.local # fill in the keys `supabase start` printed
pnpm create-super-admin --email [email protected] --password 'xxxx' --name "Admin"
pnpm seed # optional — demo players + pools in every status
pnpm dev
Open http://localhost:3000 and log in with the
super-admin credentials above (or a seeded demo account — see
scripts/seed.ts's output for emails; password is PollPoolsDemo123!).
Admin pages live under /admin/* (users, invitations, fixtures, pools,
reports, audit log) and require the super-admin account.
pnpm test # unit tests — no live Supabase needed
pnpm test:integration # RLS, wallet, pools/entries, settlement, reversal — requires `pnpm supabase:start` + .env.test.local
pnpm test:e2e # Playwright — requires local Supabase + SUPABASE_SERVICE_ROLE_KEY
pnpm lint
pnpm exec tsc --noEmit
See docs/TESTING.md for .env.test.local setup and why
integration tests are structurally unable to target production.
pnpm seed populates a freshly reset database with 5 demo players and 10
pools spanning every reachable pool status (open, locked, awaiting result,
ready for review, settled — including one with a rounding remainder — voided,
cancelled, and one reversed settlement), plus wallet transactions exercising
every transaction type. It reuses the app's real RPCs (create_pool_entry,
prepare_pool_settlement, confirm_pool_settlement, confirm_pool_refund,
reverse_pool_settlement, apply_wallet_transaction), so seeded data obeys
the same invariants real traffic does.
It is not idempotent — run it once against a freshly reset database,
after pnpm create-super-admin:
pnpm supabase:reset
pnpm create-super-admin --email [email protected] --password 'xxxx' --name "Admin"
pnpm seed
Never run pnpm seed against a production database — see
docs/DEPLOYMENT.md.