尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Auto-book competitive fitness classes (Barry's, Aarmy, SLT, and more)
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Auto-book competitive fitness classes as soon as booking opens or a slot appears.
Fitness Sniper is a private TypeScript monorepo with a Next.js dashboard, a PostgreSQL-backed booking worker, and shared studio/API logic.
• Stores encrypted per-studio credentials.
• Lets users create recurring and one-time snipe targets.
• Browses live and cached class schedules.
• Creates booking jobs at each studio's booking-open time.
• Books through platform-specific adapters.
• Tracks worker health, booking history, and per-studio success rates.
• Sends success/failure email notifications through Resend.檢視完整 README ↗Auto-book competitive fitness classes as soon as booking opens or a slot appears.
Fitness Sniper is a private TypeScript monorepo with a Next.js dashboard, a PostgreSQL-backed booking worker, and shared studio/API logic.
.
├── web/ # Next.js App Router dashboard and API routes
├── worker/ # Always-on booking daemon
├── packages/shared/ # Shared types, studio registry, and API clients
├── supabase/migrations/ # PostgreSQL schema migrations
├── archive/ # Legacy reference code only, not deployed
└── screenshots/ # UI verification screenshots
npm install
Create environment files from the examples:
cp web/.env.local.example web/.env.local
cp worker/.env.example worker/.env
Required web variables:
DATABASE_URL=
DATABASE_POOL_MAX=2
ENCRYPTION_KEY=
AWS_REGION=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
COGNITO_USER_POOL_ID=
COGNITO_CLIENT_ID=
COGNITO_CLIENT_SECRET=
AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are required on Vercel because signup uses Cognito AdminConfirmSignUpCommand. DATABASE_POOL_MAX is optional; the web app defaults to 2 in production to avoid exhausting PostgreSQL connections from serverless instances.
Required worker variables:
DATABASE_URL=
ENCRYPTION_KEY=
RESEND_API_KEY=
WORKER_ID=
ENCRYPTION_KEY must be the same 64-character hex key for web and worker.
npm run web:dev
npm run worker
Build commands:
npm run web:build
npm run worker:build
npm run build
Lint:
npm run lint
There is currently no automated test framework configured.
Deploy from the repository root:
Install Command: npm ci --workspace=web --workspace=packages/shared --include-workspace-root
Build Command: npm run web:build
Output Directory: web/.next
Set the required web environment variables in the Vercel project. The booking worker is not a Vercel function; run npm run worker on the always-on worker host with the worker environment variables.
The active schema is PostgreSQL with Cognito user IDs:
supabase/migrations/001_rds_schema.sqlsupabase/migrations/002_one_time_targets.sqlsupabase/migrations/003_class_schedules.sqlsupabase/migrations/004_credential_separate_iv.sqlsupabase/migrations/005_booking_timing.sqlsupabase/migrations/006_optional_time_arketa.sqlsupabase/migrations/007_history_class_name.sqlSupabase Auth and Supabase client helpers are legacy and should not be reintroduced.
This repository root is the active Fitness Sniper app. The old class-sniper tree was an earlier name/copy and should stay deleted. Archive files are retained only for historical selector and flow reference.