尚未偵測到更新。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.