| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24/homework/15658 |
|---|---|
| 团队名称 | mood-software |
| 团队成员-学号 | 廖丞健-3124004360;梁宇轩-3124004359;吴义铭-3124004369 |
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24/ |
| 这个作业的目标 | 请写一篇博客,名字格式为:团队名称-beta冲刺 |
欢迎使用我们的软件(已有Windows、Android版本,MacOS版本正在路上!!)
仓库链接:https://github.com/pixelllip/mood-software/tree/AI_Agent-Multi-Platform
星火学伴 (Academic Aegis) - Beta 冲刺
1. 冲刺总结与问题解决
在 Alpha 阶段结束后,我们的项目虽然已经初具规模,但在用户体验、功能深度和工程化方面仍存在不少挑战。在 Beta 冲刺期间,我们针对以下核心问题进行了深度探索与优化:
1.1 AI 认知的“时效性”与“深度”问题
- 问题描述:Alpha 版本的 AI 仅限于预训练知识,无法获取实时信息(如最新的学术进展、新闻等),且对用户学习内容的理解较为碎片化。
- 探索思路:引入“联网搜索”能力,并重构 AI 提示词(System Prompt)以增强其对学习场景的感知。
- 解决过程:
- 重构了 AI 调用接口,支持
enable_search参数,让 AI 在需要时自动调用搜索引擎。 - 实现了本地/AI 驱动的关键词自动发现逻辑,使 AI 能够根据用户的对话历史自动关联知识点,实现更深度的“学习分析”。
- 引入多重定位感知:集成了 GPS 原生定位、IP 定位及高德反向地理编码服务。AI 能够感知用户所在的城市,为天气查询、本地化学习建议提供空间上下文。
- 重构了 AI 调用接口,支持
1.2 UI/UX 的平台适应性问题
- 问题描述:作为跨平台应用,在桌面端(Windows)运行时,原本的移动端布局导致大量屏幕空间浪费,缺乏层次感。
- 探索思路:实现响应式布局,并利用桌面端的大屏幕优势进行分栏显示。
- 解决过程:
- 引入了 Breakpoint 机制。当窗口宽度大于 1000 时,设置界面及相关页面自动切换为双列排版,提升信息密度。
- 新增了桌面端启动时的 JDK 环境自动检测,解决因后端缺失导致的 AI 功能失效问题。
- Android 权限深度适配:针对 Android 11+ (API 30) 引入了
MANAGE_EXTERNAL_STORAGE权限引导流程,确保 OCR 和数据管理功能在最新系统上的读写稳定性。
1.3 工程质量与历史债务
- 问题描述:项目早期包含大量 Python 脚本,与当前的 Kotlin+Dart 架构混合,导致代码库臃肿且难以维护。
- 探索思路:彻底模块化,清理冗余代码。
- 解决过程:
- 彻底删除了旧有的 Python 逻辑,将核心能力完全迁移至 Kotlin 后端。
- 对前端 Dart 代码进行了模块化分类整理。
- 编写了跨平台的自动化脚本(PowerShell/Bash),实现了一键签名、版本号修改及打包流程。
2. 项目特色功能展示
🤖 智能 AI 对话与实时联网
支持流式输出(SSE),集成模型内置搜索。无论是询问复杂的 LaTeX 公式还是最新的学术资讯,星火学伴都能从容应对。
📊 成绩管理与历史追踪
不仅支持成绩的增删改查,还引入了考试记录 (Exam Records) 机制,支持按学期、考试类型(如期中、期末、日常)分类存档。系统能通过直观的进度条和颜色分级(优秀、良好、不及格)展示学生的学业进展,并能追踪历史成绩波动。
🕙 结合学科的日程安排
系统能够根据用户提供的信息,结合用户的学科生成详实的日程安排。
🧠 深度学习分析
系统会自动从对话记录中提取学习关键词,结合日程完成情况,给出每日评分和 AI 鼓励语。
🖼️ OCR 与多模态工具
集成本地与 AI 驱动的 OCR 服务,支持附件上传与图像识别,将纸质资料一键转化为学习素材。
3. 关键模块自动化单元测试
为了确保项目的稳定性,我们为核心模块编写了 112 个单元测试,覆盖了数据模型序列化、评分算法逻辑及学科映射关系等关键环节。
3.1 测试覆盖情况
- 数据模型测试:确保 AI 配置、成绩数据、对话记录在 JSON 转换过程中准确无误。
- 评分算法测试:模拟各种“匹配条数”与“日程完成率”组合,验证评分系统(优秀/良好/合格/不合格)的准确性。
- 映射逻辑测试:验证知识点到学科的反向映射逻辑。
3.2 测试执行截图
通过 flutter test 执行,所有 112 个测试用例全部通过,确保了业务逻辑的健壮性。
团队协作记录
| 成员 | 承担工作 | 工作量 |
|---|---|---|
| 廖丞健 | 前端与后端的对接工作,持续优化用户界面 | 50% |
| 梁宇轩 | 关键词联想搜索,学习统计 | 25% |
| 吴义铭 | 通用OCR方案的实现 | 25% |
成员感想
| 成员 | 感想 |
|---|---|
| 廖丞健 | 通过本次β冲刺,我深刻认知到制作一个好用的用户界面不是能一蹴而就的。通过和组员之间的交流,我了解到用户对交互界面的实际需求是复杂多变的,把界面优化到一个易用的水平,离不开用户与开发者之间的交流反馈。 |
| 吴义铭 | 本次 Aegis Academic(星火学伴)Beta 冲刺,团队依托多线程架构分工开发,前后端密切联调,稳步落地流式 AI 与成绩管理功能。我负责基于 Tesseract 开发 OCR 识别和附件上传模块,对接团队接口完成功能整合。经过本次冲刺,我熟练掌握 OCR 落地开发,提升了接口联调与问题调试能力,也切实体会到高效团队协作对项目迭代的关键作用。 |
| 梁宇轩 | 经历了这次beta冲刺,我们又总结出了alpha冲刺之后,项目仍然潜在的问题,我们完善了项目中的杀手级功能:“学习分析”。在完成该功能时,我们根据代码修改后项目的具体效果,结合AI的帮助来不断完善,然后将该功能一步一步完成,大家分工明确,也是完成了该软件。 通过这次小组合作,我也发现原来大家一起做一个项目也能完成一个软件,一个能够让人眼前一亮的软件,也许这只是大学生活中的一次团队合作。但是肯定也会对以后工作中的合作项目打下坚实基础。总的来说,这次合作让我收益颇多,也为我的生活添上一笔色彩。 |








浙公网安备 33010602011771号