尚未偵測到更新。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.