BlinkLife 项目知识库 — 覆盖产品流程、工程架构、设计规范、数据定义和测试策略。
项目简介
BlinkLife 是一款运动视频打点剪辑应用。用户在运动中通过 BLE 蓝牙外设(智能指环/按键)或手表一键标记精彩瞬间,运动结束后自动生成高光集锦视频。
| 属性 | 值 |
|---|
| 客户端技术栈 | Flutter (Dart ^3.9.0),iOS + Android 双平台 |
| 后端技术栈 | NestJS + PostgreSQL (Prisma ORM) |
| 本地数据库 | SQLite (sqflite),当前 v13 |
| 视频处理 | FFmpegKit |
| 打点文件格式 | .blink (AES-256-CBC + HMAC-SHA256) |
| 设计语言 | iOS 26 Liquid Glass |
| 代码规模 | 18 页面 · 14 服务 · 29 组件 · 20 工具 · 6 模型 |
文档导航
产品流程
| 文档 | 说明 |
|---|
| 录制流程 | 相机录制 + BLE/手表/手势打点 + 后台保存 |
| 回放流程 | 视频回放 + 三层时间轴 + 事件编辑 + 竖横版全屏 |
| 剪辑链路 | 单事件/批量/合集剪辑 + 批次管理 |
| 复盘页 | AI 复盘分析(规划中) |
工程架构
| 文档 | 说明 |
|---|
| 架构总览 | 分层架构 + 模块关系 + 核心数据流 |
| 时间轴模型 | 三层 CustomPainter + 磁吸算法 + 双 Model 状态分层 |
| 事件模型 | DotRecord 结构 + 动作类型 + 时间对齐 + 筛选 |
| .blink 文件格式 | v1/v2 加密协议 + 明文兼容 + 安全设计 |
| 剪辑任务批次 | task_id 机制 + 后台任务管理器 + 状态机 |
| FFmpeg 管线 | 剪辑/合集命令模板 + 约束 + 性能 |
| 蓝牙通信 | BLE + MethodChannel + 保活策略 |
| 数据库 Schema | v13 全表定义 + 迁移历史 |
| 云同步架构 | JWT 认证 + API 同步 + 游客 claim |
| 状态管理 | PlaybackSession + ReviewDetailData + ChangeNotifier |
设计规范
数据定义
与 CLAUDE.md 的关系
| 维度 | CLAUDE.md | docs/ Wiki |
|---|
| 定位 | AI 编码指令手册 | 知识沉淀与架构理解 |
| 内容 | 规则(禁止/必须/约束) | 解释(原理/权衡/为什么) |
| 粒度 | 代码级(文件名/方法/模板) | 概念级(模块/数据流/状态机) |
| 更新 | 每次迭代同步 | 架构变更时更新 |