mixvideo-v2/.promptx/project-overview.md

348 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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年)
- 多平台支持
- 微服务架构
- 商业化功能
- 生态系统建设