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

8.0 KiB
Raw Blame History

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

开发命令

# 安装依赖
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年)

  • 多平台支持
  • 微服务架构
  • 商业化功能
  • 生态系统建设