Files
niumalll/README.md

373 lines
8.7 KiB
Markdown
Raw Normal View History

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