Tennis League
Workplace tennis league scoring, scheduling, and standings.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗One login that runs an independent pay to play sports club. Water polo first.
This is version 0.1: a working application, not a mockup. It has real sign in, a real database, and a double entry ledger that every billing action posts to.
You need Node.js 20 or newer. Nothing else. The database
is embedded and lives in the .data folder.
npm install
npm run setup # creates the database and loads the demo club
npm run dev # then open http://localhost:3000
The sign in page has one click buttons for each demo role. The password for
every demo account is clubos-demo. To start a fresh, empty club instead, click
Create your club on the sign in page.
| Sign in as | What you see | |
|---|---|---|
| Director | [email protected] | Dashboard, billing, finance, compliance, integrations |
| Coach | [email protected] | Own team roster, schedule, compliance, film |
| Parent | [email protected] | Balance, pay flow, schedule, film |
| Athlete | [email protected] | Schedule and film, no money |
| Command | What it does |
|---|---|
npm run dev | Run locally with live reload |
npm test | Unit tests for money math, the ledger and billing |
npm run typecheck | Type check the whole project |
npm run build then npm start | Production build and server |
npm run db:reset | Wipe the local database and reload the demo club |
npm run db:generate | Create a migration after editing src/db/schema.ts |
Stop the dev server before running db:reset or db:seed. The embedded
database allows one process at a time.
| To change | Edit |
|---|---|
| Colors and fonts | src/app/globals.css |
| A screen | src/app/(app)/<screen>/page.tsx |
| What a form does | actions.ts next to that screen |
| Business rules (billing, ledger, compliance) | src/server/domain/ |
| Chart of accounts | DEFAULT_CHART in src/server/domain/ledger.ts |
| Required credentials per role | REQUIRED in src/server/domain/compliance.ts |
| 1099 threshold | src/lib/config.ts |
| Tables and columns | src/db/schema.ts, then npm run db:generate |
| Demo data | src/db/seed.ts |
| Add an outside vendor | one file in src/server/integrations/, register in registry.ts |
The app is a standard Next.js project on Postgres, so it deploys to Vercel, Render, Railway, Fly or any Node host.
DATABASE_URL to its connection string. See .env.example.npm run db:migrate once against it.DEMO_LOGIN=true and
ALLOW_TEST_PAYMENTS=true.No code changes are needed to move from the embedded database to a hosted one.
See docs/ARCHITECTURE.md for how the pieces fit and what is deliberately not
built yet.