尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A Physitrack-style physiotherapy web app: programs, exercise videos, telehealth, progress, reminders, and privacy controls.
Open http://localhost:3000.
Sign-in and sign-up use Firebase Auth email + password only. There is no OTP step and no phone code. Copy .env.uat.example for the Preview / UAT environment and keep LOCAL_TEST_ACCOUNTS=false, AUTH_OTP_ENABLED=false, and PHONE_OTP_ENABLED=false.查看完整 README ↗A Physitrack-style physiotherapy web app: programs, exercise videos, telehealth, progress, reminders, and privacy controls.
cd physioflow
npm install
npm run dev
Open http://localhost:3000.
Sign-in and sign-up use Firebase Auth email + password only. There is no OTP step and no phone code. Copy .env.uat.example for the Preview / UAT environment and keep LOCAL_TEST_ACCOUNTS=false, AUTH_OTP_ENABLED=false, and PHONE_OTP_ENABLED=false.
| Who | URL |
|---|---|
| Patient or doctor | /login and /register |
| Clinic admin | /admin/login then /admin/dashboard |
Admin is a separate page. It checks ADMIN_EMAIL and ADMIN_UID (the Firebase Auth UID) and does not use the patient/doctor form. Doctors add named treatments and prices under /doctor/services. Those prices are stored on doctors_public.services and shown when a patient books.
Copy .env.example. Notable keys:
| Area | Variables | Notes |
|---|---|---|
| Password / Auth | NEXT_PUBLIC_FIREBASE_* | UAT login and signup use Firebase email + password. OTP stays off (AUTH_OTP_ENABLED=false). |
| Password reset | FIREBASE_SERVICE_ACCOUNT_JSON, RESEND_API_KEY, NOTIFY_FROM_EMAIL | /forgot-password asks POST /api/auth/password-reset to email a Firebase reset link through Resend. Without those, the page falls back to Firebase’s built-in mail. Add the site host under Firebase Auth authorized domains. Optional NEXT_PUBLIC_APP_URL sets the continue URL. |
| Payments | PAYMENT_SIGNING_SECRET (or ADMIN_SESSION_SECRET), FIREBASE_SERVICE_ACCOUNT_JSON, Razorpay keys | Orders get a signed persistenceToken and optional Firestore payment_orders. Without signing and Admin SDK, orders are memory-only and lost on restart. |
| Video TURN | TURN_URL or TURN_URLS, TURN_USERNAME, TURN_CREDENTIAL | GET /api/ice always returns public STUN. TURN is appended only when env is set; without it, many mobile/NAT networks fail. |
| Reminders | CRON_SECRET, FIREBASE_SERVICE_ACCOUNT_JSON, RESEND_API_KEY | Vercel hourly cron hits /api/cron/reminders. Needs Admin SDK to read bookings; email/FCM need Resend / FCM tokens. |
| Admin | ADMIN_EMAIL, ADMIN_UID, ADMIN_SESSION_SECRET | Separate /admin/login. ADMIN_UID is the Firebase Auth UID. |
/api/ice)This is a front-end demo. Production HIPAA/GDPR use needs a secured backend, TLS, identity provider, BAA-covered video, and clinical governance.