把健康习惯变成游戏。喝水、吃蛋白质、运动——每一个动作都是经验值,每一天都是副本。
Health Quest 是一个游戏化的健康习惯追踪应用,用 RPG 机制让枯燥的健康管理变得有趣。支持多人排行、成就系统、AI 生成训练计划,以及 iOS 桌面小组件。
- 三环系统 - 💧 喝水、🥩 蛋白质、💪 运动,每日三环全满即「天圆」
- 经验值 & 等级 - 每个健康行为获得 XP,升级解锁新称号
- 成就系统 - 40+ 成就,含大量隐藏成就(子夜修炼、闪击训练、百日筑基...)
- 连续打卡 - 3 天三昧 → 7 天北斗 → 14 天望月 → 30 天道成
- 好友排行 - 邀请朋友一起,PK 等级和连续天数
- AI 训练计划 - 接入 Claude API,根据你的身体数据生成个性化方案
- iOS 小组件 - Scriptable 脚本,桌面直接看今日进度
- 前端: 原生 HTML/CSS/JS(零依赖,无构建步骤,暗色主题)
- 后端: Node.js + Express
- 数据库: SQLite(better-sqlite3,零配置)
- 部署: 支持任意 Node.js 托管平台
# 克隆项目
git clone https://github.com/MajorTomLeee/health-quest.git
cd health-quest
# 安装依赖
npm install
# 启动(就这么简单,SQLite 自动建库)
npm start打开 http://localhost:3456,注册账号即可开始。
npm run dev # 文件修改自动重启| 变量 | 必填 | 说明 | 默认值 |
|---|---|---|---|
PORT |
否 | 服务端口 | 3456 |
没有其他配置。没有数据库要装。npm start 即玩。
# 打包
tar czf health-quest.tar.gz --exclude=node_modules --exclude=.git --exclude='*.db*' .
# 上传 & 解压
scp health-quest.tar.gz user@server:/opt/apps/
ssh user@server "cd /opt/apps && mkdir -p health-quest && tar xzf health-quest.tar.gz -C health-quest && cd health-quest && npm install --production"systemd 服务配置
[Unit]
Description=Health Quest
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/apps/health-quest
Environment=PORT=3456
ExecStart=/usr/bin/node server.js
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target- Fork 本仓库
- 在 Render 创建 Web Service
- Build Command:
npm install,Start Command:npm start - 部署完成,SQLite 数据库自动创建
health-quest/
├── server.js # Express 后端(API + 认证 + 数据逻辑)
├── db.js # SQLite 数据库初始化
├── achievements.js # 成就系统 + 等级计算 + AI 计划生成
├── public/
│ ├── index.html # 页面结构(多屏切换:登录/引导/主界面)
│ ├── app.js # 前端逻辑(状态管理 + 渲染 + 交互)
│ ├── manifest.json # PWA 配置
│ └── uploads/ # 用户头像上传目录
├── scriptable/
│ └── HealthQuest-Widget.js # iOS Scriptable 桌面小组件
└── package.json
| 成就 | 名称 | 描述 | XP |
|---|---|---|---|
| 💧 | 晨露 | 万物始于一滴 | 10 |
| 🌅 | 破晓 | 以食为天 | 10 |
| 👣 | 初动 | 千里始于足下 | 10 |
| 🌊 | 满盈 | 水到渠成 | 30 |
| 🔨 | 铸体 | 以食筑基 | 30 |
| 🎯 | 尽善 | 有始有终 | 30 |
| ⭕ | 天圆 | 三环归一 | 80 |
| 🔥 | 三昧 | 心无旁骛 | 100 |
| 🌟 | 北斗 | 七星连珠 | 250 |
还有 30+ 隐藏成就等你发现...
scriptable/HealthQuest-Widget.js 提供 iOS 桌面小组件支持:
- 安装 Scriptable App
- 复制
HealthQuest-Widget.js内容到 Scriptable - 修改脚本中的服务器地址和 token
- 添加 Scriptable 小组件到桌面
欢迎贡献!请查看 CONTRIBUTING.md 了解参与方式。
一些适合入手的方向:
- 🌓 亮色主题
- 📊 数据可视化(周/月报表)
- 🏋️ 更多运动类型和自定义
- 🔔 提醒通知
- 🌍 多语言支持