1、立项背景和目标
针对用户对健康数据隐私泄露的担忧(市面同类应用均依赖后端服务器与账号体系),以及养生领域缺乏将中医时辰养生理念数字化的产品空白,立项开发一款完全离线可用、隐私零泄露的养生习惯打卡应用。目标用户为注重健康管理的年轻群体和中医养生爱好者。
2、软件功能、核心功能模块的介绍
系统包含六大核心功能模块:
(1)习惯打卡系统:支持布尔打卡与数值打卡(饮水量、步数等),按早中晚三分时段管理,每日推送养生格言并附带参考文献;
(2)积分等级与成就体系:完成习惯获得积分,从"养生小白"逐级晋升至最高等级,内置 20 枚成就徽章(迷你展示 + 详情面板),激励用户持续打卡;
(3)中医养生引擎:深度融合子午流注十二时辰指导、二十四节气养生建议、春夏秋冬四季养生包,内置中医体质评估测试(9 种体质判定);
(4)AI 养生顾问:接入阿里云 DashScope 大模型,提供个性化养生问答;周末自动触发周报智能分析,生成习惯洞察与个性化建议,支持一键采纳建议自动创建新习惯;
(5)番茄专注钟:25 分钟专注 + 5 分钟休息的科学循环(4 轮后长休 15 分钟),可绑定具体习惯,SVG 环形进度条实时可视化;
(6)数据管理与推送:支持 JSON 备份恢复与 CSV 导出,通过 Service Worker 实现离线缓存,Cloudflare Workers 后端支持 Web Push 推送通知。
3、业务流程、功能路径描述
主业务流程为:用户创建/从习惯库添加习惯 → 配置提醒时间与重复规则 → 每日按早中晚分时段完成打卡 → 系统自动计算积分与连续天数 → 触发等级晋升与成就解锁 → AI 周末生成周报分析并推荐新习惯。次级流程包括:进入体质评估页完成 9 维度测试获取个性化养生方案;进入番茄钟页绑定习惯进行专注计时;在个人中心查看统计数据、导出数据或下载 Android APK。
1、整体架构和设计思路,不同模块使用的技术栈
采用纯 Vanilla JavaScript 无框架依赖,通过自定义 App.registerModule 四层模块注册机制实现松耦合架构:core(核心层:工具函数 + localStorage 存储引擎 + Schema 版本管理)、data(数据层:常量 + 习惯库定义 + 四季养生包)、modules(业务模块层:18 个独立模块)、ui(UI 渲染层:页面渲染 + 组件库 + 面板管理 + 事件绑定)。PWA 离线优先设计,Service Worker 双缓存策略(JS/CSS Cache-First,HTML Network-First),全部数据存储于 localStorage,Capacitor 混合部署实现 Web + Android APK 双端输出。
2、"我"的负责模块和结果(尽可能量化)
我独立完成了从产品设计到全栈开发的全部工作,交付 18 个业务模块、5 个页面 Tab、9 种面板覆盖层、20 枚成就徽章、4 套季节养生包。积分等级算法覆盖从养生小白到最高等级的完整晋升链路;中医体质评估实现了 9 种体质判定逻辑;AI 周报分析模块实现了周末自动触发、习惯洞察生成与一键采纳创建新习惯的完整闭环。项目已获得 GitHub Star,持续迭代至 v1.5.2。
3、"我"遇到的难点、坑,和解决方案
(1)离线场景下的数据一致性:localStorage 写入中途失败可能导致数据损坏,我通过事务性保存机制(先验证→序列化→写入,失败保留原数据)和幂等 Schema 迁移链(v1→v2→v3,每步可重入)解决;(2)Service Worker 缓存更新的用户体验问题:传统的缓存策略要么导致用户看到旧版本,要么在离线时无法加载,我采用后台静默更新的 Cache-First 策略,用户无感知即可获取最新版本;(3)中医农历计算复杂度高:需要内置 1900-2100 年的农历数据和节气算法,我通过预计算查表法实现节气自动推算和十二时辰养生匹配。