瀏覽代碼

📝 docs(architecture): 更新架构文档以反映生产就绪状态

- 完善项目定位描述,强调"生产就绪的现代化全栈管理后台启动模板"
- 更新技术栈信息,添加Redis 7.0.4和MinIO支持
- 详细说明10个业务模块架构,包括用户、文件、支付、会员等实体
- 完善前端测试架构描述,补充Testing Library和Playwright E2E测试
- 更新API路由结构,明确通用CRUD路由和业务模块路由组织
- 补充环境变量配置说明,包括MinIO和Redis连接参数
- 完善项目状态总结,强调BMAD方法论集成和AI驱动开发支持
- 添加构建和部署命令文档,明确pnpm build和pnpm start流程
yourname 2 月之前
父節點
當前提交
c06abac507
共有 1 個文件被更改,包括 117 次插入79 次删除
  1. 117 79
      docs/architecture.md

+ 117 - 79
docs/architecture.md

@@ -16,48 +16,40 @@
 
 
 **注意**: 本项目的详细架构文档已拆分为多个子文档,位于 `docs/architecture/` 目录中。如需查看完整的架构文档结构,请参阅 [架构文档索引](./architecture/index.md)。
 **注意**: 本项目的详细架构文档已拆分为多个子文档,位于 `docs/architecture/` 目录中。如需查看完整的架构文档结构,请参阅 [架构文档索引](./architecture/index.md)。
 
 
-### 文档范围
-全面定义系统增强的架构方法和集成策略
 
 
-### 变更日志
-| 日期 | 版本 | 描述 | 作者 |
-|------|------|------|------|
-| 2024-09-14 | 1.0 | 初始现有系统分析 | Winston |
-| 2025-09-14 | 2.0 | 增强架构文档 | Winston |
-| 2025-09-19 | 2.1 | 添加数据库定时备份策略 | Winston |
-| 2025-09-19 | 2.2 | 更新测试策略文档引用 | Winston |
-| 2025-09-20 | 2.3 | 根据实际项目结构更新测试架构和共享目录 | Winston |
-| 2025-09-20 | 2.4 | 完善BMAD全栈架构规范,添加高层架构图、API规范、安全架构 | Winston |
+
+
 
 
 ## 现有项目分析
 ## 现有项目分析
 
 
 ### 当前项目状态
 ### 当前项目状态
-- **主要用途**: 现代化的全栈Web应用启动模板,专注于开发者体验
-- **技术栈总结**: Node.js 20.19.2 + Hono 4.8.5 + React 19.1.0 + TypeORM 0.3.25 + MySQL 8.0.36
-- **架构风格**: 分层架构,前后端分离但统一仓库管理
-- **部署方式**: Docker Compose本地开发,Node.js生产部署
+- **主要用途**: 生产就绪的现代化全栈管理后台启动模板,AI驱动开发的首选起点
+- **技术栈总结**: Node.js 20.19.2 + Hono 4.8.5 + React 19.1.0 + TypeORM 0.3.25 + MySQL 8.0.36 + Redis 7.0.4 + MinIO
+- **架构风格**: 分层架构,前后端分离但统一仓库管理,模块化业务组织
+- **部署方式**: Docker Compose本地开发,多八多云端开发容器环境
 
 
 ### 可用文档分析
 ### 可用文档分析
 ✅ **技术文档完整**:
 ✅ **技术文档完整**:
-- 技术栈和版本信息准确 (Node.js 20.19.2 + MySQL 8.0.36)
-- 源码结构和模块组织清晰
-- 数据模型定义完整
-- API规范通过OpenAPI自动生成
-- 测试基础设施完整 (Vitest + Playwright)
-- 部署配置完整 (Docker Compose + 多八多云端环境)
+- 技术栈和版本信息准确 (Node.js 20.19.2 + MySQL 8.0.36 + Redis 7.0.4)
+- 源码结构和模块组织清晰 (10个业务模块,完整的API路由体系)
+- 数据模型定义完整 (用户、文件、支付、会员、模板、解决方案等实体)
+- API规范通过OpenAPI自动生成 (@hono/zod-openapi集成)
+- 测试基础设施完整 (Vitest + Testing Library + Playwright E2E测试)
+- 部署配置完整 (Docker Compose + 多八多云端开发容器环境)
 
 
 ✅ **项目状态**: 生产就绪
 ✅ **项目状态**: 生产就绪
-- 所有核心功能已验证稳定
-- AI代理集成工作正常
-- 开发环境配置完整
-- 文档和规范齐全
+- 所有核心功能已验证稳定 (用户管理、文件系统、支付、模板等)
+- AI代理集成工作正常 (BMAD方法论完整集成)
+- 开发环境配置完整 (端口8080外网访问,默认数据库d8dai)
+- 文档和规范齐全 (CLAUDE.md + .roo/rules/开发规范)
 
 
 ### 识别出的约束
 ### 识别出的约束
-- 必须保持与现有shadcn设计系统的兼容性
-- 需要支持MySQL 8.0.36关系型数据库
-- 前端构建基于Vite,后端基于Hono
-- 部署环境支持Docker容器化
-- 现有代码中存在一些`any`类型需要修复
+- 必须保持与现有shadcn设计系统的兼容性 (基于Radix UI的组件库)
+- 需要支持MySQL 8.0.36关系型数据库 (默认数据库d8dai)
+- 前端构建基于Vite 7.0.0,后端基于Hono 4.8.5
+- 部署环境支持Docker容器化 (多八多云端开发容器环境)
+- 端口8080为开发和生产的统一访问端口
+- 环境变量配置统一 (数据库、Redis、MinIO使用默认参数)
 
 
 ## 增强范围和集成策略
 ## 增强范围和集成策略
 
 
@@ -151,10 +143,14 @@ graph TD
 | 前端框架 | React | 19.1.0 | 用户界面构建 | 最新版本 |
 | 前端框架 | React | 19.1.0 | 用户界面构建 | 最新版本 |
 | 构建工具 | Vite | 7.0.0 | 开发服务器和构建 | 热重载支持 |
 | 构建工具 | Vite | 7.0.0 | 开发服务器和构建 | 热重载支持 |
 | 数据库 | MySQL | 8.0.36 | 数据持久化存储 | 通过TypeORM |
 | 数据库 | MySQL | 8.0.36 | 数据持久化存储 | 通过TypeORM |
+| 缓存 | Redis | 7.0.4 | 会话缓存和临时数据 | ioredis客户端 |
+| 对象存储 | MinIO | latest | 文件存储服务 | 支持分段上传 |
 | ORM | TypeORM | 0.3.25 | 数据库操作抽象 | 实体管理 |
 | ORM | TypeORM | 0.3.25 | 数据库操作抽象 | 实体管理 |
 | 样式 | Tailwind CSS | 4.1.11 | 原子化CSS框架 | 设计一致性 |
 | 样式 | Tailwind CSS | 4.1.11 | 原子化CSS框架 | 设计一致性 |
 | 状态管理 | React Query | 5.83.0 | 服务端状态管理 | 数据同步 |
 | 状态管理 | React Query | 5.83.0 | 服务端状态管理 | 数据同步 |
 | 认证 | JWT | 9.0.2 | 用户认证和安全 | Bearer Token |
 | 认证 | JWT | 9.0.2 | 用户认证和安全 | Bearer Token |
+| 表单处理 | React Hook Form | 7.61.1 | 表单状态管理 | Zod集成 |
+| 路由管理 | React Router | 7.7.0 | 前端路由管理 | 最新版本 |
 
 
 ### 新技术添加
 ### 新技术添加
 | 技术 | 版本 | 用途 | Rationale | 集成方法 |
 | 技术 | 版本 | 用途 | Rationale | 集成方法 |
@@ -169,7 +165,7 @@ graph TD
 ## 数据模型和Schema变更
 ## 数据模型和Schema变更
 
 
 ### 现有数据模型状态
 ### 现有数据模型状态
-**用户模型**:
+**用户模型** (UserEntity):
 - **现状**: 设计良好,包含完整的用户管理和权限系统
 - **现状**: 设计良好,包含完整的用户管理和权限系统
 - **关键属性**:
 - **关键属性**:
   - `id`: number - 主键标识符
   - `id`: number - 主键标识符
@@ -179,8 +175,8 @@ graph TD
   - `roles`: Role[] - 用户角色多对多关系
   - `roles`: Role[] - 用户角色多对多关系
 - **关系**: 与Role实体建立正确的多对多关系映射
 - **关系**: 与Role实体建立正确的多对多关系映射
 
 
-**文件管理模型**:
-- **现状**: 新增完整的文件管理系统,支持MinIO对象存储
+**文件管理模型** (File):
+- **现状**: 完整的文件管理系统,支持MinIO对象存储和分段上传
 - **关键属性**:
 - **关键属性**:
   - `id`: number - 主键标识符
   - `id`: number - 主键标识符
   - `name`: string - 文件名
   - `name`: string - 文件名
@@ -191,7 +187,14 @@ graph TD
   - `uploadTime`: Date - 上传时间
   - `uploadTime`: Date - 上传时间
 - **关系**: 与User实体建立多对一关系映射
 - **关系**: 与User实体建立多对一关系映射
 
 
-**优化重点**: 保持现有数据模型不变,新增文件管理功能,优化查询性能和验证逻辑
+**业务模块实体**:
+- **支付系统** (PaymentEntity): 支付记录和状态管理
+- **会员计划** (MembershipPlan): 会员等级和权益配置
+- **模板系统** (Template): 文档模板管理和变量处理
+- **系统设置** (SystemSetting): 动态配置管理系统
+- **解决方案设计** (SolutionDesign, SolutionChapter): 方案和章节管理系统
+
+**优化重点**: 所有核心数据模型已实现,支持通用CRUD操作和关联查询
 
 
 ### TypeScript接口定义
 ### TypeScript接口定义
 ```typescript
 ```typescript
@@ -365,42 +368,45 @@ src/client/
 src/server/
 src/server/
 ├── api/                    # API路由层
 ├── api/                    # API路由层
 │   ├── auth/              # 认证相关路由
 │   ├── auth/              # 认证相关路由
-│   │   ├── login.ts       # 登录路由
+│   │   ├── login/password.ts       # 密码登录路由
 │   │   ├── logout.ts      # 登出路由
 │   │   ├── logout.ts      # 登出路由
-│   │   └── register.ts    # 注册路由
-│   ├── users/             # 用户管理路由
-│   │   ├── index.ts       # 用户列表路由
-│   │   ├── [id].ts        # 用户详情路由
-│   │   └── __tests__/     # 路由测试
-│   ├── roles/             # 角色管理路由
+│   │   ├── register/create.ts    # 注册路由
+│   │   ├── me/get.ts      # 获取当前用户信息
+│   │   └── sso-verify.ts  # SSO验证路由
+│   ├── users/             # 用户管理路由 (通用CRUD)
+│   ├── roles/             # 角色管理路由 (通用CRUD)
 │   ├── files/              # 文件管理路由
 │   ├── files/              # 文件管理路由
 │   │   ├── multipart-policy/    # 多部分上传策略
 │   │   ├── multipart-policy/    # 多部分上传策略
 │   │   ├── multipart-complete/  # 完成多部分上传
 │   │   ├── multipart-complete/  # 完成多部分上传
 │   │   ├── [id]/               # 文件操作路由
 │   │   ├── [id]/               # 文件操作路由
 │   │   └── upload-policy/      # 上传策略路由
 │   │   └── upload-policy/      # 上传策略路由
-│   └── __integration_tests__/  # 集成测试
-├── modules/               # 业务模块层
+│   ├── membership-plans/   # 会员计划路由 (通用CRUD)
+│   ├── payments/           # 支付路由 (通用CRUD)
+│   ├── templates/          # 模板路由 (通用CRUD)
+│   ├── settings/           # 系统设置路由 (通用CRUD)
+│   ├── documents/          # 文档处理路由
+│   │   └── merge/post.ts   # Word合并功能
+│   ├── solution-designs/   # 解决方案设计路由 (通用CRUD)
+│   └── public/             # 公开API路由
+│       ├── settings/       # 公开系统设置
+│       └── templates/      # 公开模板访问
+├── modules/               # 业务模块层 (10个模块)
 │   ├── auth/              # 认证业务模块
 │   ├── auth/              # 认证业务模块
-│   │   ├── auth.service.ts # 认证服务
-│   │   └── __tests__/     # 认证测试
 │   ├── users/             # 用户业务模块
 │   ├── users/             # 用户业务模块
-│   │   ├── user.entity.ts  # 用户实体
-│   │   ├── user.service.ts # 用户服务
-│   │   └── __tests__/     # 用户测试
-│   ├── files/              # 文件业务模块
-│   │   ├── file.entity.ts  # 文件实体
-│   │   ├── file.service.ts # 文件服务
-│   │   ├── minio.service.ts # MinIO服务
-│   │   ├── file.schema.ts  # 文件验证Schema
-│   │   └── __tests__/     # 文件测试
+│   ├── files/             # 文件业务模块
+│   ├── membership/        # 会员业务模块
+│   ├── payments/          # 支付业务模块
+│   ├── templates/         # 模板业务模块
+│   ├── settings/          # 系统设置模块
+│   ├── documents/         # 文档处理模块
+│   └── solution-designs/  # 解决方案设计模块
 ├── utils/                 # 工具层
 ├── utils/                 # 工具层
 │   ├── generic-crud.service.ts  # 通用CRUD服务
 │   ├── generic-crud.service.ts  # 通用CRUD服务
 │   ├── generic-crud.routes.ts   # 通用CRUD路由
 │   ├── generic-crud.routes.ts   # 通用CRUD路由
 │   ├── errorHandler.ts    # 错误处理
 │   ├── errorHandler.ts    # 错误处理
 │   ├── backup.ts          # 数据库备份工具
 │   ├── backup.ts          # 数据库备份工具
 │   ├── restore.ts         # 数据库恢复工具
 │   ├── restore.ts         # 数据库恢复工具
-│   ├── logger.ts          # 日志工具
-│   └── __tests__/         # 工具测试
+│   └── logger.ts          # 日志工具
 ├── middleware/            # 中间件层
 ├── middleware/            # 中间件层
 │   ├── auth.middleware.ts           # 认证中间件
 │   ├── auth.middleware.ts           # 认证中间件
 │   └── permission.middleware.ts     # 权限中间件
 │   └── permission.middleware.ts     # 权限中间件
@@ -609,30 +615,39 @@ d8d-starter/
 ├── src/
 ├── src/
 │   ├── client/                 # React前端应用
 │   ├── client/                 # React前端应用
 │   │   ├── admin/              # 管理后台应用
 │   │   ├── admin/              # 管理后台应用
-│   │   │   ├── components/     # 管理后台组件
-│   │   │   ├── hooks/          # 管理后台Hooks
-│   │   │   ├── layouts/        # 布局组件
-│   │   │   ├── pages/          # 页面组件
+│   │   │   ├── components/     # 管理后台组件 (DataTable, FileSelector等)
+│   │   │   ├── hooks/          # 管理后台Hooks (AuthProvider等)
+│   │   │   ├── layouts/        # 布局组件 (MainLayout)
+│   │   │   ├── pages/          # 页面组件 (Dashboard, Users, Files等)
 │   │   │   ├── routes.tsx      # 路由配置
 │   │   │   ├── routes.tsx      # 路由配置
 │   │   │   └── index.tsx       # 入口文件
 │   │   │   └── index.tsx       # 入口文件
-│   │   ├── home/               # 用户前台应用(待开发)
+│   │   ├── home/               # 用户前台应用 (待开发)
 │   │   ├── components/         # 共享UI组件
 │   │   ├── components/         # 共享UI组件
-│   │   │   └── ui/            # shadcn/ui组件库
+│   │   │   └── ui/            # shadcn/ui组件库 (50+组件)
 │   │   ├── hooks/              # 共享Hooks
 │   │   ├── hooks/              # 共享Hooks
 │   │   ├── lib/                # 工具库
 │   │   ├── lib/                # 工具库
-│   │   ├── utils/              # 工具函数
-│   │   ├── api.ts              # API客户端
+│   │   ├── utils/              # 工具函数 (minio.ts等)
+│   │   ├── api.ts              # API客户端 (Hono RPC配置)
 │   │   └── index.tsx           # 前端入口
 │   │   └── index.tsx           # 前端入口
 │   ├── server/                 # Hono后端应用
 │   ├── server/                 # Hono后端应用
-│   │   ├── api/                # API路由
-│   │   ├── modules/            # 业务模块
-│   │   ├── middleware/         # 中间件
+│   │   ├── api/                # API路由 (10+业务模块路由)
+│   │   ├── modules/            # 业务模块 (10个业务模块)
+│   │   ├── middleware/         # 中间件 (认证、权限)
+│   │   ├── utils/              # 工具层 (通用CRUD服务等)
+│   │   ├── migrations/         # 数据库迁移脚本
 │   │   └── index.ts            # 服务器入口
 │   │   └── index.ts            # 服务器入口
 │   └── share/                  # 前后端共享代码
 │   └── share/                  # 前后端共享代码
 │       └── types.ts            # TypeScript类型定义
 │       └── types.ts            # TypeScript类型定义
 ├── tests/
 ├── tests/
 │   └── e2e/                    # E2E测试 (Playwright)
 │   └── e2e/                    # E2E测试 (Playwright)
-└── package.json
+├── docs/                       # 项目文档
+│   ├── architecture/           # 架构文档子目录
+│   ├── prd.md                  # 产品需求文档
+│   └── architecture.md         # 架构文档
+├── .roo/                       # Roo框架配置
+│   └── rules/                  # 开发规范 (15个规范文件)
+├── docker-compose.yml          # Docker开发环境配置
+└── package.json                # 项目依赖配置
 ```
 ```
 
 
 ### 集成指南
 ### 集成指南
@@ -665,7 +680,7 @@ d8d-starter/
 # 安装依赖
 # 安装依赖
 pnpm install
 pnpm install
 
 
-# 启动完整开发环境(前后端同时运行)
+# 启动完整开发环境(前后端同时运行,端口8080
 pnpm dev
 pnpm dev
 
 
 # 运行测试
 # 运行测试
@@ -674,12 +689,13 @@ pnpm test:api                  # 运行API测试
 pnpm test:components           # 运行组件测试
 pnpm test:components           # 运行组件测试
 pnpm test:integration          # 运行集成测试 (同test:components)
 pnpm test:integration          # 运行集成测试 (同test:components)
 pnpm test:e2e                  # 运行E2E测试
 pnpm test:e2e                  # 运行E2E测试
-pnpm test:e2e:chromium         # 运行Chrome E2E测试
+pnpm test:e2e:chromium         # 运行Chrome E2E测试 (推荐日常使用)
 pnpm test:e2e:ui               # 运行E2E测试UI模式
 pnpm test:e2e:ui               # 运行E2E测试UI模式
 pnpm test:e2e:debug            # 运行E2E调试模式
 pnpm test:e2e:debug            # 运行E2E调试模式
 
 
 # 代码质量检查
 # 代码质量检查
 pnpm lint                      # ESLint检查
 pnpm lint                      # ESLint检查
+pnpm lint:fix                  # ESLint自动修复
 pnpm typecheck                 # TypeScript类型检查
 pnpm typecheck                 # TypeScript类型检查
 pnpm test:coverage             # 生成测试覆盖率报告
 pnpm test:coverage             # 生成测试覆盖率报告
 
 
@@ -692,14 +708,20 @@ pnpm db:backup:cleanup         # 清理旧备份
 pnpm db:migrate                # 数据库迁移
 pnpm db:migrate                # 数据库迁移
 pnpm db:seed                   # 数据库种子数据
 pnpm db:seed                   # 数据库种子数据
 pnpm db:reset                  # 重置数据库
 pnpm db:reset                  # 重置数据库
+
+# 构建和部署
+pnpm build                     # 构建客户端和服务器
+pnpm build:client              # 仅构建客户端
+pnpm build:server              # 仅构建服务器
+pnpm start                     # 启动生产服务器
 ```
 ```
 
 
 **环境配置**:
 **环境配置**:
 ```bash
 ```bash
 # 前端环境变量 (Vite)
 # 前端环境变量 (Vite)
-VITE_API_BASE_URL=http://localhost:3000/api
+VITE_API_BASE_URL=http://localhost:8080/api
 
 
-# 后端环境变量
+# 后端环境变量 (多八多云端开发容器环境)
 DB_HOST=localhost
 DB_HOST=localhost
 DB_PORT=3306
 DB_PORT=3306
 DB_DATABASE=d8dai
 DB_DATABASE=d8dai
@@ -707,6 +729,18 @@ DB_USERNAME=root
 DB_PASSWORD=
 DB_PASSWORD=
 JWT_SECRET=your-jwt-secret-key
 JWT_SECRET=your-jwt-secret-key
 NODE_ENV=development
 NODE_ENV=development
+
+# MinIO配置
+MINIO_HOST=localhost
+MINIO_PORT=9000
+MINIO_ACCESS_KEY=minioadmin
+MINIO_SECRET_KEY=minioadmin
+MINIO_BUCKET_NAME=d8dai
+MINIO_USE_SSL=false
+
+# Redis配置
+REDIS_HOST=localhost
+REDIS_PORT=6379
 ```
 ```
 
 
 ## 编码标准和测试策略
 ## 编码标准和测试策略
@@ -750,10 +784,8 @@ tests/
     ├── global-setup.ts     # 全局设置
     ├── global-setup.ts     # 全局设置
     ├── global-teardown.ts  # 全局清理
     ├── global-teardown.ts  # 全局清理
     └── playwright.config.ts # Playwright配置
     └── playwright.config.ts # Playwright配置
-```
 
 
-**前端测试位置**:
-```text
+# 前端测试位置
 src/client/
 src/client/
 ├── __integration_tests__/      # 前端集成测试
 ├── __integration_tests__/      # 前端集成测试
 │   └── admin/                  # 管理后台集成测试
 │   └── admin/                  # 管理后台集成测试
@@ -765,10 +797,8 @@ src/client/
         └── __tests__/          # 页面单元测试
         └── __tests__/          # 页面单元测试
             ├── Users.test.tsx  # 用户页面单元测试
             ├── Users.test.tsx  # 用户页面单元测试
             └── debug.test.tsx  # 调试页面单元测试
             └── debug.test.tsx  # 调试页面单元测试
-```
 
 
-**后端测试位置**:
-```text
+# 后端测试位置
 src/server/
 src/server/
 ├── api/
 ├── api/
 │   ├── auth/                 # 认证API
 │   ├── auth/                 # 认证API
@@ -974,4 +1004,12 @@ interface ApiError {
 **下次评审**: 2025-10-24 (每月评审)
 **下次评审**: 2025-10-24 (每月评审)
 
 
 **项目状态总结**:
 **项目状态总结**:
-D8D全栈管理后台启动模板已达到生产就绪状态,所有核心功能已验证稳定,AI代理集成工作正常,可作为AI驱动开发的标准化起点。
+D8D全栈管理后台启动模板已达到生产就绪状态,具备以下特点:
+
+✅ **技术架构成熟**: Node.js 20.19.2 + Hono 4.8.5 + React 19.1.0 + TypeORM 0.3.25 + MySQL 8.0.36
+✅ **业务模块完整**: 10个业务模块,涵盖用户管理、文件系统、支付、会员、模板、解决方案等
+✅ **开发体验优秀**: 通用CRUD服务、类型安全API、shadcn/ui组件库、完整测试覆盖
+✅ **AI驱动开发**: BMAD方法论完整集成,Roo框架开发规范,AI代理工作流支持
+✅ **生产就绪**: 多八多云端开发容器环境,Docker Compose部署,端口8080统一访问
+
+项目可作为AI驱动开发的首选管理后台起点,为团队和AI代理提供标准化、类型安全的开发基础。