# code_buddy1 **Repository Path**: ai-cgh/code_buddy1 ## Basic Information - **Project Name**: code_buddy1 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-26 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 用户管理系统 一个完整的用户管理系统项目,展示从产品设计到部署的全流程开发。 ## 项目结构 ``` user-management-system/ ├── docs/ # 文档目录 │ ├── product/ # 产品文档 │ │ └── PRD.md # 产品需求文档 │ ├── design/ # 设计文档 │ │ └── UX_Design.md # UI/UX 设计文档 │ ├── api/ # API 文档 │ └── deployment/ # 部署文档 ├── src/ # 源代码 │ ├── frontend/ # 前端代码 │ │ ├── components/ # React 组件 │ │ ├── pages/ # 页面组件 │ │ ├── services/ # API 服务 │ │ ├── styles/ # 样式文件 │ │ ├── utils/ # 工具函数 │ │ └── hooks/ # 自定义 Hooks │ └── backend/ # 后端代码 │ ├── controllers/ # 控制器 │ ├── models/ # 数据模型 │ ├── routes/ # 路由 │ ├── services/ # 业务逻辑 │ ├── middleware/ # 中间件 │ └── config/ # 配置 ├── tests/ # 测试代码 │ ├── unit/ # 单元测试 │ ├── integration/ # 集成测试 │ └── e2e/ # 端到端测试 ├── scripts/ # 自动化脚本 ├── package.json # 项目依赖 ├── tsconfig.json # TypeScript 配置 ├── .eslintrc.js # ESLint 配置 ├── .prettierrc # Prettier 配置 ├── .gitignore # Git 忽略文件 ├── .env.example # 环境变量示例 └── README.md # 项目说明 ``` ## 技术栈 ### 前端 - **框架**: React 18 + TypeScript - **UI 库**: Ant Design - **状态管理**: Zustand - **路由**: React Router 6 - **HTTP 客户端**: Axios - **表单处理**: React Hook Form - **样式**: Tailwind CSS - **构建工具**: Vite ### 后端 - **运行环境**: Node.js 20+ - **框架**: Express.js - **语言**: TypeScript - **ORM**: Prisma - **数据库**: PostgreSQL - **认证**: JWT (jsonwebtoken) - **密码加密**: bcrypt - **验证**: Joi - **日志**: Winston - **API 文档**: Swagger/OpenAPI ### 测试 - **单元测试**: Jest - **集成测试**: Supertest - **E2E 测试**: Playwright - **测试覆盖率**: Istanbul/NYC ### 部署 - **前端**: EdgeOne Pages - **后端**: CloudBase 云函数 - **数据库**: CloudBase 数据库 ## 核心功能 ### 1. 用户认证 - 用户注册(邮箱验证) - 用户登录 - 密码重置 - 邮箱验证 - 退出登录 ### 2. 用户管理 - 查看用户信息 - 编辑用户资料 - 修改密码 - 用户列表(管理员) - 禁用/启用用户(管理员) ### 3. 角色权限 - 角色管理(管理员) - 权限分配(管理员) - 用户角色分配(管理员) ### 4. 数据统计 - 用户总数统计 - 活跃用户统计 - 新增用户统计 ## 快速开始 ### 前置要求 - Node.js 20+ - PostgreSQL 14+ - npm 或 yarn ### 安装依赖 ```bash # 克隆项目 git clone cd user-management-system # 安装根目录依赖 npm install # 安装前端依赖 cd frontend && npm install && cd .. # 安装后端依赖 cd backend && npm install && cd .. ``` ### 配置环境变量 复制 `.env.example` 为 `.env` 并填写配置: ```bash cp .env.example .env ``` 编辑 `.env` 文件: ```env # 数据库配置 DATABASE_URL="postgresql://user:password@localhost:5432/user_management" # JWT 配置 JWT_SECRET="your-secret-key-here" JWT_EXPIRES_IN="7d" # 邮件服务配置 SMTP_HOST="smtp.gmail.com" SMTP_PORT=587 SMTP_USER="your-email@gmail.com" SMTP_PASSWORD="your-email-password" # 前端 URL FRONTEND_URL="http://localhost:5173" ``` ### 数据库迁移 ```bash cd backend # 生成 Prisma Client npx prisma generate # 运行数据库迁移 npx prisma migrate dev --name init # 可选:填充测试数据 npx prisma db seed ``` ### 启动开发服务器 ```bash # 启动前端开发服务器(端口 5173) npm run dev:frontend # 启动后端开发服务器(端口 3001) npm run dev:backend # 同时启动前后端 npm run dev ``` 访问: - 前端:http://localhost:5173 - 后端 API:http://localhost:3001/api - API 文档:http://localhost:3001/api-docs ## 运行测试 ### 单元测试 ```bash npm run test:unit ``` ### 集成测试 ```bash npm run test:integration ``` ### E2E 测试 ```bash npm run test:e2e ``` ### 测试覆盖率 ```bash npm run test:coverage ``` ## 构建 ### 构建前端 ```bash npm run build:frontend ``` 输出目录:`frontend/dist` ### 构建后端 ```bash npm run build:backend ``` 输出目录:`backend/dist` ## 部署 ### 前端部署到 EdgeOne Pages 1. 登录腾讯云 EdgeOne 2. 创建静态网站部署 3. 上传 `frontend/dist` 目录 4. 配置域名和 HTTPS ### 后端部署到 CloudBase 1. 安装 CloudBase CLI 2. 登录 CloudBase 3. 部署云函数 4. 配置环境变量 ```bash # 安装 CloudBase CLI npm install -g @cloudbase/cli # 登录 cloudbase login # 部署 cd backend cloudbase functions:deploy ``` ## API 文档 API 文档使用 Swagger/OpenAPI 生成: - 开发环境:http://localhost:3001/api-docs - 生产环境:https://your-api-domain.com/api-docs ### 主要端点 #### 认证 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/logout` - 用户登出 - `POST /api/auth/verify-email` - 验证邮箱 - `POST /api/auth/reset-password` - 重置密码 #### 用户 - `GET /api/users/me` - 获取当前用户信息 - `PUT /api/users/me` - 更新当前用户信息 - `GET /api/users` - 获取用户列表(管理员) - `GET /api/users/:id` - 获取用户详情(管理员) - `PUT /api/users/:id` - 更新用户信息(管理员) - `DELETE /api/users/:id` - 删除用户(管理员) #### 角色 - `GET /api/roles` - 获取角色列表(管理员) - `POST /api/roles` - 创建角色(管理员) - `PUT /api/roles/:id` - 更新角色(管理员) - `DELETE /api/roles/:id` - 删除角色(管理员) ## 项目文档 详细文档请查看: - [产品需求文档 (PRD)](./docs/product/PRD.md) - [UI/UX 设计文档](./docs/design/UX_Design.md) - [API 文档](./docs/api/API_Documentation.md) - [部署指南](./docs/deployment/DEPLOYMENT_GUIDE.md) ## 开发指南 ### 代码规范 - 使用 ESLint 进行代码检查 - 使用 Prettier 进行代码格式化 - 遵循 Airbnb JavaScript/TypeScript 风格指南 - 使用 Conventional Commits 规范提交信息 ### Git 工作流 1. 从 `main` 分支创建功能分支 2. 开发并提交更改 3. 推送到远程仓库 4. 创建 Pull Request 5. 代码审查 6. 合并到 `main` 分支 ### 分支命名 - `feature/功能描述` - 新功能 - `bugfix/问题描述` - Bug 修复 - `hotfix/紧急问题描述` - 紧急修复 - `refactor/重构描述` - 代码重构 ## 贡献指南 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建你的功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交你的更改 (`git commit -m 'feat: Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启一个 Pull Request ## 许可证 [MIT License](LICENSE) ## 联系方式 - 项目主页:[GitHub Repository] - 问题反馈:[Issues] - 邮箱:[support@email.com] ## 致谢 感谢所有贡献者! --- **最后更新**: 2026-03-26