第二次团队作业
| 作业所属课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/ |
| 作业要求 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/14580 |
| 作业的目标 | 通过真实调研理解用户需求,结合智能体构思开发一款软件,并进行答辩、展示,撰写博客 |
| 团队名称 | 哈基米噢南北绿豆 |
| 团队成员学号-名字 | 102301111-周韩煜、102301112-郑隆熙、102301118-许竣阳、102301126-苏郑熙凡、102301129彭志成、102301135-李文伟、102301143-曾义山、102301243-陈文嘉,102301428-刘佳、102301517-肖垲、102301540-陈昌昊、102301543-鲍晓鹏 |
本次作业的团队分工

原型设计
-
原型总览

对于原型设计,我们使用了Figma进行,总体配合技术栈总既定的Varlet UI进行绘制,初步设计了五大基础界面:课程表、代办、主页、知识库还有设置界面。总体设计美观优雅,并符合移动端的使用需求,以下为分页面的讲解:
-
全局交互与布局
2.1 导航结构 (Navigation)
-
底部导航栏 (Bottom Navigation)
-
适用设备: 移动端 (Mobile)。
-
布局: 固定在屏幕底部,包含 5 个核心入口。
-
入口项:
-
课程表 (Curriculum): 图标
[📚] -
代办事项 (Todo): 图标
[✅] -
智能助手 (Home): 图标
[🏠](居中,建议突出显示或使用悬浮按钮样式) -
知识库 (Knowledge): 图标
[📖] -
个人中心 (Profile): 图标
[👤]
-
-
交互:
-
点击图标切换主视图。
-
当前选中项图标高亮,并显示文字标签。
-
切换时带有轻微的缩放或颜色渐变动画。
-
-
2.2 响应式策略 (Responsive Strategy)
-
移动端 (< 768px):
-
采用底部导航栏。
-
页面内容单列布局。
-
-
平板端 (768****px - 1024px):
-
底部导航栏可保留,或转为左侧收缩式图标栏。
-
内容区域采用双列布局(如:左侧列表,右侧详情)。
-
-
桌面端 (> 1024px):
-
导航栏转为左侧固定侧边栏 (Sidebar),包含完整菜单项和Logo。
-
内容区域利用宽屏优势,采用多列布局或悬浮面板。
-
2.3 全局规则
-
主题模式: 支持明亮 (Light) / 暗黑 (Dark) 模式,支持主题颜色自定义。
- 交互: 通过个人中心设置切换,或跟随系统自动切换。切换时全局颜色变量平滑过渡。
-
加载状态: 数据请求期间,页面主要内容区显示骨架屏 (Skeleton) 或加载转圈 (Loading Spinner)。
-
错误处理: 网络请求失败或数据异常时,显示统一的空状态 (Empty State) 或 Toast 提示,并提供“重试”按钮。
-
功能模块原型设计
3.1 课程表模块 (Curriculum)

界面描述
-
周视图 (Week View):
-
顶部显示当前周次(如“第 5 周”)。
-
主体为表格布局,横轴为周一至周日,纵轴为课程节次。
-
课程卡片填充在对应网格中,不同课程使用不同颜色区分。
-
-
日视图 (Day View):
-
顶部显示日期选择器。
-
主体为时间轴列表,按时间顺序展示当日课程。
-
课程卡片下方穿插展示该时间段相关的 Todo 任务。
-
交互设计
-
视图切换: 点击顶部切换按钮或在屏幕上左右滑动,在周视图和日视图之间切换。
-
查看详情: 点击课程卡片,弹出模态框 (Modal) 显示课程详细信息(教室、教师、考勤要求等)。
-
添加作业:
-
在日视图的课程卡片上点击“添加作业”按钮。
-
跳转: 自动跳转至 代办事项添加页。
-
预填: 自动填充关联的课程名称作为标签,截止时间默认为下次上课前。
-
规则描述
-
当前课程高亮: 根据系统时间,自动高亮当前正在进行或即将开始的课程。
-
冲突检测: 用户手动添加课程时,若时间段与现有课程重叠,弹出确认提示。
3.2 智能代办模块 (Smart Todo)

界面描述
-
列表视图:
-
顶部包含搜索栏和分类筛选(全部、学习、生活、紧急)。
-
列表项展示:复选框、标题、截止时间、优先级标签。
-
-
四象限视图:
-
将屏幕分为四个区域:重要紧急、重要不紧急、紧急不重要、不紧急不重要。
-
任务以小卡片形式分布在对应象限。
-
-
快速添加栏: 底部悬浮输入框,提示文本“输入任务,支持自然语言...”。
交互设计
-
完成任务: 点击复选框,任务项出现删除线动画并下沉至底部或消失(取决于设置)。
-
自然语言输入:
-
用户输入:“明天下午三点交数学作业”。
-
系统反馈:实时解析出 时间 (明天 15:00) 和 内容 (交数学作业),并高亮显示解析结果供用户确认。
-
-
拖拽排序: 长按任务项,可上下拖动排序;在四象限视图中,可拖动任务改变象限属性。
规则描述
-
智能排序: 默认按
优先级 > 截止时间 > 创建时间排序。 -
过期处理: 截止时间已过的任务,时间显示标红,并自动归类到“已过期”分组。
3.3 智能助手模块 (Home - AI Chat)

界面描述
-
聊天区域: 占据主要屏幕空间,气泡式对话流。
-
快捷操作区: 输入框上方横向滚动芯片 (Chips),包含:拍照搜题、上传文件、导出记录、学习建议。
-
输入区域: 包含文本输入框、语音输入按钮、发送按钮。
交互设计
-
语音交互:
-
按住“语音输入”按钮说话,界面显示声波纹动画。
-
松开按钮,语音自动转为文字填入输入框,用户确认后发送。
-
-
导出到知识库:
-
长按某条消息或点击右上角“选择模式”。
-
勾选多条对话记录。
-
点击“导出”按钮,跳转至 知识库-笔记编辑页,内容自动填充为Markdown格式。
-
-
快捷****指令: 点击“拍照搜题”,调用系统相机,拍照后自动发送图片并附带OCR识别请求。
规则描述
-
上下文记忆: AI 需保留当前会话的上下文信息,支持多轮对话。
-
流式输出: AI 回复时,文字应逐字显示(打字机效果),减少用户等待焦虑。
3.4 知识库模块 (Knowledge)

界面描述
-
三级导航: 顶部 Tab 切换 “官方库”、“社区”、“我的笔记”。
-
分类树/标签: 左侧或顶部提供分类筛选。
-
笔记列表: 展示笔记卡片,包含标题、摘要、标签、最后修改时间。
-
笔记详情: Markdown 渲染页,右下角悬浮“编辑”和“批注”按钮。
交互设计
-
智能导入:
-
从聊天记录导入时,系统自动生成标题(基于内容摘要)。
-
用户可对导入内容进行二次编辑、添加标签。
-
-
批注功能:
-
在详情页长按选中文本,弹出菜单选择“批注”。
-
输入批注内容,原文该段落显示高亮下划线。点击可查看批注详情。
-
-
社区互动: 在“社区”Tab下,点击笔记可进行点赞、收藏、评论。
规则描述
-
权限控制:
-
“我的笔记”仅自己可见。
-
“发布到社区”需用户主动操作,并经过敏感词过滤。
-
-
版本控制: 每次保存编辑,系统自动生成一个版本记录,支持查看历史版本和回退。
3.5 个人中心模块 (Profile)

界面描述
-
用户信息卡片: 展示头像、昵称、签名。
-
数据仪表盘: 图形化展示“本周学习时长”、“笔记数量”、“Todo完成率”。
-
功能列表: 设置、主题切换、关于我们、退出登录。
交互设计
-
编辑资料: 点击用户信息卡片进入编辑页,支持修改头像和昵称。
-
主题切换: 点击“主题”开关,实时切换应用配色。
规则描述
-
数据同步:
-
应用启动时自动尝试同步云端数据。
-
本地修改后,防抖触发自动保存同步。
-
概要设计
UML设计
课程表模块
-
多视图课程管理 课程表模块支持周视图和日视图切换,用户可以根据自己的需求灵活查看一周或某一天的课程安排。每个课程都以卡片形式展示,包含时间、地点、颜色标识等信息,方便用户快速识别和管理。
-
作业与待办联动 用户可在课程详情中直接添加作业,并自动同步生成待办事项。作业支持截止日期设置和完成状态标记,所有作业与课程、待办事项实现数据关联,确保学习任务有序推进。
-
课程提醒与笔记关联 课程表模块支持课程时间提醒,用户可设置上课前的提醒,避免错过重要课程。同时,课程可关联知识库笔记,方便用户在学习过程中记录重点内容,实现课程与知识的无缝衔接。
-
高效课程管理体验 通过弹窗快速添加课程、编辑课程信息和删除课程,用户可以高效地维护自己的课程表。所有操作均支持移动端和桌面端自适应,保证流畅的使用体验。
类图

用例图

智能代办模块
-
四象限任务管理 智能代办模块采用重要性与紧急性矩阵,将所有待办事项自动归类到四象限,帮助用户明确优先级,合理安排学习和生活任务。用户可一目了然地查看各类任务分布,提升时间管理效率。
-
AI优先级与进度追踪 每个待办事项支持AI优先级推荐,结合任务属性智能排序,帮助用户聚焦最关键的事项。待办项支持进度条展示,用户可实时更新任务完成度,直观掌握任务进展。
-
番茄钟专注管理 模块集成番茄钟功能,用户可针对任意待办事项启动专注计时,系统自动记录专注与休息周期。番茄钟完成后,任务进度自动更新,帮助用户养成高效专注的学习习惯。
-
数据统计与分析 智能代办模块提供任务统计功能,包括总任务数、完成率、平均进度等数据分析,帮助用户全面了解自己的任务执行情况。未来还将支持图表分析和趋势展示,助力用户持续优化学习计划。
类图

用例图

智能助手模块
我们的智能助手模块是一个高度智能化、功能丰富的交互系统,旨在为用户提供高效、便捷且个性化的服务体验。核心功能如下:
-
多轮对话能力
本模块支持多轮对话,能够与用户进行流畅且连贯的交流。无论用户提出问题、请求帮助还是进行日常闲聊,智能助手都能准确理解并给出恰当的回应,确保对话的自然性和连贯性。
-
多模态输入
用户可以通过语音和图片与智能助手进行交互,无需手动输入文字。这一功能不仅方便快捷,还特别适合在运动或双手忙碌时使用,极大地提升了用户体验。
-
聊天记录管理
智能助手支持聊天记录管理,用户可以方便地查看历史对话,并选择将重要的对话片段导出到知识库中。这一功能不仅帮助用户整理和回顾重要信息,还能将知识沉淀下来,方便后续查阅和分享。
-
社区上传功能
用户可以将当前会话一键上传到社区,与其他用户分享交流。这一功能促进了用户之间的互动和知识共享,形成了一个积极的学习和交流环境。
类图
我们可以通过类图来描述系统中的类、接口以及它们之间的关系。如下所示:

用例图
我们可以通过用例图描绘系统的参与者(Actor)和用例(Use Case)以及它们之间的关系。如下图所示:

知识库模块
类图

用例图

个人中心模块
类图

用例图

数据库设计
团队协作记录
前端部分
后端部分
协作过程记录


仓库贡献记录

项目管理平台
飞书+github
原型设计展示
https://www.figma.com/design/inRbUvJINRfafvXSRkzvG5/Knowlesail?node-id=0-1&t=K86XBcb70qTXdKE9-1
后端设计展示
-
整体架构概览

-
后端内部设计
-
分层结构
-
host服务
-
handler:接收HTTP协议,把请求转成领域调用 -
application:业务逻辑集中地(事务入口也一般在这里),调用repository的接口与外部client的方法进行逻辑的编排 -
repository:通过工厂模式封装对外部依赖的访问的接口 -
infra:对repository层接口的实现
-
-
mcp_server服务
-
API Handler由mcpCoreServer进行接管,只需注入tool即可 -
Internal service逻辑与host大体相同
-
-
ORM & 事务设计
-
gorm-gen:
-
自动生成模型和 query,避免手写 struct,字段直接跟 DB 同步
-
created_at / updated_at / deleted_at通过ORM自动处理
-
-
db.DB[T]泛型封装:-
为什么要用泛型 + context:
-
统一事务管理;
-
任何仓储只需要
db.Get(ctx),不用管现在是事务还是非事务。
-
-
Transaction(ctx, func(ctx) error)-
上层只管开事务;
-
下层 repository 自动拿到 tx(透过 ctx)
-
-
-
其他设计
-
安全:
-
我们的登录完全与福州大学OAuth对接,直接通过教务处学号密码来登录,同时也实现了对教务处的客户端模拟,可以直接向教务处发请求
-
通过教务处下发的id与cookie可以获得一对双token,通过双token才能访问项目内的其他接口
-
-
日志 & 监控:
采用了多个core的Tee,实现一个logger拥有两种不同的输出模式来进行分级别输出,我们是把error等级单独输出在一个文件中,另一个文件是包含所有(core还可以指定不同的输出形式,console/file/otlp,实现多环境通用),并且对数据库的日志接口implement转化为zap统一输出,每到0点会替换logger实例来重定向输出文件,防止日志堆积。未来可接入otel+zap->uptrace,用 OpenTelemetry 做链路追踪(traces)/指标
-
配置管理:
使用 viper 加载 config.yaml,高效读取并且可扩展为热更新(更偏向于集群模式下直接重启节点来进行更新)
-
性能 & 扩展:
-
go语言天生高并发的特性使得其在小机器也能承受一个较高的QPS,并且占用内存极小,对服务器友好
-
选用的HTTP框架hertz是字节跳动的高性能框架,相比其他的如gin更高效
-
数据库对高频访问的内容添加索引,并且在设计时尽可能避免索引失效的情况,同时对于热点内容直接通过redis缓存,降低数据库压力
-
未来可以通过搭建集群,重构微服务架构,分库分表来实现扩展,以面对更大的QPS
-
其他要求
-
github团队仓库链接:
-
团队名称_系统设计说明书.pdf:哈基米噢南北绿豆组_系统设计说明书
-
团队名称_数据库设计说明书.pdf:哈基米噢南北绿豆组_数据库设计说明书
-
原型在线预览链接:https://www.figma.com/design/inRbUvJINRfafvXSRkzvG5/Knowlesail?node-id=0-1&t=K86XBcb70qTXdKE9-1

浙公网安备 33010602011771号