第二次团队作业

一、作业基本信息

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/14580
这个作业的目标 在第一次作业需求分析的基础上,完成 LifeFlow 项目的原型设计与概要设计
团队名称 我真没招了
小组成员与学号 052303140陈琨辉 102301614肖铭昊 102301619梅宇杰 102301616 王汉森 102301615吴同堃

二、原型设计

https://modao.cc/proto/MMfjqv9t5kfepAINkOgxr/sharing?view_mode=device #LifeFlow-分享
快速预览链接:
https://sureyoung86-byte.github.io/LifeFlow0/

原型整体包含以下主要模块:

模块 功能简介
登录 / 注册页 模拟用户身份切换与本地存储登录状态
会话页 作为“多机器人入口”,支持上传文件、粘贴文本、生成摘要
任务计划页 展示任务卡片,支持新增、编辑、导入、导出、DOD 勾选
专注模式页 番茄钟倒计时,任务联动与专注完成统计
ESP32 配置区 预留设备联动接口,模拟 LED 控制

2.2 登录 / 注册页

  • 提供登录与注册 Tab 切换;
  • 模拟用户系统(localStorage 缓存),支持“记住我”选项;
  • 登录成功后进入主工作区,右上角显示用户名。

微信图片_20251120215110_527_129

微信图片_20251120215114_528_129


2.3 会话页面(信息提要)

  • 左侧侧边栏显示功能菜单与历史会话;
  • 主区包含输入区与消息气泡区,模拟人机对话;
  • 上传功能支持多文件进度显示;
  • 顶部可切换不同机器人(信息提要 / 任务化 / 分析);

微信图片_20251120215136_529_129

2.4 任务计划页面(任务化生成)

  • 从会话提要导入要点自动生成任务;
  • 每个任务含子任务、优先级、DOD 状态;
  • 支持任务导入 / 导出 / 编辑 / 删除。

微信图片_20251120215140_530_129

2.5 专注模式页面(番茄钟)

微信图片_20251120215144_531_129

三、概要设计

3.1 系统整体架构概述

本项目采用「前端 SPA + 后端 REST API + 外部 LLM Provider + 可选硬件设备」的整体架构。前端使用 Vue3 实现会话、任务、专注和复盘等页面;后端使用 FastAPI/Node 提供总结生成、任务化、专注会话和设备同步等接口;数据库用于持久化会话、文档、任务和专注记录;ESP32 设备用于显示专注进度。


3.2 UML 设计

3.2.1 用例图

用例图

  • 主要参与者:普通用户、ESP32 设备、LLM Provider;
  • 主要用例:信息提要、任务化生成、专注模式、会话与隐私管理、复盘与导出、Provider 配置等。

3.2.2 活动图(业务流程)

活动图

活动图从「选择会话 → 上传文本/文件 → 生成提要 → 一键任务化 → 进入专注 → 导出/清空」的主流程描述了用户在 LifeFlow 中的一次完整使用过程。

3.2.3 类图(系统结构)

UML类图

  • User / Session / Document / Summary / KeyPoint / Task / FocusSession / Device 等实体类;
  • DocumentService / SummaryService / TaskService / FocusService / ProviderRouter 等服务类。

3.2.4 时序图(关键场景)

LLM提供路由

任务管理与回顾视图

文件上传与总结

专注会话与设备同步

  • Provider 路由调用 LLM 的时序图。
  • 文件上传与总结;
  • 任务管理与回顾视图;
  • 开始专注会话与设备同步的时序图;

3.2.5 协作图(对象协作)

协作图

协作图展示了 User、前端、后端、Provider 路由、LLM Provider、设备之间的消息交互关系,突出消息编号和对象依赖。


3.3 数据库设计

3.3.1 ER 图

ER图

3.3.2 关系数据模型

关系模型

3.3.3 对象关系映射(ORM)

对象关系映射

四、团队协作记录

4.1 开发计划时间安排

说明:从上周开始统计,把本次第二次团队作业(11.20 截止)前后的工作,以及后续正式编码阶段都写在同一张规划表中。

周次 时间范围 主要任务 里程碑 / 产出
第1周 2025-11-11 ~ 2025-11-17 - 回顾第一次团队作业的需求分析文档;
- 对 LifeFlow 的核心场景进行细化(信息提要、任务化、专注模式、复盘);
- 确定整体技术栈方案(前端 Vue3 + Vite,后端框架、数据库、ESP32 方案等);
- 画出原型的低保真草图,确定主要页面和信息结构
- 统一的需求清单 & 使用场景列表;
- 低保真原型草稿;
- 明确每个人大致分工方向
第2周 2025-11-18 ~ 2025-11-24 - 重点完成本次作业要求的原型设计和概要设计;
  · 11.18–11.20:完善墨刀/HTML 原型、UML 图(用例/活动/类/时序/协作)、系统设计说明书、数据库设计说明书、博客;
  · 11.20 前完成第二次团队作业提交;
- 11.21 之后开始搭建前后端代码骨架(创建仓库、基础路由、接口占位)
- 第二次团队作业按时提交(原型 + 概要设计 + 博客);
- GitHub 仓库初始化,GitHub Pages 展示原型;
- 前后端项目基本骨架搭好
第3周 2025-11-25 ~ 2025-12-01 - 前端实现核心页面:会话页、任务计划页、专注模式页的基础交互;
- 实现从前端到后端的基础 REST 接口调用(例如 /summarize 的 Mock 版本);
- 按照设计说明书逐步把 UML 中的类和接口落到代码结构里
- 能在浏览器中完整跑通“上传文本/文件 → 返回假数据提要 → 生成任务”的前端 Demo;
- 前后端接口风格基本稳定
第4周 2025-12-02 ~ 2025-12-08 - 后端对接实际 LLM Provider / MCP 路由;
- 实现任务生成、专注会话记录、会话持久化/不落盘模式等核心业务逻辑;
- 按数据库设计说明书接入真正的数据库读写;
- 编写基础单元测试与接口测试脚本
- 可以从前端真实调用后端完成“提要 + 任务化 + 专注记录”闭环;
- 关键表结构落库并通过测试
第5周 2025-12-09 ~ 2025-12-15 - ESP32 设备联调(LED/进度显示);
- 前后端 + 硬件一体化联调、修复 Bug;
- 补充日志、异常处理与性能优化;
- 整理最终演示版本和说明文档
- 能演示“Web 专注模式 ↔ ESP32 设备同步进度”;
- 系统达到可演示 / 可验收状态,准备后续答辩材料

4.2 分工安排

说明:下面先用“成员1~成员5”占位,人名你直接改成 “学号-姓名” 即可。

成员 角色 负责模块 主要工作内容
陈琨辉 队长 / PM 整体把控 & 对外沟通 负责与老师/助教对接作业要求;拆解任务并分配给各成员;把需求文档、系统设计说明书、数据库设计说明书和 UML 统一整合;把最终文档和原型链接整理到 GitHub 仓库和博客中。
肖铭昊 前端负责人 前端原型 & 页面实现 负责墨刀/Axure 前台原型绘制(会话页、任务看板、专注页、复盘页);搭建 Vue3 项目骨架;实现主要页面的前端交互(上传文件、任务拖拽、番茄钟 UI、复盘展示等)。
梅宇杰 后端负责人 API 设计 & 核心业务 负责后端技术选型和项目初始化;设计并实现核心接口(summarize、任务化、专注会话、导出等);对接多 Provider 路由和 LLM 调用;与前端对接口协议,保证联调顺畅。
吴同堃 UML & 文档 架构设计 & 设计说明书 负责整理需求并抽象出用例图、活动图、类图、时序图、协作图;撰写《系统设计说明书》和《数据库设计说明书》初稿;在博客中补充概要设计章节的文字说明和 UML 图配图说明。
王汉森 硬件 & 测试 ESP32 & 测试用例 负责 ESP32 设备方案(进度显示)、简单原型搭建和接线设计图;联调专注模式与设备同步接口;设计并执行基础测试用例(上传→提要→任务化→专注→导出全流程),在博客中记录测试结果和问题反馈。

4.3 协作过程记录

协作


五、后端设计展示

5.1 后端整体模块图

后端设计

图 5-1 LifeFlow 后端模块设计图说明:

  • APIController(接口入口)

    • 统一接收前端和设备发来的 HTTP 请求;
    • 负责参数校验、调用 AuthService 做鉴权;
    • 根据路径分发到 DocumentService、SummaryService、TaskService、FocusService、DeviceService 等业务服务。
  • AuthService(用户 & 设备鉴权)

    • 校验用户 token 和设备 token;
    • 控制只有合法用户/设备才能访问敏感接口(如清空会话、推送进度等)。
  • DocumentService(文档处理)

    • 负责保存上传文档的元数据和内容;
    • 对 PDF/Word/TXT 做文本抽取,为后续提要生成提供输入;
    • 根据需要访问数据库和缓存(如对重复上传的文件命中缓存结果)。
  • SummaryService(提要生成)

    • 接收 DocumentService 或前端发来的文本内容;
    • 调用 ProviderRouter 选择合适的 LLM(如 DeepSeek、Kimi 等),生成“主旨 + 要点 + 置信度”;
    • 将摘要结果写入数据库/缓存,供前端展示和任务化使用。
  • TaskService(任务化生成)

    • 根据摘要中的 KeyPoint 自动生成 Task(包含 title、priority、deps、DOD);
    • 计算并推荐“今日三件事”和时间块(startAt/endAt);
    • 提供任务列表查询、状态更新(完成/未完成)等接口。
  • FocusService(专注会话)

    • 管理每一次番茄钟专注会话:开始、暂停、恢复、结束;
    • 按时间片记录专注进度,为前端和设备查询提供数据;
    • 当绑定了设备时,会通过 DeviceService 同步当前进度。
  • DeviceService(设备管理与进度推送)

    • 管理 ESP32 设备的注册、绑定用户/会话;
    • 提供查询设备在线状态的接口;
    • 接收 FocusService 的进度更新请求,将 0–100% 进度推送到设备端(例如通过 HTTP/MQTT)。
  • ProviderRouter(多模型路由)

    • 维护可用 LLM Provider 列表(DeepSeek/Kimi/文心 等);
    • 根据配置或策略(优先级、负载均衡)选择具体的 Provider;
    • 封装不同 Provider 的调用细节,对上统一暴露 generateSummary 等接口。
  • CacheService / Redis(缓存层)

    • 对高频读写的数据(如摘要结果、任务列表)进行缓存;
    • 对重复文档的提要请求做结果复用,减少 LLM 调用次数和费用。
  • 数据库(MySQL 等)

    • 按照《数据库设计说明书》中的 ER 图和关系模型,持久化存储 User、Session、Document、Summary、KeyPoint、Task、FocusSession、Device 等实体;
    • 支持按用户→会话→任务/专注记录的查询路径,用于前端界面展示与复盘统计。

六、仓库链接

6.1 仓库与文档链接


posted on 2025-11-20 22:01  SureyoungOuO  阅读(6)  评论(0)    收藏  举报

导航