返回项目
进行中全栈实现

BodyCarve-体态雕刻

BodyCarve 一开始是一个健身内容展示项目,后来逐步补上训练动作库、营养查询、文章工作台、素材上传和部署配置。

BodyCarve-体态雕刻 封面

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 现在完成了一个健身内容系统的基本闭环:

  1. 用户可以浏览训练动作、动作详情、食物营养和文章内容。
  2. 我可以在 Studio 里维护文章、上传素材、管理训练资源。
  3. 图片、视频等素材可以接入 OSS,而不是存在前端项目文件中。
  4. 后台写接口有了轻量鉴权,不再是完全开放状态。

image
image image image image
image

6. 一些反思

1️⃣ 这次做 BodyCarve,我最大的感受是:AI 可以明显提高开发速度,但是仍然需要人对开发方向把关,稳住开发方向。
这是第一个vibecoding项目,前期没有考虑好要让AI承担什么样的具体职责,粗暴的就开始问答式的功能实现,起初整个后端代码是我一周完成的,后来在多次的功能点优化后,被AI改动了大部分,甚至有点不可控。

(早期的AI上下文记忆短,经常问着问着就出现幻觉了,把一些没要求改动的地方或者界面给动了,然后又要细调)

前端页面、组件样式、接口调用这些工作,AI 辅助确实很有效,尤其适合快速搭一个可用版本。
但项目该拆成几个模块,接口权限,资源上传等,这些问题还是要自己想清楚。

2️⃣ 另一个感受是,个人项目也需要工程纪律。

以前我会觉得个人练手项目没必要太讲究,能跑就行。
但后面发现,越是个人项目,越应该把基础工作做扎实。
因为这些都是性价比极高的兜底步骤,现在忙一下,以后维护轻松。

3️⃣ 对于内容填充,这个初版完成时候其实毫无头绪,刚开始是打算做优质抖音博主的搬运,但是觉得不妥,而且缺乏针对性。最后只有在YouTube和外网一些公开免费是视频资源站上,扒了一些训匹配的练动作视频。

4️⃣ BodyCarve 现在还没到“完成”的状态。后面还有几个地方需要完善:

  1. 文章 Studio 的创建、编辑、发布、下架、删除流程继续稳定下来。
  2. 首页、训练、营养、文章、上传、Studio 建一份最小回归清单。
  3. 训练动作数据继续补质量,包括分类、说明、视频和关联动作。
  4. 后续再考虑搜索、筛选、推荐和更完整的饮食计划能力,完善训练计划功能。

总结

对我来说,这个项目的意义也不只是做了一个健身网站。是一次AI的初尝试,结合此前的工程经验,达到网站初步目标。这个系统还有很多需要完善的点,后续也会借助现在更加成熟的AI能力推动重构。

Result

阶段结果

当前状态为 进行中。