remember-lightly 是一个本地优先的体重管理 PWA。
它的目标不是做成复杂的健康平台,而是帮助用户用最低心智成本完成三件事:
- 快速记录体重
- 看到长期趋势
- 获得温和、持续的反馈
当前项目基于 Vue 3 + Vite + Pinia + IndexedDB + ECharts 构建,支持离线使用、目标进度、趋势分析、JSON 导入导出、本地 AI 解读,以及可选的 BYOK 远程 AI 复盘。
- 今日体重记录
- 可折叠扩展指标:体脂率、围度、BMI 自动计算
- 历史记录查看、编辑、删除
- 打卡热力图
- 体重变化趋势图
- 趋势平滑切换:
MA7/EWMA - 目标体重与目标进度
- 简单统计:连续记录、本周变化、当前变化
- 本地 AI 分析:趋势判断、鼓励文案、异常波动提醒、连续记录奖励
- 远程 AI 分析:
GPT / DeepSeek / 千问 / 自定义 OpenAI 兼容接口 - 远程 AI 增强能力:分析风格、分析窗口、结果缓存
- 本地数据导入导出:覆盖导入 / 合并导入
- 数据安全:持久化存储申请
- PWA 基础能力、更新提示、快捷入口、iOS 适配
Vue 3ViteTypeScriptPiniaVue RouterIndexedDB+idbEChartsvite-plugin-pwa
安装依赖:
pnpm install启动开发环境:
pnpm dev类型检查:
pnpm typecheck生产构建:
pnpm build.
├── .github/workflows/ # CI 与 GitHub Pages 部署
├── docs/ # 规划文档与产品优化记录
├── docs/planning/ # 产品规划与任务拆解文档
├── public/ # 静态资源与 PWA 图标
├── src/
│ ├── app/ # 路由等应用层配置
│ ├── components/ # 业务组件
│ ├── pages/ # 页面
│ ├── repositories/ # IndexedDB 数据访问层
│ ├── services/ # 统计、导入导出、AI 分析等服务
│ ├── stores/ # Pinia 状态管理
│ ├── types/ # 类型定义
│ └── utils/ # 通用工具
├── README.md
├── package.json
├── pnpm-lock.yaml
└── vite.config.ts
- 技术方案:weight-management-pwa-v1-tech-plan.md
- MVP 任务拆解:weight-management-mvp-task-breakdown.md
- 产品优化记录:product-optimization-log.md
- 本地优先:所有记录与配置都保存在本地
IndexedDB - 数据安全:应用启动会请求持久化存储,降低浏览器静默清理风险
- 多指标记录:支持在设置中开启体脂率、围度和 BMI
- 趋势体验:图表支持懒加载、视口延迟渲染、
MA7 / EWMA切换 - 激励反馈:记录页包含打卡热力图,首页包含本地分析与 AI 分析双模块
- BYOK:支持自定义
API Key / Model / Base URL,并带连接测试、结果缓存与远程复盘 - 工程质量:已接入
Vitest,核心计算工具与统计服务保持100%覆盖率
项目已包含:
- GitHub Actions CI
- GitHub Pages 自动部署工作流
- PWA 基础配置
如果仓库已启用 GitHub Pages 并选择 GitHub Actions 作为发布方式,推送到 main 后会自动触发部署。