docs: 添加项目开发规范文档

- 添加项目概览文档
- 添加前端开发规范
- 添加后端开发规范
- 添加数据库设计规范
- 添加UI/UX设计规范
- 添加开发指南
- 为项目提供完整的开发标准和最佳实践
This commit is contained in:
2025-07-31 13:19:53 +08:00
parent 10f3d93a19
commit dc2d287124
7 changed files with 3765 additions and 0 deletions

View File

@@ -0,0 +1,347 @@
# MixVideo 项目概览与开发规范
## 项目简介
MixVideo 是一个基于 Tauri 2.0 构建的跨平台AI视频创作桌面应用采用 Rust + React + TypeScript 技术栈旨在构建全球领先的AI驱动视频创作生态平台。
### 核心愿景
**"构建全球领先的AI驱动视频创作生态平台让每个人都能轻松创作出专业级的视频内容"**
## 技术架构
### 整体架构
```
mixvideo/
├── apps/
│ └── desktop/ # Tauri桌面应用
│ ├── src/ # React前端代码
│ │ ├── components/ # UI组件
│ │ ├── pages/ # 页面组件
│ │ ├── store/ # 状态管理(Zustand)
│ │ ├── services/ # 业务服务
│ │ ├── types/ # TypeScript类型定义
│ │ ├── hooks/ # React Hooks
│ │ ├── utils/ # 工具函数
│ │ └── styles/ # 样式文件
│ └── src-tauri/ # Rust后端代码
│ ├── src/
│ │ ├── infrastructure/ # 基础设施层
│ │ ├── data/ # 数据访问层
│ │ ├── business/ # 业务逻辑层
│ │ ├── presentation/ # 表现层(Commands)
│ │ └── services/ # 服务层
│ └── Cargo.toml
├── packages/ # 共享包(未来扩展)
├── docs/ # 项目文档
└── .promptx/ # 开发规范文档
```
### 前端技术栈
- **框架**: React 18 + TypeScript 5.8
- **构建工具**: Vite 6.0
- **状态管理**: Zustand 4.4
- **UI框架**: TailwindCSS 3.4
- **图标**: Lucide React + Heroicons
- **路由**: React Router DOM 6.20
- **测试**: Vitest + Testing Library
- **包管理**: PNPM 8.15 (Workspace)
### 后端技术栈
- **框架**: Tauri 2.0 + Rust 1.70+
- **数据库**: SQLite (WAL模式支持连接池)
- **AI集成**: Google Gemini API
- **多媒体**: FFmpeg
- **异步**: Tokio + async/await
- **序列化**: Serde + JSON
- **错误处理**: anyhow + thiserror
## 核心功能模块
### 1. 项目管理
- 多项目管理,本地路径绑定
- 素材管理:视频、音频、图片统一管理
- 版本控制:素材版本追踪,支持回滚
### 2. AI智能分析
- 基于Gemini AI的视频内容自动分类
- 场景检测:自动识别视频场景变化,智能分割片段
- 质量评估AI评估视频质量提供优化建议
### 3. 模板系统
- 可视化模板编辑器
- AI驱动的素材与模板自动匹配
- 批量处理:一键应用模板到多个素材
### 4. 模特管理
- 完整的模特信息管理系统
- 支持多类型照片分类存储
- 素材与模特自动关联
### 5. 穿搭推荐
- AI驱动的穿搭搭配推荐
- 智能搜索和筛选
- 收藏和比较功能
### 6. 视频生成
- 基于模板的视频自动生成
- 支持多种输出格式
- 批量导出处理
## 四层架构设计
### 1. 基础设施层 (Infrastructure)
- **数据库管理**: SQLite连接池读写分离
- **外部服务**: Gemini API, FFmpeg集成
- **文件系统**: 文件操作,路径管理
- **日志系统**: 结构化日志,性能监控
- **事件总线**: 组件间通信
### 2. 数据访问层 (Data)
- **模型定义**: 所有业务实体模型
- **仓库模式**: 数据访问抽象
- **数据库迁移**: 版本管理
- **连接管理**: 连接池优化
### 3. 业务逻辑层 (Business)
- **服务层**: 核心业务逻辑
- **领域模型**: 业务规则封装
- **工作流**: 复杂业务流程
- **验证**: 数据验证规则
### 4. 表现层 (Presentation)
- **Tauri Commands**: 前后端通信接口
- **参数验证**: 输入参数校验
- **错误处理**: 统一错误响应
- **权限控制**: 操作权限管理
## 开发环境配置
### 环境要求
- Node.js >= 18.0.0
- Rust >= 1.70.0
- PNPM >= 8.0.0
- Tauri CLI >= 2.0.0
### 开发命令
```bash
# 安装依赖
pnpm install
# 开发模式
pnpm tauri:dev
# 构建应用
pnpm tauri:build
# 运行测试
pnpm test
# 代码格式化
pnpm format
# 代码检查
pnpm lint
```
## 核心设计原则
### 1. 安全第一
- 数据库文件安全存储
- 输入参数严格验证
- 错误信息不泄露敏感数据
### 2. 性能优化
- 数据库连接池
- 读写分离
- 虚拟化列表
- 懒加载
### 3. 用户体验
- 响应式设计
- 优雅的加载状态
- 友好的错误提示
- 流畅的动画效果
### 4. 可维护性
- 清晰的分层架构
- 统一的编码规范
- 完善的测试覆盖
- 详细的文档说明
### 5. 可扩展性
- 模块化设计
- 插件化架构
- 配置化管理
- 微服务准备
## 数据库设计
### 核心表结构
- **projects**: 项目管理
- **materials**: 素材管理
- **models**: 模特信息
- **templates**: 模板定义
- **video_classifications**: AI分类记录
- **outfit_images**: 穿搭图片
- **conversations**: 对话记录
### 数据库特性
- WAL模式提高并发性能
- 外键约束:保证数据一致性
- 索引优化:提升查询性能
- 连接池:支持高并发访问
## 状态管理规范
### Zustand Store 设计
- **uiStore**: UI状态管理
- **projectStore**: 项目状态
- **materialStore**: 素材状态
- **outfitSearchStore**: 穿搭搜索状态
- **videoClassificationStore**: 视频分类状态
### 状态管理原则
- 单一数据源
- 不可变更新
- 异步操作处理
- 错误状态管理
## UI/UX 设计规范
### 设计系统
- **颜色系统**: 现代蓝色主题,语义化颜色
- **字体系统**: Inter + JetBrains Mono
- **间距系统**: 8px基础网格
- **圆角系统**: 统一的圆角规范
- **阴影系统**: 层次化阴影效果
### 组件规范
- 原子化设计
- 可复用组件
- 一致的交互模式
- 无障碍访问支持
### 动画规范
- 流畅的过渡效果
- 有意义的动画反馈
- 性能优化的动画
- 可配置的动画偏好
## 测试策略
### 测试类型
- **单元测试**: 核心业务逻辑
- **集成测试**: API和数据库集成
- **组件测试**: React组件测试
- **E2E测试**: 用户界面端到端测试
### 测试工具
- **前端**: Vitest + Testing Library
- **后端**: Rust内置测试框架
- **E2E**: 计划使用Playwright
### 测试覆盖率
- 目标覆盖率: 80%+
- 关键路径: 100%覆盖
- 持续集成: 自动化测试
## 版本管理
### 版本号规范
- 语义化版本: MAJOR.MINOR.PATCH
- 当前版本: v0.2.1
- 发布周期: 迭代式发布
### Git工作流
- 主分支: master
- 功能分支: feature/功能名
- 修复分支: hotfix/问题描述
- 发布分支: release/版本号
## 部署与发布
### 构建产物
- Windows: .msi + .exe
- macOS: .dmg + .app
- Linux: .deb + .rpm + .AppImage
### 自动化发布
- GitHub Actions
- 自动构建
- 自动发布
- 版本标签管理
## 性能监控
### 监控指标
- 应用启动时间
- 数据库查询性能
- AI分类处理时间
- 内存使用情况
### 优化策略
- 数据库查询优化
- 图片懒加载
- 虚拟化列表
- 缓存策略
## 错误处理
### 错误分类
- 用户输入错误
- 系统运行错误
- 网络连接错误
- 外部服务错误
### 处理策略
- 统一错误格式
- 友好错误提示
- 错误日志记录
- 自动重试机制
## 国际化支持
### 多语言支持
- 中文(简体): 主要语言
- 英文: 计划支持
- 其他语言: 未来扩展
### 本地化策略
- 文本外部化
- 日期时间格式
- 数字格式
- 文化适配
## 安全考虑
### 数据安全
- 本地数据加密
- 敏感信息保护
- 安全的文件操作
- API密钥管理
### 应用安全
- 输入验证
- SQL注入防护
- 文件路径验证
- 权限控制
## 未来规划
### 短期目标 (3个月)
- 完善AI分类功能
- 优化用户界面
- 提升性能表现
- 增加测试覆盖
### 中期目标 (6个月)
- 添加更多AI功能
- 支持更多文件格式
- 云端同步功能
- 插件系统
### 长期目标 (1年)
- 多平台支持
- 微服务架构
- 商业化功能
- 生态系统建设