BodyCarve:一个集训练、营养和内容管理的小健身系统
BodyCarve 不不是一个一开始就有完整规划的项目。是在我回km备考时,临时起意出来的一个练手项目。
主要开发背景:
1️⃣ 当时在备考,日常基本就是学习和健身两点一线。接触健身也处于快速的认知吸收期。
2️⃣ AI 编程刚开始明显爆发,我也在尝试了不同的模型,比如 GPT、Claude Code 里的 Sonnet 3.5/4。
3️⃣ 再加上备考期间不想让自己手生。
于是就有了:bodycarve
所以这个项目的出发点很简单:做一个围绕健身内容的小系统,同时用它练一遍从产品定位、前后端架构、AI 辅助开发到部署整理的完整流程。
1. 项目的出发点
调研了很多国内外的健身完站,其实我觉得最好的还是keep的网站效果。但是相比于他拥有几个比较重的功能模块,比如社区,课程营销等。最终敲定了我想要的一个初模型
👉 动作教学/营养搭配/科普文章 + 后台管理(图片/视频/文章)
同时也思考了几个问题:
- 1️⃣ 动作教学的分类、和搜索。
- 2️⃣ 营养搭配要如何展示、餐饮计划怎么生成。
- 3️⃣ 图片、视频、URL 这类素材如何管理。
这几个问题放在一起之后,其实已经差不多是这个站点的核心点了。需要前台展示,也要后台管理;需要让阅读者能够快速的get到界面信息。
所以 BodyCarve 后来逐渐形成了一个比较清晰的定位:
1️⃣ 前台是一个轻量的健身内容站点
2️⃣ 后台是一个给自己维护内容和素材用的 Studio
2. 项目结构
我把 BodyCarve 拆成了两个面:
前台负责展示,重点是让用户快速进入内容:
- ⭕️ 首页:作为训练、营养和文章内容的入口。
- ⭕️ 训练动作库:按胸、背、肩、腿等训练重点进入动作列表。
- ⭕️ 动作详情页:展示动作说明、视频素材和相关动作。
- ⭕️ 营养搭配库:提供食物营养信息查询。
- ⭕️ 文章模块:沉淀训练、饮食、恢复等内容。
后台 Studio 负责维护,重点是能稳定地更新内容:
- ⭕️ 文章工作台:管理文章的草稿、发布、下架和删除。
- ⭕️ 上传中心:上传图片、视频和 URL 素材。
- ⭕️ 训练资源导入:把动作相关数据持续补进系统。
3. 架构设计
技术选型上,我没有追求很新的东西,而是选了自己能快速掌控、也方便长期维护的组合。
前端使用 Vue 3、Vue Router、Vite 和 Axios。Vue 负责页面和交互,Router 管理前台页面和 Studio 入口,Axios 统一和后端接口通信。
前端的任务主要是把训练、营养、文章和后台工作台这些场景组织清楚,不去做过度复杂的状态管理。
后端使用 Spring Boot,配合 MyBatis和 MySQL。
Spring Boot 负责接口和服务层 。
MySQL 存储训练动作、食物营养、文章、分类、标签和素材信息 。
文件这块接入了阿里云 OSS,用来处理图片、视频和 URL 素材。
整体架构可以概括成这样:
用户前台
-> Vue 页面
-> Axios 请求
-> Spring Boot API
-> MySQL / OSS
后台 Studio
-> 文章工作台 / 上传中心
-> Spring Boot 管理接口
-> MySQL / OSS
这里我比较看重的不是架构“高级”,而是边界清楚:
- 前台浏览接口尽量保持公开和稳定。
- 后台写接口需要管理员 token。
- 数据存 MySQL,文件进 OSS。
- 数据库、OSS、后台 token 等敏感配置走环境变量。
- 本地启动、构建、测试都尽量有固定命令。
这些设计不会让页面截图更好看,但它们会决定项目后面还能不能继续迭代。
4. 已经实现的功能
BodyCarve 现在已经不是一个静态展示页,而是有了比较完整的内容系统雏形。
1️⃣ 训练模块里,用户可以从首页进入动作库,再按训练部位查看动作。动作详情页承接具体动作说明、视频素材和相关资源。这个模块对应的是健身内容里最核心的动作教学场景。
2️⃣ 营养模块里,食物库提供分页和详情查询,主要解决“我想知道某个食物大概营养信息”的问题。它目前还不是复杂的饮食计划工具,但已经有了后续扩展成饮食计划、热量记录或推荐模块的基础。
3️⃣ 文章模块负责沉淀内容。训练经验、营养科普、恢复建议这些东西,如果只散在外部笔记里,就很难和站内动作、食物模块形成关系。文章系统把这部分内容收进 BodyCarve,后面可以继续做分类、标签和内容推荐。
4️⃣ Studio 是这次项目里我觉得最关键的部分。它让 BodyCarve 不只是“展示给别人看”,也变成了一个我自己能维护的工具。文章可以在后台创建、编辑、发布、下架,素材可以通过上传中心进入 OSS,URL 图片也能作为一种素材来源接入。
5. 最终成果
如果只看功能,BodyCarve 现在完成了一个健身内容系统的基本闭环:
- 用户可以浏览训练动作、动作详情、食物营养和文章内容。
- 我可以在 Studio 里维护文章、上传素材、管理训练资源。
- 图片、视频等素材可以接入 OSS,而不是存在前端项目文件中。
- 后台写接口有了轻量鉴权,不再是完全开放状态。



6. 一些反思
1️⃣ 这次做 BodyCarve,我最大的感受是:AI 可以明显提高开发速度,但是仍然需要人对开发方向把关,稳住开发方向。
这是第一个vibecoding项目,前期没有考虑好要让AI承担什么样的具体职责,粗暴的就开始问答式的功能实现,起初整个后端代码是我一周完成的,后来在多次的功能点优化后,被AI改动了大部分,甚至有点不可控。
(早期的AI上下文记忆短,经常问着问着就出现幻觉了,把一些没要求改动的地方或者界面给动了,然后又要细调)
前端页面、组件样式、接口调用这些工作,AI 辅助确实很有效,尤其适合快速搭一个可用版本。
但项目该拆成几个模块,接口权限,资源上传等,这些问题还是要自己想清楚。
2️⃣ 另一个感受是,个人项目也需要工程纪律。
以前我会觉得个人练手项目没必要太讲究,能跑就行。
但后面发现,越是个人项目,越应该把基础工作做扎实。
因为这些都是性价比极高的兜底步骤,现在忙一下,以后维护轻松。
3️⃣ 对于内容填充,这个初版完成时候其实毫无头绪,刚开始是打算做优质抖音博主的搬运,但是觉得不妥,而且缺乏针对性。最后只有在YouTube和外网一些公开免费是视频资源站上,扒了一些训匹配的练动作视频。
4️⃣ BodyCarve 现在还没到“完成”的状态。后面还有几个地方需要完善:
- 文章 Studio 的创建、编辑、发布、下架、删除流程继续稳定下来。
- 首页、训练、营养、文章、上传、Studio 建一份最小回归清单。
- 训练动作数据继续补质量,包括分类、说明、视频和关联动作。
- 后续再考虑搜索、筛选、推荐和更完整的饮食计划能力,完善训练计划功能。
总结
对我来说,这个项目的意义也不只是做了一个健身网站。是一次AI的初尝试,结合此前的工程经验,达到网站初步目标。这个系统还有很多需要完善的点,后续也会借助现在更加成熟的AI能力推动重构。
Result
阶段结果
当前状态为 进行中。
