Files
GarminHealthLab/README.md
ericwyuan d73405decb Initial commit: Set up Garmin Health Lab project structure
- Initialize monorepo with root workspace configuration
- Set up Express.js backend with TypeScript
- Set up React 18 frontend with TypeScript
- Create database schema with SQLite
- Implement project architecture and documentation
- Add development and deployment guidelines

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-08-23 11:11:29 +08:00

3.0 KiB
Raw Blame History

佳明健康数据分析平台 (Garmin Health Lab)

一个完整的健康数据分析平台用于获取、分析和可视化你的佳明Garmin设备数据。

📊 主要功能

  • 数据同步: 通过 Garmin API 自动同步你的健康数据
  • 综合分析: 步数、心率、睡眠、运动、压力等多维度分析
  • 数据可视化: 交互式图表和仪表板展示健康数据趋势
  • 智能建议: 基于数据分析的个性化健康建议
  • 数据导出: 支持数据导出为 CSV/JSON 格式

🛠 技术栈

前端

  • React 18 + TypeScript
  • Recharts (数据可视化)
  • Tailwind CSS (样式)
  • Axios (API 请求)

后端

  • Node.js + Express
  • TypeScript
  • SQLite3 (本地数据存储)
  • garmin-connect (Garmin API 集成)

📁 项目结构

GarminHealthLab/
├── client/                 # 前端应用
│   ├── src/
│   │   ├── components/    # React 组件
│   │   ├── pages/         # 页面
│   │   ├── services/      # API 服务
│   │   └── types/         # TypeScript 类型定义
│   └── package.json
├── server/                 # 后端应用
│   ├── src/
│   │   ├── routes/        # API 路由
│   │   ├── services/      # 业务逻辑
│   │   ├── models/        # 数据模型
│   │   ├── middleware/    # 中间件
│   │   └── utils/         # 工具函数
│   └── package.json
├── docs/                   # 文档
├── package.json           # 工作空间根配置
└── README.md

🚀 快速开始

前置要求

  • Node.js 18+
  • npm 或 yarn
  • Garmin Connect 账户

安装依赖

npm install

配置环境变量

创建 server/.env 文件:

PORT=5000
NODE_ENV=development
GARMIN_CONNECT_USER=your_garmin_email
GARMIN_CONNECT_PASSWORD=your_garmin_password
DATABASE_PATH=./data/health.db
JWT_SECRET=your_jwt_secret_here
CORS_ORIGIN=http://localhost:3000

启动开发服务器

npm run dev

📚 API 文档

认证

  • POST /api/auth/login - 用户登录
  • POST /api/auth/logout - 用户登出
  • POST /api/auth/refresh - 刷新 Token

Garmin 数据同步

  • POST /api/garmin/sync - 同步 Garmin 数据
  • GET /api/garmin/status - 获取同步状态

健康数据

  • GET /api/health/summary - 获取健康摘要
  • GET /api/health/steps - 获取步数数据
  • GET /api/health/heart-rate - 获取心率数据
  • GET /api/health/sleep - 获取睡眠数据
  • GET /api/health/activities - 获取运动数据

分析与建议

  • GET /api/analysis/trends - 获取数据趋势
  • GET /api/analysis/recommendations - 获取健康建议

🔐 安全说明

  • Garmin 账户密码使用加密存储
  • 所有 API 请求需要 JWT 认证
  • 敏感数据不在前端存储

📝 开发指南

详见 DEVELOPMENT.md

📄 许可证

MIT