BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2,或任何藍牙控制器搭配 MyWhoosh、Rouvy、Zwift 等。可於 iOS、Android、Windows 與 macOS 免費試用。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Hệ thống quản lý huấn luyện ngựa đua cho 5 vai trò: Club Manager, Head Trainer, Veterinarian, Groom/Stable Hand và Horse Owner. Đối chiếu code 654ae43 và thay đổi local, cập nhật 11/10/2026. Mô tả flow hiện có không đồng nghĩa với việc mọi bước đã được người dùng test trên bản deploy.檢視完整 README ↗
Hệ thống quản lý huấn luyện ngựa đua cho 5 vai trò: Club Manager, Head Trainer, Veterinarian, Groom/Stable Hand và Horse Owner.
Đối chiếu code 654ae43 và thay đổi local, cập nhật 11/10/2026. Mô tả flow hiện có không đồng
nghĩa với việc mọi bước đã được người dùng test trên bản deploy.
client/ React + Vite + Ant Design + Tailwind: Manager, Trainer, Vet, Owner
mobile/ React Native + Expo: Groom
server/ Node.js + Express + MongoDB/Mongoose + Socket.io: API dùng chung
docs/ Flow hiện tại và checklist kiểm thử
Groom chỉ dùng app mobile/; tài khoản Groom đăng nhập web chỉ thấy hướng dẫn mở app.
Không cần Android Studio: npm --prefix mobile run web mở chính app Groom trên trình duyệt (cổng 5173, trùng cổng web quản lý nên chạy lần lượt). Camera và chế độ ngoại tuyến vẫn nên thử trên điện thoại.
Dùng Node.js 22.12+ và npm; Vite hiện tại yêu cầu Node ^20.19.0 || >=22.12.0.
Cần MongoDB local nếu chạy backend local. Nếu chỉ chạy web với backend chung,
làm theo DEPLOYMENT.md.
Từ thư mục gốc, trên PowerShell:
npm install
Copy-Item server/.env.example server/.env
Copy-Item client/.env.example client/.env
npm run dev
http://localhost:5173.http://localhost:5000/api/v1.http://localhost:5000/api-docs.http://localhost:5000/api/v1/health-check.Nếu máy không nhận npm, trên máy Duy có thể dùng
& 'D:\npm-global\npm.cmd' install và các lệnh tương ứng.
npm run seed tạo lại dữ liệu demo và xóa dữ liệu ở nhiều collection trong
database mà MONGO_URI đang trỏ tới. Chỉ chạy khi chủ động muốn đặt lại database
test riêng; không đưa seed vào quy trình deploy hoặc chạy trên database chung.
Sau seed local, mật khẩu các tài khoản dưới đây là 123456:
| Vai trò | |
|---|---|
| Club Manager | [email protected] |
| Head Trainer | [email protected] |
| Veterinarian | [email protected] |
| Groom | [email protected] |
| Horse Owner | [email protected] |
Tài khoản trên backend chung do Manager quản lý; không suy ra trạng thái tài khoản đang hoạt động từ bảng demo này. Đăng ký mới tạo tài khoản chờ duyệt, chưa đăng nhập được.
Manager tiếp nhận và phân công → Trainer lập khẩu phần → Vet khám → Trainer lập kế hoạch và sinh lịch → Groom thực hiện chăm sóc → Trainer pre-check, bắt đầu, kết thúc và đánh giá → Groom chăm sóc sau tập.
Nếu hướng tới thi đấu: đăng ký giải → lập kế hoạch hướng tới giải → chạy thử gắn với giải → HLV quyết định tham gia/rút → nhập kết quả và tiền thưởng → theo dõi hồi phục. Đăng ký giải là tùy chọn; ngựa có thể huấn luyện mà không có giải mục tiêu.
Lập kế hoạch chưa tạo buổi tập; sinh lịch chưa chạy cảm biến. Xem trạng thái và điều kiện ở CURRENT_FLOW.md.
Backend chung được cấu hình trong dự án: https://racehorse-tms-server.onrender.com.
Swagger: https://racehorse-tms-server.onrender.com/api-docs.
Phiên cập nhật tài liệu này chưa xác minh phiên bản đang chạy trên Render.
Mọi endpoint trong hướng dẫn dùng tiền tố /api/v1. Swagger được viết tay ở
server/src/docs/openapi.js; khi đổi nghiệp vụ, đối chiếu route/controller và
cập nhật cả Swagger lẫn flow. Đăng nhập qua POST /auth/login, lấy token rồi
dùng Authorize trong Swagger.
Trang hướng dẫn test chính/phụ riêng: bản công khai https://claude.ai/artifact/495trt4fgGWhx1E9iJQ9RH, hoặc chạy npm run test:guide rồi mở
http://localhost:5190. Hướng dẫn; không tích hợp
vào web project. Có checklist, ghi chú và xuất biên bản.
Hướng dẫn môi trường DB test, lệnh API/UI và CI: AUTOMATED_TESTS.md. Kết quả đã chạy: TEST_REPORT.md. MongoDB cần replica set cho transaction của công việc/kho và kết quả/tiền thưởng.
npm test -w server
npm --prefix mobile test
npm run lint -w client
npm run build -w client
Test API và Chromium đã có trong repo; dùng DB riêng, không seed dữ liệu chung. Kết quả tự động không thay thế việc test Expo trên điện thoại và toàn bộ các form trong checklist. Trạng thái bản deploy chưa được xác minh trong phiên này.