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.
Mark yourself in for weekly pickup soccer and get two balanced teams
AI summary · README
Sports & fitnessJavaScript · CSSGitHub @alish1129OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
alish1129/SquadSplitter
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A React + Supabase app for a pickup soccer group: members sign in with a
magic link and can mark themselves IN for the week; admins rate players,
manage positions, and generate two balanced teams. Public visitors can view
the roster and teams without signing in.
In your Supabase project dashboard: SQL Editor -> New query, paste the
entire contents of supabase/schema.sql, and run it. It's safe to re-run if
you ever need to.
This creates the tables, security policies, and a trigger so every new
sign-in automatically gets a profile and a roster entry.Read the full README ↗A React + Supabase app for a pickup soccer group: members sign in with a magic link and can mark themselves IN for the week; admins rate players, manage positions, and generate two balanced teams. Public visitors can view the roster and teams without signing in.
In your Supabase project dashboard: SQL Editor -> New query, paste the
entire contents of supabase/schema.sql, and run it. It's safe to re-run if
you ever need to.
This creates the tables, security policies, and a trigger so every new sign-in automatically gets a profile and a roster entry.
Enable email sign-in: Authentication -> Providers -> make sure Email is
enabled, and under Authentication -> URL Configuration set your Site URL
(e.g. http://localhost:5173 for now, your real domain once deployed) and
add it to Redirect URLs too — that's where the magic-link email sends people
back to.
cp .env.example .env
Open .env and fill in your project's URL and anon key, found in
Project Settings -> API in the Supabase dashboard.
npm install
npm run dev
Open the printed local URL, sign in with your own email, and check your inbox for the magic link.
Nobody is an admin until you say so. After signing in once, go back to the Supabase SQL Editor and run (with your real email):
update public.profiles set is_admin = true where email = '[email protected]';
Refresh the app — you'll now see "Manage roster" and "Admins" panels, where you can promote other people to admin straight from the UI (no more SQL needed after this).
.env
(VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY) under the project's
Environment Variables settings.*.vercel.app URL.Share the Vercel link with your group — anyone can open it and view the roster/teams, and anyone who signs in gets added to the roster automatically.
players table (name, up to two
positions, a 1–100 rating, and whether they're IN this week).src/lib/teamBalancer.js) groups the IN players by
position, then hands each one (highest rating first) to whichever team
currently has the lower total rating, keeping both skill and position mix
close.supabase/schema.sql one-time database setup (tables, policies, RPC, trigger)
src/App.jsx top-level state, data loading, realtime subscriptions
src/supabaseClient.js Supabase client, reads .env
src/lib/teamBalancer.js pure team-splitting logic
src/components/ UI: auth widget, turnout list, teams, roster manager, admin list