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

122 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 佳明健康数据分析平台 (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 账户
### 安装依赖
```bash
npm install
```
### 配置环境变量
创建 `server/.env` 文件:
```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
```
### 启动开发服务器
```bash
npm run dev
```
- 前端: http://localhost:3000
- 后端: http://localhost:5000
## 📚 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](./docs/DEVELOPMENT.md)
## 📄 许可证
MIT