OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
Gratis wielerspel voor de Tour de France, Giro d'Italia en Vuelta 2026. Stel je ploeg samen, daag vrienden uit en strijd om de trui.
Translation pending
Sports & fitnessTypeScript · PLpgSQLGitHub @LuukLoohuisOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
Fantasy wieler-app voor Giro / Tour de France / Vuelta. Selecteer renners, scoor punten op echte koersuitslagen, strijd in subpoules. • Vite + React + TypeScript + Tailwind + shadcn/ui • Supabase (Postgres + Auth + RLS) als backend • Vercel voor hosting App draait op http://localhost:3000. 1. Basisschema (eenmalig) Open Supabase SQL Editor en voer uit (in deze volgorde): 1. supabase/schema.sql — kern: users, games, riders, picks, stages, points 2. supabase/migrations/20260201_admin_v3.sql — admin v3 uitbreidingen (game_type, classifications, max_picks, RPCs, admin overview)Read the full README ↗
Fantasy wieler-app voor Giro / Tour de France / Vuelta. Selecteer renners, scoor punten op echte koersuitslagen, strijd in subpoules.
yarn install --ignore-engines
cp .env.example .env
# Vul VITE_SUPABASE_URL en VITE_SUPABASE_ANON_KEY in
yarn dev
App draait op http://localhost:3000.
Open Supabase SQL Editor en voer uit (in deze volgorde):
supabase/schema.sql — kern: users, games, riders, picks, stages, pointssupabase/migrations/20260201_admin_v3.sql — admin v3 uitbreidingen (game_type, classifications, max_picks, RPCs, admin overview)Eenmalig na je eerste login:
insert into public.user_roles(user_id, role)
select id, 'admin' from auth.users where email = '[email protected]'
on conflict (user_id, role) do nothing;
Vanaf dat moment kun je via de admin-pagina zelf andere admins toevoegen.
/admin)Tabs:
max_picks per categorie (1=enkel, n=meerdere keuzes)Alle admin-acties zijn beveiligd via Supabase RLS + is_admin() security definer functies.
Vercel:
VITE_SUPABASE_URL en VITE_SUPABASE_ANON_KEY in Vercel Project Settings| Script | Doel |
|---|---|
yarn dev | Dev server (port 3000, host 0.0.0.0) |
yarn start | Alias voor yarn dev |
yarn build | Productiebuild naar dist/ |
yarn preview | Lokaal previewen van productiebuild |
yarn lint | ESLint over alle bestanden |
yarn test | Vitest run |
src/
├── components/
│ ├── admin/ # Admin v3 tab-componenten
│ ├── ui/ # shadcn/ui primitives
│ └── ...
├── hooks/ # useAuth, useCategories, etc.
├── lib/ # supabase client, PDF parsing
├── pages/ # routes (Index, Login, AdminV3, ...)
└── data/ # mock/seed data
supabase/
├── schema.sql # kern-schema
├── migrations/
│ └── 20260201_admin_v3.sql # admin v3 uitbreidingen
└── seeds/ # voorbeeld-startlijsten