尚未检测到更新。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.