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.