373 lines
8.7 KiB
Markdown
373 lines
8.7 KiB
Markdown
# 活牛采购智能数字化系统
|
||
|
||
## 项目概述
|
||
|
||
活牛采购智能数字化系统是一个专为活牛采购业务设计的全栈Web应用,提供从供应商管理、订单处理、运输调度到支付结算的完整数字化解决方案。
|
||
|
||
## 技术栈
|
||
|
||
### 后端技术
|
||
- **运行环境**: Node.js 18+
|
||
- **Web框架**: Express.js 4.x
|
||
- **数据库**: MySQL 8.0
|
||
- **ORM框架**: Sequelize 6.x
|
||
- **认证授权**: JWT (jsonwebtoken)
|
||
- **API文档**: Swagger/OpenAPI 3.0
|
||
- **数据验证**: Joi
|
||
- **进程管理**: PM2
|
||
|
||
### 前端技术
|
||
- **框架**: Vue.js 3.x
|
||
- **构建工具**: Vite
|
||
- **UI组件库**: Element Plus
|
||
- **状态管理**: Pinia
|
||
- **路由管理**: Vue Router 4.x
|
||
- **HTTP客户端**: Axios
|
||
|
||
## 核心功能
|
||
|
||
### 🔐 认证授权系统
|
||
- JWT Token认证机制
|
||
- 基于角色的权限控制(RBAC)
|
||
- 多用户类型支持(管理员、采购员、供应商、司机)
|
||
- 资源级别的访问控制
|
||
|
||
### 👥 用户管理
|
||
- 用户注册、登录、信息管理
|
||
- 用户状态管理(激活、暂停、删除)
|
||
- 用户角色和权限分配
|
||
- 用户操作日志记录
|
||
|
||
### 📋 订单管理
|
||
- 订单创建、编辑、审核流程
|
||
- 订单状态跟踪和管理
|
||
- 订单统计和报表分析
|
||
- 订单导入导出功能
|
||
|
||
### 🏢 供应商管理
|
||
- 供应商信息录入和维护
|
||
- 供应商资质证书管理
|
||
- 供应商评价和信用体系
|
||
- 供应商合作关系管理
|
||
|
||
### 🚛 运输管理
|
||
- 运输任务创建和分配
|
||
- 实时运输状态跟踪
|
||
- GPS定位和路线优化
|
||
- 运输费用计算和结算
|
||
|
||
### 👨💼 司机管理
|
||
- 司机档案和资质管理
|
||
- 司机任务分配和调度
|
||
- 司机绩效考核系统
|
||
- 司机培训记录管理
|
||
|
||
### 🚗 车辆管理
|
||
- 车辆信息和证件管理
|
||
- 车辆维护保养计划
|
||
- 车辆保险和年检提醒
|
||
- 车辆使用统计分析
|
||
|
||
### 💰 支付管理
|
||
- 多种支付方式支持
|
||
- 自动账单生成和管理
|
||
- 财务对账和结算
|
||
- 支付统计和报表
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
niumall/
|
||
├── backend/ # 后端应用
|
||
│ ├── src/
|
||
│ │ ├── config/ # 配置文件
|
||
│ │ ├── controllers/ # 控制器层
|
||
│ │ ├── services/ # 服务层
|
||
│ │ ├── models/ # 数据模型
|
||
│ │ ├── routes/ # 路由定义
|
||
│ │ ├── middleware/ # 中间件
|
||
│ │ ├── utils/ # 工具函数
|
||
│ │ └── main.js # 应用入口
|
||
│ ├── tests/ # 测试文件
|
||
│ └── package.json # 依赖配置
|
||
├── frontend/ # 前端应用
|
||
│ ├── src/
|
||
│ │ ├── components/ # Vue组件
|
||
│ │ ├── views/ # 页面视图
|
||
│ │ ├── router/ # 路由配置
|
||
│ │ ├── store/ # 状态管理
|
||
│ │ ├── utils/ # 工具函数
|
||
│ │ └── main.js # 应用入口
|
||
│ └── package.json # 依赖配置
|
||
├── docs/ # 项目文档
|
||
│ ├── API接口文档.md
|
||
│ ├── 系统架构文档.md
|
||
│ └── 部署运维文档.md
|
||
└── README.md # 项目说明
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
- Node.js 18.x 或更高版本
|
||
- MySQL 8.0 或更高版本
|
||
- npm 8.x 或更高版本
|
||
|
||
### 安装步骤
|
||
|
||
1. **克隆项目**
|
||
```bash
|
||
git clone https://github.com/your-org/niumall.git
|
||
cd niumall
|
||
```
|
||
|
||
2. **安装后端依赖**
|
||
```bash
|
||
cd backend
|
||
npm install
|
||
```
|
||
|
||
3. **配置环境变量**
|
||
```bash
|
||
cp .env.example .env
|
||
# 编辑 .env 文件,配置数据库连接等信息
|
||
```
|
||
|
||
4. **初始化数据库**
|
||
```bash
|
||
# 创建数据库
|
||
mysql -u root -p -e "CREATE DATABASE niumall CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
|
||
|
||
# 运行数据库迁移
|
||
npm run migrate
|
||
|
||
# 创建管理员用户
|
||
node create_admin.js
|
||
```
|
||
|
||
5. **启动后端服务**
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
6. **安装前端依赖**
|
||
```bash
|
||
cd ../frontend
|
||
npm install
|
||
```
|
||
|
||
7. **启动前端服务**
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
8. **访问应用**
|
||
- 前端应用: http://localhost:5173
|
||
- 后端API: http://localhost:3000
|
||
- API文档: http://localhost:3000/api-docs
|
||
|
||
## 开发指南
|
||
|
||
### 代码规范
|
||
- 使用ESLint进行代码检查
|
||
- 使用Prettier进行代码格式化
|
||
- 遵循JavaScript Standard Style
|
||
- 提交前运行测试和代码检查
|
||
|
||
### 分支管理
|
||
- `main`: 主分支,用于生产环境
|
||
- `develop`: 开发分支,用于集成测试
|
||
- `feature/*`: 功能分支,用于新功能开发
|
||
- `hotfix/*`: 热修复分支,用于紧急修复
|
||
|
||
### 提交规范
|
||
```
|
||
feat: 新功能
|
||
fix: 修复bug
|
||
docs: 文档更新
|
||
style: 代码格式调整
|
||
refactor: 代码重构
|
||
test: 测试相关
|
||
chore: 构建过程或辅助工具的变动
|
||
```
|
||
|
||
## API文档
|
||
|
||
系统提供完整的RESTful API接口,支持以下功能模块:
|
||
|
||
- **认证模块** (`/api/auth`): 用户登录、注册、令牌管理
|
||
- **用户管理** (`/api/users`): 用户CRUD操作和权限管理
|
||
- **订单管理** (`/api/orders`): 订单全生命周期管理
|
||
- **供应商管理** (`/api/suppliers`): 供应商信息和资质管理
|
||
- **运输管理** (`/api/transports`): 运输任务和状态管理
|
||
- **司机管理** (`/api/drivers`): 司机档案和调度管理
|
||
- **车辆管理** (`/api/vehicles`): 车辆信息和维护管理
|
||
- **支付管理** (`/api/payments`): 支付记录和财务管理
|
||
|
||
详细的API接口文档请参考:[API接口文档](./docs/API接口文档.md)
|
||
|
||
## 系统架构
|
||
|
||
系统采用前后端分离的架构设计,后端使用分层架构模式:
|
||
|
||
- **路由层**: 处理HTTP请求和响应
|
||
- **控制器层**: 业务逻辑协调和数据验证
|
||
- **服务层**: 核心业务逻辑实现
|
||
- **数据层**: 数据模型和数据库操作
|
||
|
||
详细的系统架构说明请参考:[系统架构文档](./docs/系统架构文档.md)
|
||
|
||
## 部署指南
|
||
|
||
系统支持多种部署方式:
|
||
|
||
### 传统部署
|
||
- 单机部署:适用于小规模应用
|
||
- 集群部署:适用于高并发场景
|
||
- 负载均衡:支持多实例负载均衡
|
||
|
||
### 容器化部署
|
||
- Docker部署:快速部署和环境隔离
|
||
- Docker Compose:多服务编排
|
||
- Kubernetes:云原生部署和管理
|
||
|
||
### 云平台部署
|
||
- 阿里云ECS:弹性计算服务
|
||
- 腾讯云CVM:云服务器
|
||
- AWS EC2:亚马逊云计算服务
|
||
|
||
详细的部署和运维指南请参考:[部署运维文档](./docs/部署运维文档.md)
|
||
|
||
## 测试
|
||
|
||
### 单元测试
|
||
```bash
|
||
# 后端单元测试
|
||
cd backend
|
||
npm test
|
||
|
||
# 前端单元测试
|
||
cd frontend
|
||
npm test
|
||
```
|
||
|
||
### 集成测试
|
||
```bash
|
||
# 运行集成测试
|
||
npm run test:integration
|
||
```
|
||
|
||
### API测试
|
||
- 使用Postman进行API测试
|
||
- 提供完整的Postman Collection
|
||
- 支持自动化API测试
|
||
|
||
## 监控和日志
|
||
|
||
### 应用监控
|
||
- PM2进程监控
|
||
- 系统资源监控
|
||
- 应用性能监控
|
||
|
||
### 日志管理
|
||
- 结构化日志记录
|
||
- 日志轮转和归档
|
||
- 错误日志告警
|
||
|
||
### 健康检查
|
||
- 应用健康检查接口
|
||
- 数据库连接检查
|
||
- 外部服务依赖检查
|
||
|
||
## 安全特性
|
||
|
||
### 认证安全
|
||
- JWT Token认证
|
||
- 密码加密存储
|
||
- 会话管理和超时
|
||
|
||
### 授权安全
|
||
- 基于角色的访问控制
|
||
- 资源级权限验证
|
||
- API接口权限保护
|
||
|
||
### 数据安全
|
||
- 输入数据验证和过滤
|
||
- SQL注入防护
|
||
- XSS攻击防护
|
||
|
||
### 传输安全
|
||
- HTTPS强制加密
|
||
- CORS跨域配置
|
||
- 请求频率限制
|
||
|
||
## 性能优化
|
||
|
||
### 数据库优化
|
||
- 索引优化
|
||
- 查询优化
|
||
- 连接池管理
|
||
|
||
### 缓存策略
|
||
- Redis缓存
|
||
- 查询结果缓存
|
||
- 静态资源缓存
|
||
|
||
### 前端优化
|
||
- 代码分割
|
||
- 懒加载
|
||
- 资源压缩
|
||
|
||
## 贡献指南
|
||
|
||
我们欢迎社区贡献!请遵循以下步骤:
|
||
|
||
1. Fork项目到你的GitHub账户
|
||
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
|
||
3. 提交你的更改 (`git commit -m 'Add some AmazingFeature'`)
|
||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||
5. 创建Pull Request
|
||
|
||
### 贡献类型
|
||
- 🐛 Bug修复
|
||
- ✨ 新功能开发
|
||
- 📚 文档改进
|
||
- 🎨 UI/UX优化
|
||
- ⚡ 性能优化
|
||
- 🔧 配置和工具改进
|
||
|
||
## 许可证
|
||
|
||
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
|
||
|
||
## 联系我们
|
||
|
||
- **项目维护者**: NiuMall Team
|
||
- **邮箱**: contact@niumall.com
|
||
- **官网**: https://www.niumall.com
|
||
- **技术支持**: support@niumall.com
|
||
|
||
## 更新日志
|
||
|
||
### v1.0.0 (2024-01-01)
|
||
- 🎉 初始版本发布
|
||
- ✨ 完整的业务功能模块
|
||
- 🔐 JWT认证和权限控制
|
||
- 📱 响应式前端界面
|
||
- 📖 完整的API文档
|
||
- 🚀 Docker容器化支持
|
||
|
||
## 致谢
|
||
|
||
感谢所有为这个项目做出贡献的开发者和用户!
|
||
|
||
特别感谢以下开源项目:
|
||
- [Express.js](https://expressjs.com/) - Web应用框架
|
||
- [Vue.js](https://vuejs.org/) - 前端框架
|
||
- [Sequelize](https://sequelize.org/) - ORM框架
|
||
- [Element Plus](https://element-plus.org/) - UI组件库
|
||
- [MySQL](https://www.mysql.com/) - 数据库系统
|
||
|
||
---
|
||
|
||
**活牛采购智能数字化系统** - 让活牛采购更智能、更高效! |