Workout.Cool 完整指南:3步搭好你的开源健身平台
Workout.Cool 完整指南:3步搭好你的开源健身平台【免费下载链接】workout-cool Modern open-source fitness coaching platform. Create workout plans, track progress, and access a comprehensive exercise database.项目地址: https://gitcode.com/gh_mirrors/wo/workout-cool训练表写在表格里,挑动作靠翻视频,练了两周又忘了上次用了多少重量——记录健身这件事,缺的不是打卡,而是一个能建计划、查动作、存数据的地方。Workout.Cool 是一个开源健身教练平台:你建训练计划、从锻炼数据库里按肌群和设备挑动作、每次训练记录组数与重量,再用心率区间计算器这类工具把强度定下来。代码遵循 MIT 协议,可以整套部署到自己服务器上,不依赖任何商业服务。一个平台,三块拼图很多健身产品是单点的:要么是纯动作库,要么是纯打卡器。这个平台把三件事放进同一个站点:动作数据:每个动作带肌群、器械类型、视频演示,数据支持从 CSV 导入扩充;计划与进度:训练计划可报名、按次打卡,进度有接口可查;计算工具:心率区间、卡路里、BMI,训练前后都能用。界面自带中、英、法、西、葡、俄六种语言,并且是 PWA(能安装到手机主屏的渐进式 Web 应用),通勤路上用手机记录也顺手。锻炼数据库:按肌群和设备挑动作构建器是平台的主入口。它不按动作名称让你大海捞针,而是按肌群组织:胸、背、二头、股四头、臀肌等十几个分组,先回答今天练哪里,再往下筛。第二层是器械过滤——哑铃、杠铃、弹力带、自重、壶铃,家里没有杠铃的人能直接把不现实的动作排除掉。常用动作可以收藏;犹豫练什么时,随机按钮帮你抽一个。选中某个动作会弹出视频演示,不用切到别的 App 去查。数据量方面,仓库自带data/sample-exercises.csv和导入脚本,想扩充成自己的多语言动作集,一条命令就能灌进数据库。训练计划:从报名到进度打卡除了临时组训练,你还可以发布固定训练计划:定义难度和所需器械,拆成若干次课程。用户通过计划页报名,之后逐次开始、完成,后台按会话记录进度,app/api/programs/[slug]下提供了报名、会话、进度三组接口。统计页把历史数据再往前走一步:1RM 曲线、容量图、重量进步图,练了一个月力量到底涨没涨,一张图就能看出来。社区里还有一张排行榜,按累计训练次数和周均次数排座次,给坚持这件事加一点竞争。工具页:心率区间怎么算工具页里最实用的是心率区间计算器:输入年龄,按 220 − 年龄 估算最大心率,再切出五个训练区间——热身 50%~60%、燃脂 60%~70%、有氧 70%~80%、无氧 80%~90%、峰值 90%~100%,每个区间标注了适用目的。跑步时瞄一眼手表,就能确认自己待在该待的区间里,而不是凭感觉跑到喘。同一页面还有卡路里计算器:提供 Mifflin-St Jeor、Katch-McArdle 等多种公式,可单独选,也可以放在对比页里横向看差异;BMI 计算器则覆盖基础身体指标。技术侧:选型和目录怎么组织选型不追求新,追求稳:Next.js 16 加 React 19 做前后端一体,Prisma 管 PostgreSQL 数据库,better-auth 负责邮箱和第三方账号登录,国际化由 next-international 承担。代码按 Feature-Sliced Design(一种把业务按功能切块、依赖单向分层的目录规范)组织,找代码先认目录:src/ ├── app/ # Next.js 路由:工具页、计划页、管理后台 ├── features/ # 业务模块:workout-builder、programs、statistics、leaderboard ├── entities/ # 领域模型:user、exercise、program ├── shared/ # Prisma 客户端、i18n、工具函数 └── widgets/ # 语言切换器等可复用 UI数据库表定义集中在prisma/schema.prisma,动作导入脚本在scripts/import-exercises-with-attributes.ts,想改数据模型先看这两处。三分钟跑起来:本地开发与自托管开发路径最短:克隆、复制环境变量、跑一个 make 目标,它会用 Docker 起数据库、跑迁移、灌入示例数据并启动开发服务器:git clone https://gitcode.com/gh_mirrors/wo/workout-cool cd workout-cool cp .env.example .env make dev浏览器打开 localhost:3000 就能用。不想用 Docker 的话,手动走pnpm install、建库、npx prisma migrate dev、pnpm dev四步,README 里写得很细。.env里真正必填的只有数据库连接串、认证密钥和站点地址三项。正式自托管(独立容器加 Caddy 自动 HTTPS,docker compose 或外接数据库两种方案)见 docs/SELF-HOSTING.md;把SEED_SAMPLE_DATA设为true,首次启动会自动灌入示例动作。需要更多动作时,用自己的 CSV 执行pnpm run import:exercises-full ./data/sample-exercises.csv即可。三种角色,三种用法个人用户:注册后先用心率区间定强度,再围绕手里的器械建计划,每次训练记完组数重量,一个月后看 1RM 曲线回本。健身教练:管理后台提供计划管理(创建、发布、可见性设置),给客户建好六周计划、对方报名后,每次打卡进度都在会话记录里可查,省去来回问这周练了没。开发者:FSD 分层让新功能有固定落点——在features/下开独立目录,内部按 ui、model、api 放东西,不跨层引用;多语言文案集中在locales/,加一门语言从这里动手。参与贡献:从提一个 Issue 开始协作规则写在 CONTRIBUTING.md 里:先建 Issue 并认领,一个 Issue 对应一个 PR,合并前至少一名维护者审查,历史用 squash 合并保持干净。移动端方向已有铺垫——依赖里含 Expo 适配层,PWA 当前可以先覆盖手机上记录训练的基本需求,这是社区后续会持续投入的方向。你的下一步二选一:克隆仓库按上一节部署一个自己的实例,或者提一个 Issue 写下你遇到的问题,等社区来认领。【免费下载链接】workout-cool Modern open-source fitness coaching platform. Create workout plans, track progress, and access a comprehensive exercise database.项目地址: https://gitcode.com/gh_mirrors/wo/workout-cool创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考