Skip to content

Pankitgg/Weightloss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏃‍♂️ 蜕变计划 - 百日减重挑战营

React TypeScript Vite Tailwind Express Vercel

一个功能完善的减肥活动管理与数据追踪平台

🌐 在线演示: 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 preview

📁 项目结构

Weightloss/
├── 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 部署(推荐)

本项目已配置好 Vercel 部署,支持前端和 API 一起部署:

# 安装 Vercel CLI
npm i -g vercel

# 登录并部署
vercel

或者连接 GitHub 仓库到 Vercel,实现自动部署。

环境变量

部署前请配置以下环境变量:

变量名 说明 必需
ADMIN_PASSWORD 管理员密码
JWT_SECRET JWT 密钥
OPENAI_API_KEY OpenAI API 密钥(AI功能)

📝 API 文档

认证

  • POST /api/auth/login - 用户登录
  • POST /api/auth/logout - 用户登出

数据

  • GET /api/data/leaderboard - 获取排行榜数据
  • POST /api/data/import - 导入 Excel 数据
  • GET /api/data/export - 导出数据

AI

  • POST /api/ai/analyze - 分析减重数据
  • POST /api/ai/suggest - 获取减重建议

队列

  • GET /api/queue/status - 获取队列状态
  • POST /api/queue/process - 处理队列任务

🤝 贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 本项目
  2. 创建你的功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

MIT © Pankitgg


Made with ❤️ for a healthier life

About

减肥活动网页 Weight loss activity webpage

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors