flutter
Flutter는 wger용 피트니스·운동 앱입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.