BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2,或任何藍牙控制器搭配 MyWhoosh、Rouvy、Zwift 等。可於 iOS、Android、Windows 與 macOS 免費試用。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證this is for organizers to know the available schedule and book a slot
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Spartans CC Bengaluru — Book a Slot
Fixture availability and booking management for Spartans Cricket Club, Bengaluru.
Public URL: To be updated - watch this space for more.
Tech stack: Next.js 14 · Supabase · NextAuth (Google OAuth) · Tailwind CSS · Vercel
Scheduling rules enforced automatically
• R1 Max 3 games per weekend across the club
• R2 One game per captain per weekend
• R3 Max 2 games per tournament per calendar month
• R4 No two bookings on the same date + time slot
• R5 T20 at 10:30 conflicts with T30 slots (07:30 and 12:30) on the same day
Step 1 — Create a Supabase project檢視完整 README ↗Fixture availability and booking management for Spartans Cricket Club, Bengaluru.
Public URL: To be updated - watch this space for more.
Tech stack: Next.js 14 · Supabase · NextAuth (Google OAuth) · Tailwind CSS · Vercel
| Who | What they see |
|---|---|
| Organiser (public) | /schedule — live slot availability grid, rolling 3 months, WhatsApp CTA |
| Coordinator (admin) | /admin — booking dashboard, new booking form with live rule checks, soft block management |
spartans-book-a-slotProject URL → this is your NEXT_PUBLIC_SUPABASE_URLanon key → NEXT_PUBLIC_SUPABASE_ANON_KEYservice_role key → SUPABASE_SERVICE_ROLE_KEY (keep this secret)supabase/migrations/001_initial_schema.sql from this repospartans-book-a-slothttp://localhost:3000/api/auth/callback/googlehttps://bookslot.spartanscc.in/api/auth/callback/googlespartans-ccspartans-book-a-slotspartans-cc/spartans-book-a-slotIn your Vercel project → Settings → Environment Variables, add:
NEXT_PUBLIC_SUPABASE_URL = https://xxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY = eyJhbGci...
SUPABASE_SERVICE_ROLE_KEY = eyJhbGci... (mark as Secret)
GOOGLE_CLIENT_ID = xxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET = GOCSPX-xxx (mark as Secret)
NEXTAUTH_SECRET = (run: openssl rand -base64 32)
NEXTAUTH_URL = https://bookslot.spartanscc.in
ADMIN_EMAILS = [email protected]
NEXT_PUBLIC_WA_NUMBER = 919XXXXXXXXX
bookslot.spartanscc.inSend them: https://bookslot.spartanscc.in/schedule
That's it. No login, no instructions needed.
Go to: https://bookslot.spartanscc.in/admin
Sign in with club Gmail. Session lasts 8 hours.
Admin dashboard → find the booking → Edit → Cancel. The slot re-opens on the public schedule immediately.
Admin dashboard → find the soft block → Release.
# 1. Clone the repo
git clone https://github.com/spartans-cc/spartans-book-a-slot.git
cd spartans-book-a-slot
# 2. Install dependencies
npm install
# 3. Copy env file and fill in values
cp .env.example .env.local
# Edit .env.local with your actual values
# 4. Run development server
npm run dev
# 5. Open http://localhost:3000
src/
app/
api/
auth/ NextAuth Google OAuth handler
availability/ Public slot grid data (no auth)
bookings/ CRUD for confirmed bookings (admin auth)
soft-blocks/ CRUD for soft block reservations (admin auth)
validate/ Dry-run rule check for live form feedback
captains/ Captain list and management
tournaments/ Tournament list and management
schedule/ Public organiser-facing availability page
admin/
(dashboard) Booking list, stat cards, alerts
bookings/new Step form with live rule validation
soft-blocks/ Soft block creation and management
login/ Google OAuth sign-in page
components/
ui/ SiteNav and shared UI
schedule/ ScheduleGrid (responsive mobile/tablet/desktop)
admin/ AdminSidebar
lib/
supabase.ts Supabase client helpers
auth.ts NextAuth config with email whitelist
validation.ts All 5 scheduling rules + availability computation
whatsapp.ts WhatsApp deep link builder
types/
index.ts All TypeScript types and constants
supabase/
migrations/
001_initial_schema.sql Full DB schema — run this once in Supabase
Edit the ADMIN_EMAILS environment variable in Vercel:
[email protected],[email protected]
Redeploy. Done.
spartanscricketclub.vercel.app platformBuilt with Claude (claude.ai) · Maintained by Spartans CC · Est. 2014