Files
life-echo/docs/doc.md

415 lines
6.0 KiB
Markdown
Raw Normal View History

# 《岁月时书》MVP User StoriesV1
2026-01-17 19:34:40 +08:00
> **视角说明**
>
> * 用户:普通用户(偏中老年,但 MVP 不特化)
> * AI回忆录助手
> * 客户端iOS / AndroidReact Native / Flutter / 原生均适用)
> * 后端API + AI 服务
> * 数据库:关系型 or 文档型均可(这里用逻辑结构描述)
---
## EPIC 0基础应用框架
### US-0.1 应用启动与默认入口
**User Story**
> 作为用户
> 我希望打开 App 后直接看到「对话列表」
> 这样我不用学习就知道从哪里开始
**前端iOS / Android**
* App 启动后默认进入 `chat-list`
* 显示 App 名称 + 副标题
* 底部导航栏可见
**后端**
* 可无登录状态返回「默认对话列表」MVP 允许匿名)
**数据库**
* `conversation`(至少一条系统内置对话)
* id
* type = `system`
* title = `回忆录助手`
* last_message
* updated_at
---
## EPIC 1对话列表chat-list
### US-1.1 查看对话列表
**User Story**
> 作为用户
> 我希望看到一个类似微信的联系人列表
> 能快速进入和 AI 的聊天
**前端**
* 列表样式(头像 + 名称 + 最近消息 + 时间)
* 默认只有一个联系人:`回忆录助手`
* 点击进入聊天详情
**后端**
* 返回用户的 conversation 列表
*`updated_at` 排序
**数据库**
* `conversation`
* id
* user_id可为空MVP
* title
* avatar_typeAI / 用户)
* last_message
* updated_at
---
### US-1.2 查看新消息预览
**User Story**
> 作为用户
> 我希望在对话列表中看到最近一条消息
> 让我知道“书有没有在变厚”
**前端**
* 单行消息预览(省略)
* 时间戳显示(今天 / 昨天 / 日期)
**后端**
* 返回 conversation 的 last_message
* 在新消息生成后更新
**数据库**
* `conversation.last_message`
* `conversation.updated_at`
---
## EPIC 2聊天详情chat
### US-2.1 进入全屏聊天
**User Story**
> 作为用户
> 我希望进入一个沉浸式聊天界面
> 就像在微信里和一个人聊天一样
**前端**
* 顶部栏:返回 + 回忆录助手 + 在线状态
* 无底部导航
* 消息列表支持滚动
**后端**
* 返回该 conversation 的消息列表(分页)
**数据库**
* `message`
* id
* conversation_id
* sender_typeuser / ai
* content_typetext / image / audio
* content
* created_at
---
### US-2.2 发送文字消息
**User Story**
> 作为用户
> 我希望能输入文字并发送
> 来讲述我的回忆
**前端**
* 文本输入框
* 有文字时显示发送按钮
* 发送后立即显示在聊天区optimistic
**后端**
* 接收用户消息
* 保存消息
* 触发 AI 回复流程
**数据库**
* `message`
* sender_type = `user`
* content_type = `text`
* content = 原始文本
---
### US-2.3 AI 自动回复并引导
**User Story**
> 作为用户
> 我希望 AI 能主动提问和追问
> 帮我把记忆说完整
**前端**
* 显示“正在输入…”
* AI 回复显示为左侧气泡
**后端**
* 将上下文消息发送给 AI
* 返回 AI 回复
* 回复内容偏引导式
**数据库**
* `message`
* sender_type = `ai`
* content_type = `text`
* metadata可选tag = 引导 / 追问)
---
### US-2.4 发送语音消息(占位)
**User Story**
> 作为用户
> 我希望能按住说话
> 像微信一样讲故事
**前端**
* 按住说话 / 上滑取消
* 本地生成音频文件
* 显示语音气泡(时长)
**后端MVP 可弱化)**
* 接收音频文件
* 返回占位文本(或不转写)
**数据库**
* `message`
* content_type = `audio`
* content = 音频文件 URL
* duration
---
### US-2.5 发送图片
**User Story**
> 作为用户
> 我希望能发老照片
> 帮助 AI 更好理解我的故事
**前端**
* 从相册选择 / 拍照
* 图片气泡展示
**后端**
* 接收图片
* 存储并返回 URL
**数据库**
* `message`
* content_type = `image`
* content = 图片 URL
* metadatawidth / height
---
## EPIC 3回忆录生成与阅读
### US-3.1 自动生成回忆录结构
**User Story**
> 作为用户
> 我希望聊天内容能自动变成“书”
> 而不是只是一堆对话
**前端**
* 回忆录 Tab 显示目录页
* 即使内容不多,也能看到章节雏形
**后端**
* 定期 / 实时整理对话
* 生成章节结构
**数据库**
* `memoir`
* id
* user_id
* title
* subtitle
* updated_at
* `memoir_chapter`
* id
* memoir_id
* title
* order
* content
* progress
---
### US-3.2 阅读章节内容
**User Story**
> 作为用户
> 我希望能像读电子书一样
> 阅读已经整理好的回忆
**前端**
* 章节标题 + 正文
* 舒适排版
* 插图内嵌展示
**后端**
* 返回章节内容HTML / Markdown
**数据库**
* `memoir_chapter.content`
* `memoir_asset`(插图)
* id
* chapter_id
* type
* url
---
### US-3.3 显示“最近更新”
**User Story**
> 作为用户
> 我希望知道最近哪一章有新增内容
> 感觉“书在变厚”
**前端**
* 目录页显示「最近更新」
* 章节进度条
**后端**
* 计算章节更新时间
**数据库**
* `memoir_chapter.updated_at`
---
## EPIC 4我的个人页
### US-4.1 查看账户状态
**User Story**
> 作为用户
> 我希望在一个地方看到我的账户和套餐
> 不影响聊天体验
**前端**
* 头像 + 昵称
* 当前套餐(免费)
**后端**
* 返回用户信息
**数据库**
* `user`
* id
* nickname
* avatar
* plan_type
---
### US-4.2 数据导出入口(占位)
**User Story**
> 作为用户
> 我希望知道我的数据是可以导出的
> 哪怕现在还不能用
**前端**
* 导出按钮(灰态)
* 提示说明
**后端**
* 返回状态:未开放
**数据库**
* 无新增MVP
---
## MVP User Stories 总览Checklist
**核心路径**
* ☑ 对话列表
* ☑ 聊天(文字 + AI 引导)
* ☑ 回忆录自动生成
* ☑ 电子书阅读体验
**增强体验**
* ☑ 图片
* ⏳ 语音
* ⏳ PDF 导出
* ⏳ 登录 / 套餐