4.7 KiB
4.7 KiB
🏗️ 系统架构文档
📋 项目概述
杰邦科项目是一个综合性的管理系统,包含后台管理、微信小程序和官网三个主要模块。
🎯 技术栈
后端技术栈
- 运行时: Node.js + Express.js
- 数据库: MySQL 8.0
- ORM: Sequelize
- 认证: JWT + bcrypt
- 缓存: Redis (可选)
- 消息队列: RabbitMQ (可选)
前端技术栈
- 后台管理系统: Vue 3 + Element Plus
- 微信小程序: 原生小程序 + Vant Weapp
- 官方网站: Vue 3 + Vue Router
开发工具
- 包管理: npm
- 容器化: Docker + Docker Compose
- 代码质量: ESLint + Prettier
- 测试: Jest + Supertest
🏢 系统架构
graph TB
subgraph "前端应用"
A[后台管理系统]
B[微信小程序]
C[官方网站]
end
subgraph "后端服务"
D[API Gateway]
E[用户服务]
F[业务服务]
G[文件服务]
end
subgraph "数据层"
H[MySQL]
I[Redis]
J[MinIO]
end
A --> D
B --> D
C --> D
D --> E
D --> F
D --> G
E --> H
F --> H
G --> J
E --> I
🗄️ 数据库设计
核心表结构
erDiagram
users ||--o{ orders : places
users ||--o{ addresses : has
users {
bigint id PK
varchar username
varchar password_hash
varchar email
varchar phone
datetime created_at
datetime updated_at
}
orders ||--o{ order_items : contains
orders {
bigint id PK
bigint user_id FK
decimal total_amount
varchar status
datetime created_at
}
products ||--o{ order_items : included_in
products {
bigint id PK
varchar name
decimal price
text description
}
🌐 环境配置
开发环境 (Development)
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=rootpassword
DB_DATABASE=jiebanke_dev
NODE_ENV=development
测试环境 (Test)
DB_HOST=192.168.0.240
DB_PORT=3306
DB_USER=root
DB_PASSWORD=aiotAiot123!
DB_DATABASE=jiebandata_test
NODE_ENV=test
生产环境 (Production)
DB_HOST=129.211.213.226
DB_PORT=9527
DB_USER=root
DB_PASSWORD=Aiot123
DB_DATABASE=jiebandata
NODE_ENV=production
🔌 API 设计
用户模块 API
| 方法 | 路径 | 描述 | 认证 |
|---|---|---|---|
| POST | /api/v1/users/register |
用户注册 | 否 |
| POST | /api/v1/users/login |
用户登录 | 否 |
| GET | /api/v1/users/profile |
获取用户信息 | JWT |
| PUT | /api/v1/users/profile |
更新用户信息 | JWT |
示例请求
// 用户登录
POST /api/v1/users/login
Content-Type: application/json
{
"username": "testuser",
"password": "password123"
}
🚀 部署架构
开发部署
graph LR
A[本地开发机] --> B[Docker Compose]
B --> C[MySQL容器]
B --> D[Node.js应用]
B --> E[Redis容器]
生产部署
graph TB
subgraph "云服务器"
A[Nginx]
B[Node.js集群]
C[MySQL主从]
D[Redis哨兵]
end
A --> B
B --> C
B --> D
📊 监控与日志
- 应用监控: PM2 + Keymetrics
- 日志管理: Winston + ELK Stack
- 性能监控: New Relic / Datadog
- 错误追踪: Sentry
🔒 安全架构
认证授权
- JWT Token 认证
- RBAC (基于角色的访问控制)
- API 速率限制
数据安全
- HTTPS 加密传输
- 密码加盐哈希存储
- SQL 注入防护
- XSS 攻击防护
网络安全
- 防火墙规则
- IP 白名单
- DDoS 防护
📈 性能优化
数据库优化
- 索引优化
- 查询缓存
- 读写分离
应用优化
- 响应压缩
- 静态资源CDN
- 内存缓存
前端优化
- 代码分割
- 懒加载
- 图片优化
🛠️ 开发规范
代码规范
- ESLint + Prettier 统一代码风格
- Git Commit 消息规范
- 代码审查流程
分支策略
- Git Flow 工作流
- 功能分支开发
- 发布分支管理
测试策略
- 单元测试覆盖核心逻辑
- 集成测试API接口
- E2E测试用户流程
📝 文档体系
- ARCHITECTURE.md - 系统架构文档 (当前文件)
- README.md - 项目说明文档
- API_DOCS.md - API接口文档
- DEPLOYMENT.md - 部署指南
- DEVELOPMENT.md - 开发指南
🎯 后续规划
短期目标
- 完善用户管理系统
- 实现订单业务流程
- 部署测试环境
中期目标
- 微服务架构改造
- 容器化部署
- 自动化测试覆盖
长期目标
- 大数据分析平台
- AI智能推荐
- 多语言国际化
最后更新: 2024年 📅