Files
life-echo/docs/doc.md
2026-01-17 19:34:40 +08:00

415 lines
6.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.
# 《往事拾遗》MVP User StoriesV1
> **视角说明**
>
> * 用户:普通用户(偏中老年,但 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 导出
* ⏳ 登录 / 套餐