BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2 或任何藍牙控制器,搭配 MyWhoosh、Rouvy、Zwift 等。iOS、Android、Windows、macOS 均可免費試用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Application de pronostics et paris entre amis sur les playoffs NBA et la NBA Cup — Next.js 16 (App Router) + Supabase (Postgres/Auth/RLS/Realtime), avec un moteur de paris personnalisés structurés par IA (Claude). • Node.js 22+ • Docker Desktop (pour Supabase en local -- sur Windows, active WSL2 si demandé au premier lancement : wsl --install en PowerShell administrateur, puis redémarrer) • La CLI Supabase (installée automatiquement via npx, pas besoin de l'installer globalement)查看完整 README ↗
Application de pronostics et paris entre amis sur les playoffs NBA et la NBA Cup — Next.js 16 (App Router) + Supabase (Postgres/Auth/RLS/Realtime), avec un moteur de paris personnalisés structurés par IA (Claude).
wsl --install en PowerShell administrateur, puis redémarrer)npx, pas besoin de l'installer globalement)npm install
cp .env.example .env.local
npx supabase start
Premier lancement : télécharge les images Docker (peut prendre plusieurs minutes) et applique toutes les migrations de supabase/migrations/. Affiche à la fin les URLs et clés locales -- copier API_URL → NEXT_PUBLIC_SUPABASE_URL, ANON_KEY → NEXT_PUBLIC_SUPABASE_ANON_KEY, SERVICE_ROLE_KEY → SUPABASE_SERVICE_ROLE_KEY dans .env.local (les autres variables de .env.example sont optionnelles en dev, voir les commentaires du fichier).
Studio (interface d'admin de la base) accessible sur http://127.0.0.1:54323.
Pour arrêter : npx supabase stop.
Aucun compte n'est admin par défaut. Après avoir créé un compte via /signup, promouvoir en base (Studio → SQL Editor, ou psql sur DB_URL affichée par supabase start) :
update public.users set role = 'ADMIN' where pseudo = 'ton_pseudo';
npm run dev
Ouvrir http://localhost:3000.
npm test # suite unitaire (vitest) -- ne nécessite pas Docker
npm run test:integration # tests d'intégration RLS -- nécessite `npx supabase start` au préalable
npm run test:e2e # parcours critiques (Playwright) -- nécessite `npx supabase start` au préalable
npx tsc --noEmit # vérification des types
npm run lint # ESLint
npm run test:e2e lance son propre serveur de dev (port 3100) contre le Supabase local, avec des comptes/données de test créés puis nettoyés automatiquement (e2e/seed.ts) -- sans effet sur les données locales existantes. Premier lancement : npx playwright install --with-deps chromium.
npm run build
Déployé sur Vercel, auto-déclenché à chaque merge sur main. Les migrations Supabase ne se poussent pas automatiquement (npx supabase db push, séparé du déploiement Vercel) -- voir audit/RUNBOOK_MIGRATIONS.md avant de merger une PR qui ajoute une migration.
Cadrage/ -- spécifications produit/technique, journal de suiviaudit/ -- audits de sécurité/qualité et plan d'action associésecurity-audit-report.md -- audit de sécurité ponctuel du 29/08/2026 (voir le bandeau en tête de fichier pour le statut à jour)