Files
niumalll/README.md

373 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 活牛采购智能数字化系统
## 项目概述
活牛采购智能数字化系统是一个专为活牛采购业务设计的全栈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/) - 数据库系统
---
**活牛采购智能数字化系统** - 让活牛采购更智能、更高效!