Files
jiebanke/architecture.md

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测试用户流程

📝 文档体系

  1. ARCHITECTURE.md - 系统架构文档 (当前文件)
  2. README.md - 项目说明文档
  3. API_DOCS.md - API接口文档
  4. DEPLOYMENT.md - 部署指南
  5. DEVELOPMENT.md - 开发指南

🎯 后续规划

短期目标

  • 完善用户管理系统
  • 实现订单业务流程
  • 部署测试环境

中期目标

  • 微服务架构改造
  • 容器化部署
  • 自动化测试覆盖

长期目标

  • 大数据分析平台
  • AI智能推荐
  • 多语言国际化

最后更新: 2024年 📅