BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2,或任何藍牙控制器搭配 MyWhoosh、Rouvy、Zwift 等。可於 iOS、Android、Windows 與 macOS 免費試用。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
An operations, scheduling, and communication hub for a gym's trainers and clients.
Built with Next.js (App Router), Supabase (Postgres + Auth + Row-Level Security), Tailwind CSS, and deployed on Vercel.檢視完整 README ↗An operations, scheduling, and communication hub for a gym's trainers and clients.
Built with Next.js (App Router), Supabase (Postgres + Auth + Row-Level Security), Tailwind CSS, and deployed on Vercel.
| Table | Purpose |
|---|---|
profiles | One row per auth user (role, name, contact, bio, goals). |
trainer_clients | Links clients to trainers. |
availability | Recurring weekly availability windows for trainers. |
sessions | Calendar bookings between a trainer and a client. |
messages | 1:1 direct messages. |
announcements | Gym-wide posts (trainer-authored). |
client_progress | Measurement / progress log per client. |
Every table is protected by Row-Level Security — users only ever see and modify their own data. See supabase/migrations/0001_init.sql.
npm install
cp .env.example .env.local # fill in your Supabase URL + anon key
npm run dev
Environment variables:
| Variable | Where to find it |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase project → Settings → API |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase project → Settings → API (publishable/anon key) |
Apply the migration in supabase/migrations/0001_init.sql to a Supabase project
(via the Supabase SQL editor, the CLI, or the dashboard). It creates all tables,
the handle_new_user trigger that provisions a profile on signup, and the
row-level-security policies.
The recommended, reliable path is to import this GitHub repo into Vercel:
Vercel → Add New… → Project → import the idealfitness repo.
Select the branch claude/gym-operations-hub-yvlsdx (or merge it to main first).
Framework preset: Next.js (auto-detected).
Add the two Environment Variables (Production + Preview):
| Key | Value |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | https://oknfnlucnnnzgxahtkrp.supabase.co |
NEXT_PUBLIC_SUPABASE_ANON_KEY | sb_publishable_nbyLuTf1yM5AEp1_TRi9LA_CHsFKqm8 |
Deploy. Every future push auto-deploys.
The anon/publishable key is safe to expose in the browser — access is enforced by the row-level-security policies in the migration.
The database is seeded with three confirmed accounts (password Fitness123!):
| Role | |
|---|---|
[email protected] | Trainer (has 2 clients, sessions, announcements) |
[email protected] | Client |
[email protected] | Client |
New sign-ups: Supabase email confirmation is on by default. For open self-serve signup, turn off Authentication → Providers → Email → "Confirm email" in the Supabase dashboard so new users can log in immediately.