Skip to content

MajorTomLeee/health-quest

Repository files navigation

⚔️ Health Quest

把健康习惯变成游戏。喝水、吃蛋白质、运动——每一个动作都是经验值,每一天都是副本。

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

Render(免费)

  1. Fork 本仓库
  2. Render 创建 Web Service
  3. Build Command: npm install,Start Command: npm start
  4. 部署完成,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+ 隐藏成就等你发现...

iOS 小组件

scriptable/HealthQuest-Widget.js 提供 iOS 桌面小组件支持:

  1. 安装 Scriptable App
  2. 复制 HealthQuest-Widget.js 内容到 Scriptable
  3. 修改脚本中的服务器地址和 token
  4. 添加 Scriptable 小组件到桌面

贡献

欢迎贡献!请查看 CONTRIBUTING.md 了解参与方式。

一些适合入手的方向:

  • 🌓 亮色主题
  • 📊 数据可视化(周/月报表)
  • 🏋️ 更多运动类型和自定义
  • 🔔 提醒通知
  • 🌍 多语言支持

许可证

MIT

About

⚔️ 游戏化健康习惯追踪 - 喝水×蛋白质×运动三环系统 | 40+成就 | 好友排行 | AI训练计划 | iOS小组件

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors