BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2 或任何藍牙控制器,搭配 MyWhoosh、Rouvy、Zwift 等。iOS、Android、Windows、macOS 均可免費試用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
チェンナイのピックルボールサークル運営アプリ。認証なし・モバイルファースト。 このリポジトリは仕様書 pickleball-app-spec.md の Phase 1 を実装したものです。查看完整 README ↗
チェンナイのピックルボールサークル運営アプリ。認証なし・モバイルファースト。
このリポジトリは仕様書 pickleball-app-spec.md の Phase 1 を実装したものです。
7-5-2 形式、開始は 0-0-2)wa.me でワンタップ共有 or コピーPhase 2 のコート機能を使うには、
supabase/phase2-courts.sqlの実行が必要です(下記セットアップ参照)。
Phase 3 を使うには
supabase/phase3-tournaments.sqlの実行が必要です。
manifest.webmanifest + アプリアイコン + Service Worker。スマホで「ホーム画面に追加」でき、一度開けばオフラインでも起動(スコアボードはオフライン利用可)/api/ping を叩き、約1週間アクセスがないと停止する無料枠を起こしておく(追加設定不要・vercel.json)Web Push 通知は VAPID 鍵・配信基盤が必要なため未実装(告知は WhatsApp 連携でカバー)。必要になれば追加します。
npm install
supabase/schema.sql の内容を貼り付けて Run
supabase/phase2-courts.sql も Run(コート関連テーブル・評価項目・写真用Storageバケットを作成)supabase/phase3-tournaments.sql も Run(大会・エントリー・組み合わせテーブルを作成)supabase/phase4-payments.sql も Run(コート使用費の割り勘・UPIコード用のカラムとStorageバケットを作成)supabase/phase5-team-league.sql も Run(団体戦: チーム対抗リーグ用のカラムを作成)Project URLanon public キー.env.local.example を .env.local にコピーして値を埋めます。
cp .env.local.example .env.local
NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOi...
NEXT_PUBLIC_APP_URL=http://localhost:3000
未設定でもアプリは起動しますが、上部に警告バーが出てデータ保存はできません (スコアボードのその場利用のみ可能)。
npm run dev
http://localhost:3000 を開く → 初回は表示名を登録して開始。
npm run build && npm start
NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY / NEXT_PUBLIC_APP_URL(本番URL)を設定運用上の注意: 認証なし方式のため、アプリのURLは非公開でメンバーにのみ共有してください(仕様書 3.2)。 Supabase 無料枠は1週間アクセスがないと一時停止するため、週1回以上の利用があれば問題ありません。
src/
├─ app/
│ ├─ layout.tsx ルートレイアウト(ナビ・メンバーゲート)
│ ├─ page.tsx ホーム(次回活動日 + 出欠 + 最近の試合)
│ ├─ actions.ts Server Actions(作成・更新・出欠・保存)
│ ├─ schedule/ 予定一覧(リスト/カレンダー)
│ ├─ events/[id]/ 活動日詳細・編集
│ ├─ events/new/ 活動日作成
│ ├─ scoreboard/ スコアボード設定 → /play で全画面
│ ├─ more/ メンバー一覧・プロフィール
│ └─ tournaments/ 大会(Phase 3 プレースホルダ)
├─ components/ UIコンポーネント
└─ lib/
├─ scoring.ts サイドアウト式スコアリングのエンジン
├─ whatsapp.ts 告知/参加者リストのテキスト生成
├─ data.ts サーバー側の読み取りクエリ
├─ format.ts 日付・時刻フォーマット
├─ types.ts ドメイン型
└─ supabase/ Supabaseクライアント(server/browser)
supabase/schema.sql DBスキーマ(SQL Editor で実行)
pickleball-app-handoff/ デザインモック(実装の見た目基準)
src/lib/scoring.ts に純粋関数として実装。サイドアウト式(伝統ルール):
0-0-2(サーバー#2)から