>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
TypeScript

充分利用训练日志:LiftShift 使用指南

LiftShift Logo

如果你去健身房并在 Hevy、Strong 或 Lyfta 中认真记录每一组,你可能已经注意到一件事。移动追踪器擅长收集原始数据,但几乎从不帮助你理解数据。最多,应用会显示一个月内某个练习的图表,并祝贺你达成新的单次最大重量。真正的问题在于,你很难看出哪些肌群一直训练不足、在哪里遇到了真正的瓶颈需要改变方法,以及什么是第三组后正常的疲劳感。

我最近发现了开源项目 LiftShift。这是一个直接在浏览器中运行、无需注册的训练日志深度分析网页工具。


项目功能

核心概念很简单:向应用提供你的导出数据或连接账户,它会从运动周期化的角度整理你的训练记录。

UI Screenshot 1

UI Screenshot 2

探索仪表板时,以下功能立刻脱颖而出:

  • 肌群热力图。交互式人体模型展示每个肌群的训练容量负荷。点击特定肌群可查看产生该刺激的练习。算法会根据训练经验调整容量区间(MEV 和 MRV 阈值),并给出 0 到 100 的增肌评分。
  • 瓶颈检测。工具不仅显示简单的重量趋势,还会为练习分配明确的状态:增长、平台期或下降。系统区分死胡同式瓶颈(重量和次数完全停滞)和波浪式波动,然后给出建议:增加一次、减载周降低训练重量,或改变次数范围。
  • 每组分解。你可以打开任何过去的训练课查看组别评估。系统识别正常疲劳、过于突然的重量增加、完美的递减组或力竭组(AMRAP)。每组都会获得标签和针对下次训练的直接建议。
  • 合并不同应用的数据。如果你使用 Strong 多年后转向 Hevy,历史记录通常会断裂。该项目可以匹配同一练习的不同名称、去除重复项,并将所有内容整合成一条时间线。
  • 导出供神经网络使用。如果内置图表不够用,数据可以导出为结构化格式,用于向 ChatGPT 或 Claude 发送提示。还有现成的模块:垃圾容量审计、侧向平衡检查或关节负荷评估。
  • GitHub 风格日历热力图。你可以清楚地看到连续训练天数、遗漏的周数和整年的一致性。

UI Screenshot 3

UI Screenshot 4


技术实现

项目架构以隐私为中心。所有计算、CSV 解析和图表渲染都在客户端进行。

UI Screenshot 5

UI Screenshot 6

前端采用现代技术栈:React 19、TypeScript、Vite、Tailwind CSS 和 Recharts 图表库。配合 Express 和 Puppeteer 的轻量级 Node.js 后端仅作为代理,处理追踪器(如 Hevy 和 Lyfta)的 API 调用,因为这些需要浏览器 CORS 限制或授权。训练日志最终不会存储在服务器上。

对于 Strong,支持导入 CSV 文件,包含分号分隔符、引号和标题中的重量单位后缀。


本地运行方法

如果你想在本地部署项目或编写自定义解析器,只需几个命令。需要 Node.js 22 或更高版本。

git clone https://github.com/aree6/LiftShift.git
cd LiftShift
npm install
npm run dev

启动后,本地服务器将在 Vite 的标准端口上运行。

Workflow Steps CSV Upload Analytics Filtering

如果使用项目网站上的公开版本,只需选择平台、上传 CSV 或粘贴 API 密钥、指定单位(公斤或磅),然后进入仪表板。

一个细节:从 Hevy 导出时,应用有时会抱怨日期格式。这是由于源应用使用了非英语语言环境。只需暂时将导出语言切换为英语:

Hevy Language Settings


适用人群

LiftShift 完美填补了简单健身笔记和复杂 Excel 教练表格之间的空白。如果你懒得手动计算每个肌群的训练量并寻找不平衡之处,网页客户端只需几秒就能完成。

项目采用 AGPL-3.0 许可证分发。代码库整洁,采用严格的 TypeScript 编写,因此如果你想为喜欢的健身追踪器添加支持或实现新的周期化指标,在这里贡献代码是相当愉快的体验。

相关项目