BikeControl (SwiftControl)
Use Zwift Click, Zwift Play, Shimano Di2, or any Bluetooth controller with MyWhoosh, Rouvy, Zwift, and more. Free to try on iOS, Android, Windows, and macOS.
翻訳待ち
Fair rotations, subs and live scores for junior AFL, netball, rugby league, rugby union, football (soccer), basketball, futsal, hockey, touch football and Oztag. Free for the 2026 season.
翻訳待ち
スポーツ・フィットネスTypeScript · JavaScriptGitHub @stevejb-ctrl接続状況の再確認が必要です所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Auskick manager
翻訳待ち
Loading the full README.
Read the full README ↗Junior Australian Rules Football Game Manager.
A PWA for managing junior Aussie rules teams — rotations, scoring, availability, and a live on-field view for game day.
npm install
cp .env.local.example .env.local # then fill in the Supabase values
npm run dev
Typecheck: npx tsc --noEmit.
Siren supports three sign-in paths:
https://<your-project-ref>.supabase.co/auth/v1/callbackhttps://siren.app).http://localhost:3000 for local dev) to the Redirect URLs allowlist.Supabase ships usable defaults. To rebrand the emails:
Both Google and magic-link flows redirect the browser back to /auth/callback?code=…&next=….
The server route in src/app/auth/callback/route.ts exchanges the code for a session cookie and redirects to next (same-origin only; falls back to /dashboard).
See .env.local.example. Notable:
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY — public Supabase config, safe in the browser.SUPABASE_SERVICE_ROLE_KEY — required for /admin (super-admin dashboard) and /run/[token] (public live-game) flows. Never expose to the browser.Unit tests (Vitest, pure functions, no DB):
npm test
End-to-end tests (Playwright + local Supabase) drive real browser flows against a full stack: Next.js + Supabase Auth + Postgres. They're the UAT safety net — every write path has a spec.
Prerequisites (one-time):
Docker Desktop running — Supabase CLI uses it to spin up Postgres + Auth locally.
Supabase CLI installed — see https://supabase.com/docs/guides/cli.
Test env file:
cp .env.test.example .env.test
The defaults are the Supabase CLI's deterministic local keys — safe to commit to the example, safe on every dev machine. No secrets needed.
Run the suite:
npm run e2e # headless, the default
npm run e2e:ui # Playwright inspector UI — best for debugging
npm run e2e:headed # watch the browser drive itself
npm run e2e -- path/to.spec.ts # single spec
npm run e2e wraps scripts/e2e-setup.mjs, which:
.env.test into the environment.supabase status → supabase start).supabase db reset --no-confirm) so every run starts from a clean, migrated schema.playwright test.How to ship a change:
e2e/tests/*.spec.ts in the same PR.npm run e2e must be green before merging..github/workflows/ci.yml.See e2e/README.md for conventions and the "when to add a test" checklist.