# fitness-web-api **Repository Path**: xinyi-codeing/fitness-web-api ## Basic Information - **Project Name**: fitness-web-api - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-27 - **Last Updated**: 2025-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Fitness Web API AI健身打卡小程序后端API服务 ## 项目简介 基于Egg.js框架开发的健身打卡小程序后端API,提供用户认证、运动打卡、群组管理、AI分析、金库系统等核心功能。 ## 技术栈 - **框架**: Egg.js 3.x - **数据库**: MySQL 8.0 + Sequelize ORM - **缓存**: Redis - **实时通信**: Socket.io - **文件存储**: 阿里云OSS - **AI集成**: Claude + DeepSeek API - **认证**: JWT - **定时任务**: node-cron ## 功能特性 ### 🔐 用户认证 - 微信小程序登录 - JWT token认证 - 用户信息管理 ### 🏃‍♂️ 运动打卡 - 图片上传识别 - AI运动类型识别 - 卡路里自动计算 - 位置信息记录 ### 👥 群组管理 - 群组创建/加入 - 成员权限管理 - 群组排行榜 - 邀请码系统 ### 🤖 AI智能功能 - 运动数据分析 - 个性化建议 - 训练计划推荐 - 营养指导 ### 💰 金库系统 - 奖惩机制 - 血战模式 - 财务流水 - 贡献排行 ### 📊 数据统计 - 个人运动数据 - 群组统计 - 排行榜系统 - 历史记录 ## 项目结构 ``` fitness-web-api/ ├── app/ │ ├── controller/ # 控制器层 │ ├── model/ # 数据模型 │ ├── service/ # 业务逻辑 │ ├── middleware/ # 中间件 │ ├── schedule/ # 定时任务 │ └── router.js # 路由配置 ├── config/ # 配置文件 ├── rule.txt # 业务规则 ├── package.json # 依赖配置 └── README.md # 项目文档 ``` ## 快速开始 ### 环境要求 - Node.js >= 16.0.0 - MySQL >= 8.0 - Redis >= 6.0 ### 安装依赖 ```bash npm install ``` ### 配置环境 1. 复制配置文件模板 ```bash cp config/config.local.js.example config/config.local.js ``` 2. 修改配置文件 ```javascript // config/config.local.js module.exports = { // 数据库配置 mysql: { client: { host: 'localhost', port: '3306', user: 'your_username', password: 'your_password', database: 'fitness_web', }, }, // Redis配置 redis: { client: { host: 'localhost', port: 6379, password: '', db: 0, }, }, // AI API配置 ai: { claude: { apiKey: 'your_claude_api_key', baseURL: 'https://api.anthropic.com', }, deepseek: { apiKey: 'your_deepseek_api_key', baseURL: 'https://api.deepseek.com', }, }, // 阿里云OSS配置 oss: { client: { accessKeyId: 'your_access_key_id', accessKeySecret: 'your_access_key_secret', bucket: 'your_bucket_name', region: 'oss-cn-hangzhou', }, }, // JWT密钥 jwt: { secret: 'your_jwt_secret_key', }, }; ``` ### 数据库初始化 1. 创建数据库 ```sql CREATE DATABASE fitness_web CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 运行数据库迁移 ```bash npm run db:migrate ``` ### 启动服务 开发环境: ```bash npm run dev ``` 生产环境: ```bash npm start ``` ## API文档 ### 认证相关 #### 微信登录 ``` POST /api/auth/wechat-login ``` #### 验证token ``` GET /api/auth/validate ``` ### 用户相关 #### 获取用户信息 ``` GET /api/user/profile ``` #### 更新用户信息 ``` PUT /api/user/profile ``` ### 打卡相关 #### 创建打卡 ``` POST /api/checkin/create ``` #### 获取打卡历史 ``` GET /api/checkin/history ``` ### 群组相关 #### 创建群组 ``` POST /api/group/create ``` #### 获取群组列表 ``` GET /api/group/list ``` #### 加入群组 ``` POST /api/group/join ``` ### AI相关 #### AI聊天 ``` POST /api/ai/chat ``` #### 运动分析 ``` GET /api/ai/analysis ``` #### 生成建议 ``` GET /api/ai/suggestions ``` ### 金库相关 #### 获取金库信息 ``` GET /api/treasury/info ``` #### 贡献资金 ``` POST /api/treasury/contribute ``` ## 定时任务 ### 每周结算 - 时间:每周一凌晨1点 - 功能:群组结算、奖惩计算、新周期开始 ### 数据清理 - 时间:每天凌晨3点 - 功能:清理过期缓存、压缩图片、优化数据库 ## 部署说明 ### Docker部署 1. 构建镜像 ```bash docker build -t fitness-web-api . ``` 2. 运行容器 ```bash docker run -d -p 7001:7001 --name fitness-api fitness-web-api ``` ### PM2部署 1. 安装PM2 ```bash npm install -g pm2 ``` 2. 启动应用 ```bash pm2 start ecosystem.config.js ``` ## 开发指南 ### 代码规范 - 使用ESLint进行代码检查 - 遵循Egg.js开发规范 - 使用async/await处理异步操作 ### 测试 ```bash # 运行测试 npm test # 生成测试覆盖率报告 npm run cov ``` ### 日志 - 应用日志:`logs/fitness-web-api-web.log` - 错误日志:`logs/fitness-web-api-error.log` ## 贡献指南 1. Fork项目 2. 创建功能分支 3. 提交代码 4. 创建Pull Request ## 许可证 MIT License ## 联系方式 - 项目地址:https://github.com/your-org/fitness-web-api - 问题反馈:https://github.com/your-org/fitness-web-api/issues