项目简介
本项目运用 React.js 与 Nest.js 构建待办事项管理系统。前端借 React.js 打造友好用户界面,后端用 Nest.js 搭建稳定服务。系统搭配 MariaDB 数据库存储数据,支持多种认证和授权机制,具备丰富功能模块与完善测试体系,为用户提供高效待办事项管理体验。
项目的主要特性和功能
- CRUD 接口:提供 user 和 todo 资源的创建、读取、更新和删除接口。
- 数据库模块:采用 TypeORM 结合 MariaDB 存储数据,支持数据库迁移和数据种子初始化。
- 文件上传:通过 Express 的 Multer 实现文件上传。
- 配置管理:利用 ConfigModule 读取本地 ENV 变量。
- 日志上报:使用 ReportLogger 模拟日志上报。
- 静态资源服务:借助 StaticModule 提供静态资源服务。
- 身份验证:支持 local 和 jwt 两种身份验证策略。
- 角色验证:区分普通用户和管理员角色,实现权限管理。
- 容器化部署:支持 Docker 部署。
- API 文档:使用 Swagger 构建详细 API 文档。
- 实时通信:通过 WebSocket 实现数据实时传输。
- HTTP 转发:具备 HTTP 模块实现 HTTP 转发。
- 错误处理:Error 模块拦截错误并按规定格式输出。
- 数据格式化:Transform 模块以规定格式返回数据。
- 定时任务:Task Scheduling 实现定时推送消息功能。
- 测试体系:包含单元测试和 e2e 测试,保障系统稳定性。
安装使用步骤
1. 启动数据库和缓存服务
使用 docker-compose 启动 redis 和 mariadb 容器:
shell
docker-compose -f dev-docker-compose.yml up -d
2. 初始化数据库
进入后端目录,进行数据库迁移并插入初始数据:
shell
cd server
npm run migration:run
npm run db:seed
3. 启动后端服务
在后端目录启动 Nest.js 服务:
shell
cd server
npm run start:dev
4. 启动前端服务
进入前端目录启动 React 服务:
shell
cd client
npm run start
5. 访问应用
打开浏览器,访问 http://localhost:3000 使用待办事项管理系统。
测试
若要测试,先进入 /server
目录:
shell
cd server
单元测试
使用 Jest 运行单元测试:
shell
npm run test
e2e 测试
运行 e2e 测试前需先启动缓存和数据库(参考前面步骤),然后使用 Jest 和 supertest 运行测试:
shell
npm run test:e2e
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】