一个功能完善的减肥活动管理与数据追踪平台
🌐 在线演示: http://ai-nous.com:8090/
| 角色 | 用户名 | 密码 |
|---|---|---|
| 管理员 | admin | gjz121 |
| 用户 | 张三 | 001 |
| 用户 | 李四 | 002 |
💡 说明: 所有用户数据均存储在
data.xlsx文件中
- 📊 智能排行榜 - 支持 300+ 参与者的实时排名,吸顶表头,快速定位自己
- 📈 数据可视化 - 使用 Recharts 展示减重趋势和进度图表
- 📱 响应式设计 - 完美适配桌面端和移动端
- 🔐 用户认证 - 安全的登录系统,支持管理员和普通用户角色
- 📁 Excel 导入 - 支持从 Excel 文件批量导入参与者数据
- 🤖 AI 配置 - 集成 AI 功能,智能分析减重数据
- 🎨 新粗野主义设计 - 独特的视觉风格,大胆的色彩和阴影效果
- ⚡ 高性能 - 优化的排行榜渲染,流畅的用户体验
- React 18 + TypeScript - 现代前端开发
- Vite - 极速构建工具
- Tailwind CSS - 实用优先的 CSS 框架
- React Router - 客户端路由
- Zustand - 轻量级状态管理
- Recharts - 数据可视化图表
- Lucide React - 精美图标库
- Express.js - Node.js Web 框架
- TypeScript - 类型安全的后端代码
- CORS - 跨域支持
- XLSX - Excel 文件处理
- Vercel - 前端 + Serverless API 一键部署
- Node.js >= 18
- pnpm >= 8
# 克隆项目
git clone https://github.com/Pankitgg/Weightloss.git
cd Weightloss
# 安装依赖
pnpm install
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填写必要的配置# 同时启动前端和后端开发服务器
pnpm dev
# 仅启动前端
pnpm run client:dev
# 仅启动后端
pnpm run server:dev前端运行在 http://localhost:5173,后端 API 运行在 http://localhost:3000。
# 构建生产版本
pnpm build
# 预览生产构建
pnpm previewWeightloss/
├── api/ # 后端 API 代码
│ ├── routes/ # API 路由
│ │ ├── auth.ts # 认证相关
│ │ ├── data.ts # 数据处理
│ │ ├── ai.ts # AI 功能
│ │ └── queue.ts # 队列管理
│ ├── utils/ # 工具函数
│ ├── app.ts # Express 应用配置
│ └── server.ts # 服务器入口
├── src/ # 前端源代码
│ ├── pages/ # 页面组件
│ │ ├── Home.tsx # 首页
│ │ ├── Leaderboard.tsx # 排行榜
│ │ ├── Profile.tsx # 个人中心
│ │ ├── Admin.tsx # 管理后台
│ │ └── Login.tsx # 登录页
│ ├── components/ # 公共组件
│ ├── hooks/ # 自定义 Hooks
│ ├── store/ # 状态管理
│ └── lib/ # 工具函数
├── public/ # 静态资源
├── .trae/ # 项目文档
├── vercel.json # Vercel 配置
└── package.json # 项目配置
本项目已配置好 Vercel 部署,支持前端和 API 一起部署:
# 安装 Vercel CLI
npm i -g vercel
# 登录并部署
vercel或者连接 GitHub 仓库到 Vercel,实现自动部署。
部署前请配置以下环境变量:
| 变量名 | 说明 | 必需 |
|---|---|---|
ADMIN_PASSWORD |
管理员密码 | ✅ |
JWT_SECRET |
JWT 密钥 | ✅ |
OPENAI_API_KEY |
OpenAI API 密钥(AI功能) | ❌ |
POST /api/auth/login- 用户登录POST /api/auth/logout- 用户登出
GET /api/data/leaderboard- 获取排行榜数据POST /api/data/import- 导入 Excel 数据GET /api/data/export- 导出数据
POST /api/ai/analyze- 分析减重数据POST /api/ai/suggest- 获取减重建议
GET /api/queue/status- 获取队列状态POST /api/queue/process- 处理队列任务
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建你的功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
MIT © Pankitgg
Made with ❤️ for a healthier life




