尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Free web app for managing recreational sports leagues — standings, stats, and tournament brackets
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A web app for running recreational sports leagues. Create a league, add teams and rosters, generate a schedule, record results and player stats, and run a playoff bracket. Standings are computed from game results.
Built with Next.js 16 (App Router), React 19, Tailwind CSS 4 and Firebase (Google sign-in plus Firestore).
npm i -g firebase-tools), for deploying security rulesInstall dependencies:
npm install
In the Firebase console:
Copy .env.example to .env.local and fill it in from the web app's config (Project settings → General → Your apps):
| Variable | Firebase config key |
|---|---|
NEXT_PUBLIC_FIREBASE_API_KEY | apiKey |
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN | authDomain |
NEXT_PUBLIC_FIREBASE_PROJECT_ID | projectId |
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET | storageBucket |
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID | messagingSenderId |
NEXT_PUBLIC_FIREBASE_APP_ID | appId |
Deploy the Firestore security rules (firestore.rules). There's no .firebaserc, so pass the project ID:
firebase deploy --only firestore:rules --project <project-id>
Under these rules, only a league's owner can write to it. A league is readable by anyone when isPublic is true; otherwise only the owner can read it.
Start the dev server and open http://localhost:3000:
npm run dev
| Script | What it does |
|---|---|
npm run dev | Start the dev server |
npm run build | Production build (needs .env.local) |
npm start | Serve the production build |
npm run lint | ESLint |
npm run typecheck | tsc --noEmit |
npm test | Vitest in watch mode |
npm run test:run | Run the tests once |
npm run test:coverage | Run the tests with a coverage report |
CI (.github/workflows/ci.yml) runs lint (warnings fail the build), typecheck and tests on every push to main and on every pull request.
src/app: routes. (auth) has the login page; (dashboard) has the signed-in dashboard and league pages.src/lib: domain logic (standings.ts, schedule.ts, bracket.ts, sportConfig.ts) and Firestore access (firestore/leagues.ts).src/types: shared data types.docs/ROADMAP.md: the cleanup and feature roadmap.