BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2 或任何藍牙控制器,搭配 MyWhoosh、Rouvy、Zwift 等。iOS、Android、Windows、macOS 均可免費試用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A recruiting directory for high school basketball players. Players pay $9/mo
to keep a verified profile (stats, bio, highlight film link) live in a
searchable directory and in curated ranked lists. Coaches and scouts browse
for free.
Stack: Next.js 14 (App Router) + Supabase (auth, database, storage) + Stripe
(subscription billing). No servers to manage — deploys to Vercel.查看完整 README ↗A recruiting directory for high school basketball players. Players pay $9/mo to keep a verified profile (stats, bio, highlight film link) live in a searchable directory and in curated ranked lists. Coaches and scouts browse for free.
Stack: Next.js 14 (App Router) + Supabase (auth, database, storage) + Stripe (subscription billing). No servers to manage — deploys to Vercel.
/admin/lists: build curated ranked lists, mark players
"Verified."anon public key, and
service_role key into .env.local (copy .env.example first).supabase/schema.sql once, in full.headshots, set it to public.admins table → add a row with your own email address.
That email can now access /admin/lists.price_) into
STRIPE_PLAYER_PRICE_ID.STRIPE_SECRET_KEY.https://yourdomain.com/api/stripe/webhook, listening for
checkout.session.completed, customer.subscription.updated, and
customer.subscription.deleted. Copy its signing secret into
STRIPE_WEBHOOK_SECRET.
stripe listen --forward-to localhost:3000/api/stripe/webhook instead, and use the webhook
secret it prints.npm install
npm run dev
Visit http://localhost:3000.
Push this repo to GitHub, import it into Vercel, and add all the
.env.example variables as Environment Variables in the Vercel project
settings (set NEXT_PUBLIC_SITE_URL to your real domain). Then point the
Stripe webhook at your live URL as in step 2.3.
app/
page.tsx landing page
players/page.tsx directory + filters
players/[slug]/page.tsx public profile
lists/, lists/[slug]/ curated ranked lists
join/ player signup → Stripe Checkout
login/ player + coach login, coach signup
dashboard/ player's own editor + billing
admin/lists/ admin: curate lists, verify players
api/stripe/ checkout, webhook, billing portal
api/admin/ admin-only writes (list/verify management)
lib/supabase/ browser/server/service Supabase clients
lib/stripe.ts Stripe client
supabase/schema.sql full database schema + Row Level Security
state column to players and a filter
control identical to the grad-year one in app/players/page.tsx.profile_views table
from the player profile page when isLoggedInCoach is true, then show a
count on the dashboard — a real driver of renewal once players can see
coaches are actually looking.sport column, filter by it everywhere position
is filtered, and swap position options per sport.