AthleTech-基于人工智能的健身教练应用程序
AthleTech是一个全面的健身应用程序,它利用人工智能根据用户资料和健身目标提供个性化的锻炼计划和目标路线图。
项目结构
这是一个包含两个主要组件的monorepo:
AthleTech/
├── AthleTech-front/ # React Native mobile app (Expo)
└── MCP-backend/ # FastAPI Python backend特性
- 用户认证:基于JWT的安全身份验证系统
- 个性化配置文件:详细的用户资料,包括健身水平、目标和限制
- 人工智能训练生成:基于用户数据生成的自定义锻炼计划
- 目标路线图:人工智能驱动的健身目标规划和跟踪
- 交叉平台的:适用于iOS、Android和Web
技术栈
前端
- React Native与Expo
- TypeScript
- Expo Router(基于文件的路由)
- 用于API通信的Axios
- AsyncStorage用于本地数据持久化
后端
- FastAPI(Python)
- MongoDB(电机异步驱动程序)
- JWT身份验证
- AI功能的LLM集成
- Pydantic用于数据验证
入门指南
先决条件
- Node.js(v18或更高版本)
- Python 3.10+
- MongoDB(本地或远程实例)
- Expo CLI
后端设置
- 导航到后端目录:
cd MCP-backend- 创建虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 创建一个
.env文件(复制自.env.example):
cp .env.example .env- 更新
.env使用您的配置文件:
MONGO_URL=mongodb://localhost:27017
SECRET_KEY=your-secret-key-here
HOST=0.0.0.0
PORT=8000
CORS_ORIGINS=http://localhost:8081- 启动服务器:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000前端设置
- 导航到前端目录:
cd AthleTech-front- 安装依赖项:
npm install- 创建一个
.env文件(复制自.env.example):
cp .env.example .env- 更新
.env使用后端URL的文件:
EXPO_PUBLIC_API_URL=http://192.168.100.32:8000注意:替换为您机器的IP地址或使用 http://localhost:8000 为了地方发展。
- 启动Expo开发服务器:
npx expo start- 在您喜欢的平台上运行:
- 按 i iOS模拟器 - 按 a Android模拟器 - 使用Expo Go应用程序扫描实体设备的二维码
API终点
认证
POST /auth/register-注册新用户POST /auth/login-登录并接收JWT令牌
锻炼
GET /workout/generate-生成个性化锻炼计划(需要身份验证)
目标路线图
GET /goal-roadmap/generate-生成健身目标路线图(需要身份验证)
环境变量
后端(MCP-backend/.env)
MONGO_URL:MongoDB连接字符串SECRET_KEY:JWT密钥(使用强随机字符串)HOST:服务器主机(默认值:0.0.0.0)PORT:服务器端口(默认值:8000)CORS_ORIGINS:逗号分隔的允许来源列表
前端(AthleTech-front/.env)
EXPO_PUBLIC_API_URL:后端API基本URL
安全说明
- 永不承诺
.env文件到版本控制 - 使用强随机生成
SECRET_KEY生产中 - 为生产环境正确配置CORS
- 在生产环境中使用HTTPS
发展
运行测试(后端)
cd MCP-backend
pytestLinting(前端)
cd AthleTech-front
npm run lint贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
这个项目是私有的。
联系
如有疑问或需要支持,请在存储库中打开问题。
