基于React + NestJS的现代化用户管理系统,支持邮箱验证码登录、角色权限管理和系统设置。
- 邮箱验证码登录(无需密码)
- JWT Token 认证机制
- 自动刷新Token
- 安全的会话管理
- 用户列表查看和搜索
- 用户信息编辑
- 用户状态管理(激活/禁用)
- 用户统计数据
- 基于角色的访问控制(RBAC)
- 灵活的权限配置
- 角色管理和分配
- 细粒度权限控制
- 系统配置管理
- 邮件服务配置
- 安全策略设置
- 系统监控面板
- React 19 - 现代化UI框架
- TypeScript 5 - 类型安全
- Vite 7 - 快速构建工具
- TailwindCSS 3 - 原子化CSS框架
- React Router 7 - 路由管理
- Axios - HTTP客户端
- ahooks - React Hooks库
- Sonner - 优雅的通知组件
- NestJS 11 - 企业级Node.js框架
- TypeScript 5 - 类型安全
- TypeORM - ORM框架
- PostgreSQL - 主数据库
- Redis - 缓存和会话存储
- JWT - 身份认证
- Nodemailer - 邮件服务
- Swagger - API文档
email-backend/
├── frontend/ # React前端应用
│ ├── src/
│ │ ├── components/ # 可复用组件
│ │ ├── pages/ # 页面组件
│ │ ├── hooks/ # 自定义Hooks
│ │ ├── services/ # API服务
│ │ ├── types/ # TypeScript类型定义
│ │ └── lib/ # 工具函数
│ ├── package.json
│ └── vite.config.ts
├── backend/ # NestJS后端应用
│ ├── src/
│ │ ├── auth/ # 认证模块
│ │ ├── users/ # 用户管理模块
│ │ ├── roles/ # 角色管理模块
│ │ ├── settings/ # 系统设置模块
│ │ ├── database/ # 数据库配置
│ │ └── common/ # 公共模块
│ ├── test/ # 测试文件
│ ├── package.json
│ └── .env.example
├── docs/ # 项目文档
│ ├── API_EXAMPLES.md # API使用示例
│ └── 技术架构文档.md # 技术架构说明
├── package.json # 根目录依赖
├── vercel.json # Vercel部署配置
└── README.md # 项目说明
- Node.js >= 18.0.0
- PostgreSQL >= 13
- Redis >= 6.0
git clone https://github.com/Ashy6/email-backend.git
cd email-backend# 安装根目录依赖
npm install
# 安装前端依赖
cd frontend && npm install
# 安装后端依赖
cd ../backend && npm install# 复制环境变量文件
cp backend/.env.example backend/.env
# 编辑环境变量
vim backend/.env# 创建数据库
createdb your_database_name
# 运行迁移(如果有)
cd backend && npm run migration:run# 启动后端服务(端口3001)
cd backend && npm run start:dev
# 启动前端服务(端口3000)
cd frontend && npm run dev- 前端应用: http://localhost:3000
- 后端API: http://localhost:3001
- API文档: http://localhost:3001/api/docs
POST /api/auth/send-code- 发送验证码POST /api/auth/verify-code- 验证登录POST /api/auth/refresh- 刷新TokenPOST /api/auth/logout- 退出登录
GET /api/users- 获取用户列表GET /api/users/:id- 获取用户详情POST /api/users- 创建用户PUT /api/users/:id- 更新用户信息DELETE /api/users/:id- 删除用户
GET /api/roles- 获取角色列表POST /api/roles- 创建角色PUT /api/roles/:id- 更新角色DELETE /api/roles/:id- 删除角色
详细的API使用示例请查看 API_EXAMPLES.md
# 运行前端测试
cd frontend && npm test
# 运行后端测试
cd backend && npm test
# 运行E2E测试
cd backend && npm run test:e2e
# 生成测试覆盖率报告
cd backend && npm run test:cov- 连接GitHub仓库到Vercel
- 配置环境变量
- 自动部署
# 构建镜像
docker-compose build
# 启动服务
docker-compose up -d# 构建前端
cd frontend && npm run build
# 构建后端
cd backend && npm run build
# 启动生产服务
cd backend && npm run start:prod- 使用 ESLint + Prettier 进行代码格式化
- 遵循 TypeScript 严格模式
- 使用 Conventional Commits 规范
feat: 新功能
fix: 修复bug
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
test: 测试相关
chore: 构建过程或辅助工具的变动MIT License - 详见 LICENSE 文件
欢迎提交 Issue 和 Pull Request!
如有问题,请通过以下方式联系:
- 提交 GitHub Issue
- 发送邮件至项目维护者
⭐ 如果这个项目对你有帮助,请给个星标支持一下!