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