尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Rehab routines your patients actually open. Physiotherapists manage customers and injury
cases, build routines and weekly plans from their own exercise library (videos, categories,
body areas), and share them through a clean link, with no patient account needed. Patients can
follow a guided workout, log sessions and pain, and download a branded PDF.
Status: sign-in, onboarding and profile (spec 01) are built. Features are specified in
docs/specs/ and built one per session.
Requirements: Node 24 (see .nvmrc), pnpm 10, Docker (for local Supabase).檢視完整 README ↗Rehab routines your patients actually open. Physiotherapists manage customers and injury cases, build routines and weekly plans from their own exercise library (videos, categories, body areas), and share them through a clean link, with no patient account needed. Patients can follow a guided workout, log sessions and pain, and download a branded PDF.
Status: sign-in, onboarding and profile (spec 01) are built. Features are specified in
docs/specs/and built one per session.
Next.js 16 (App Router) · TypeScript · Tailwind CSS v4 · shadcn/ui · Supabase (Postgres, Auth,
Storage) · Drizzle ORM · next-intl · Vitest · Playwright. See
docs/architecture.md.
Requirements: Node 24 (see .nvmrc), pnpm 10, Docker (for local Supabase).
pnpm install
pnpm db:start # local Supabase in Docker
cp .env.example .env.local
# Copy PUBLISHABLE_KEY and SECRET_KEY from `pnpm exec supabase status -o env` into
# NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY and SUPABASE_SECRET_KEY in .env.local
pnpm dev # http://localhost:3000, sign-in emails land in Mailpit (http://127.0.0.1:54324)
| Script | What it does |
|---|---|
pnpm dev / build / start | Next.js |
pnpm check | Lint, typecheck, Prettier check, unit tests |
pnpm test / test:watch | Vitest |
pnpm test:int | Integration tests against local Supabase (RLS, triggers, queries) |
pnpm test:e2e | Playwright (desktop + mobile), builds and serves on port 3100 |
pnpm db:start / db:stop / db:reset | Local Supabase |
pnpm db:generate | Generate a migration from the Drizzle schema |
pnpm db:studio | Drizzle Studio |
Vercel deploys main to production through its GitHub integration. vercel.json turns off
deployments for every other branch: there is no separate preview database, and the env vars
are set for Production only. Set them in Vercel from .env.example, with DATABASE_URL on
Supabase's transaction pooler (port 6543). NEXT_PUBLIC_* values are inlined at build time, so
redeploy after changing one.
Local config lives in supabase/config.toml; a hosted project needs the same settings in the
dashboard:
migrate job in .github/workflows/ci.yml applies pending migrations on
every push to main, after all checks pass (it does nothing when none are pending). One-time
setup: create a GitHub environment named production and add a SUPABASE_DB_URL secret to
it, using the session pooler connection string (Project Settings → Database → Connection
string, port 5432, user postgres.<ref>, password percent-encoded). The direct host is
IPv6-only and the transaction pooler (6543) can't run migrations. The first run also creates
the auth.users trigger that gives every new user a physios row. To apply by hand:
pnpm exec supabase db push --db-url "<session pooler url>". Vercel deploys main in parallel,
so keep migrations additive (see docs/architecture.md).<app URL>/auth/** to the
redirect URLs. A missing redirect URL breaks magic links (they fall back to the Site URL).supabase/templates/magic_link.html into both "Magic
Link" and "Confirm signup", and set both subjects to
Tu link para ingresar · Your sign-in link — Physio Trainer (the subjects in
supabase/config.toml only apply locally). Re-paste whenever the template changes (it
became bilingual in spec 17).NEXT_PUBLIC_AUTH_EMAIL_ENABLED=false (with Google enabled) to hide the magic-link form.NEXT_PUBLIC_AUTH_GOOGLE_ENABLED=true in the app's environment.docs/architecture.md: decisions, domain model, security model, conventionsdocs/specs/: feature specs and build orderCLAUDE.md: working agreements for AI-assisted development