项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2023北航软件工程 |
这个作业的要求在哪里 | 团队项目-Beta阶段项目展示 |
我在这个课程的目标是 | 学习软件工程技术,完成团队开发流程 |
这个作业在哪个具体方面帮助我实现目标 | Beta阶段开发 |
(一)项目亮点
一、项目管理
团队是如何进行项目管理的?
我们使用coding平台作为代码仓库与项目协作管理平台。项目采用前后端分离模式开发,使用两个issues集合,分别进行前后端的任务计划与管理
这是coding的任务协作看板,具有两个对进度管理很有用的功能:
-
支持为任务增加父子的层级关联,整个任务看板可以以树状视图展现,利于将不同方面的父任务,划分更细粒度的子任务,体现敏捷开发的原则。
-
能够自动生成任务的甘特图,在任务进度管理时能够清晰直观地复盘与规划。
此外,coding平台支持多种基于代码仓库的数据统计版块,为我们在进行贡献分分配的任务量衡量方面提供了一定的参考依据。
团队成员如何沟通和对接的?有什么记录留存?
(一)例会
项目的前期个人开发阶段,主要进行线上会议,讨论本阶段开发问题,明确下阶段任务。我们留存了六次线上会议的录屏,帮助不能参会的同学了解项目进展,同时用来进行会议总结。
项目的前后端对接与部署阶段,进行全员线下的集中开发,将对接较为复杂的模块例如语音对接线下讨论,对接效率较高,线下推进比较顺利。
(二)前后端对接
apifox接口管理与测试,Beta阶段一共完成34个接口文档,约束前后端接口的规范性。同时在开发初期,前后端使用它进行各自的测试,避免开发调试时进度不统一的问题,保证了个人开发的代码在交付到对接阶段时,都是经过充分调试的、可信赖的代码,保证了代码对接阶段的高效。
前端仓库项目中将接口统一在frontend/src/request/api/
目录下管理,将参数名及返回数据格式以注释形式表明,方便前后端统一格式。此外,前端项目在frontend/src/request.js
中统一request的创建发送和response的拦截,方便前端随环境的变化统一替换baseURL。
团队项目的实际进展如何(拷贝那些 scrum 过程中的燃尽图即可)?在项目管理中,scrum的燃尽图是如何真实反映项目的状态的?或者燃尽图美化了状态?
整体进度较为平稳,测试周结束后能够及时交付。在Beta开发中期进度较为落后,原因是第一周有实验考试拖延一定进度,在第二周队员们及时沟通交流并进行线下对接,第二周项目进展顺利,按时进入Beta测试周。
在任务中,我们存在issue的实时增删,包括增加新需求引入的新issue,以及对于一些不合理/重复/放入beta阶段的issue的删除。在Beta阶段整体完成后,结合coding平台对issue的每日完成记录,去掉上述因素影响后,最终Beta阶段项目的燃尽图较为合理。
二、用户场景
预期的典型用户场景
Beta阶段新增典型用户及典型场景
用户信息 | 用户情况 |
---|---|
姓名 | 羽织波右助 |
用户身份 | 某学院大一学生 |
用户情况 | 刚上大学,希望学好英语,毕业后能和哥哥一样前往海外留学深造。但是苦于英语学习过程枯燥,难以坚持。同时是个资深二次元。 |
用户痛点 | 对语言学习无感,希望能在学习过程中增加一些自己兴趣相关的东西,从而能坚持学习英语。 |
典型场景1 | 右助完成今日份学习后,感到有些疲惫。这时他进入"故事模式"生成一段故事,右助发现这篇故事是在最近刚看的动漫的背景下编写的。于是右助带着兴趣读完这篇故事,不知不觉复习了今天学习的单词。 |
典型场景2 | 右助最近在看《火影忍者》,每天看完后登陆平台和Kaleido交流剧情。一段时间后,右助惊讶地发现,自己能够用英文很顺畅地表达想法了。 |
用户信息 | 用户情况 |
---|---|
姓名 | 金慕研 |
用户身份 | 计算机学院研一学生 |
用户情况 | 辛苦考上研究生,但苦于论文中各种专业词汇,论文阅读过程极其痛苦。 |
用户痛点 | 决心学习研究方向相关的专业词汇,但是市面上没有一种软件提供相关专业的词单。金同学面对论文中整篇的生词感到无力,埋怨错的不是他。 |
典型场景1 | 金同学打开软件,进入"单词表",点击"新建单词本"并上传一篇文献后,发现文献中大量专业词语被提取出来生成词单,他进行一段时间学习后,对自己的科研又重新燃起希望。 |
典型场景2 | 金同学最近对另一个研究方向产生兴趣,为防止再次因为语言问题看不懂文献,他决定提前学习该方向的相关单词。金同学打开软件,进入"单词表",点击"新建单词本"并设置一系列该研究方向相关的关键词后,得到了该研究方向的单词本。学完这些单词,金同学发现自己不怎么使用翻译软件,也能读懂新方向的论文了。 |
用户信息 | 用户情况 |
---|---|
姓名 | 涂间埋 |
用户身份 | 参加完高考的准大学生 |
用户情况 | 一名游戏爱好者,最近喜欢上国外的某团队竞技游戏。 |
用户痛点 | 小埋没有接触过国外游戏交流术语,同时对口语缺乏自信,因此她很难和队友及时沟通战术,这常常导致她输掉游戏。小埋非常难受,想学习一些游戏交流用语,但没有学习渠道。 |
典型场景1 | 小埋在"个人信息"页面添加某游戏标签,并生成该游戏相关单词的词单。小埋发现相关例句非常符合自己的游戏场景,学习到如何跟队友沟通战术。 |
典型场景2 | 小埋在"聊天模式"中,通过语音输入和Kaleido交流该游戏,逐渐熟练用英文表达自己的想法。在一次游戏中小埋勇敢开麦用英文交流战术,发现胜利变得很简单。 |
Alpha阶段典型用户与典型场景
姓名 | 小新 |
---|---|
用户身份 | 大一新生 |
年龄 | 18 |
用户所占市场比例 | 20% |
用户情况/个人英语水平 | 刚完成高中学业不久,高考英语水平 |
用户动机 | 脱离中学教育模式,开始自学英语 |
使用习惯 | 没有固定规律,有时间学英语时就用 |
支付意愿 | 学生群体付费意愿较低 |
产品期望 | 能够辅助培养自己自学英语的水平 |
应用情景 | 场景:有时间时学习一些新单词 收获:掌握单词释义,同时通过语境等加深印象 |
姓名 | 谷哥 |
---|---|
用户身份 | 即将出国的外企员工 |
年龄 | 30 |
用户所占市场比例 | 15% |
用户情况/个人英语水平 | 有一定的英语基础,日常工作中有英语使用需求 |
用户动机 | 满足商务会话、日常会话需求 |
使用习惯 | 平时日常巩固,要出国前适当突击 |
支付意愿 | 如果对英语水平(尤其是口语)有所提升则愿意消费 |
产品期望 | 提升口语水平,能够熟练进行日常英语会话 |
应用情景1 | 场景:学习商务中可能用到的词汇以及进行对应的对话训练 收获:熟悉商务对话 |
应用情景2 | 场景:日常常用词学习与训练 收获:锻炼日常英语交流能力 |
姓名 | 阿美 |
---|---|
用户身份 | 有美国留学意愿的学生 |
年龄 | 20 |
用户所占市场比例 | 25% |
用户情况/个人英语水平 | 大学四级/六级水平 |
用户动机 | 满足出国的英语要求 |
使用习惯 | 有规划的每日使用学习 |
支付意愿 | 愿意支付一定费用(和出国求学比消费较少) |
产品期望 | 满足托福等应试要求,并培养英语会话水平 |
应用情景1 | 场景:学习单词时同时学习阅读写作时对应的语境 收获:掌握单词在具体语境下的使用,从而提高GRE成绩 |
应用情景2 | 场景:通过对话学习单词的使用 收获:能够将单词运用到日常学习交流中 |
姓名 | 吕笑 |
---|---|
用户身份 | 初入某领域的科研人员 |
年龄 | 22 |
用户所占市场比例 | 5% |
用户情况/个人英语水平 | 英语水平能够满足日常使用和基础阅读, 但是对相关文献中的专业领域内的专有名词比较生疏 |
用户动机 | 更好的更快速的理解记忆领域内的专有名词以及用法 |
使用习惯 | 在阅读文献时边阅读边搜索专有名词,在闲暇时间能够整理理解单词本中的 |
支付意愿 | 学生收入有限,支付意愿比较低 |
产品期望 | 能够掌握领域内比较常见的专有名词,阅读文献时没有阅读障碍 |
应用情景1 | 情景:阅读一篇文献时,边阅读边搜索专有名词并添加到单词本 收获:整理一部分专有单词,能够及时复习以便更好的理解文献 |
应用情景2 | 情景:在闲暇时间生成领域内其他专有单词更深入的了解领域内专有名词。 收获:更快速的适应科研工作 |
姓名 | 马田 |
---|---|
用户身份 | 应对考试的学生 |
年龄 | 21 |
用户所占市场比例 | 25% |
用户情况/个人英语水平 | 英语水平较差,但是可以有比较长的时间周期内坚持学习和练习的意愿,希望能提高自己的英语水平 |
用户动机 | 提升阅读写作听力等应试方面的能力 |
使用习惯 | 会每天投入固定时间练习英语 |
支付意愿 | 学生收入有限,支付意愿比较低 |
产品期望 | 能够高效练习英语并最终提高英语成绩 |
应用情景1 | 情景:背单词时同时背诵近义词、反义词等相关词汇 收获:背诵更多的单词并加深单词的印象 |
应用情景2 | 情景:用已经背诵过的单词生成相关测试,检验背单词的效果同时练习阅读能力 收获:更深刻的记忆单词,并提高了阅读能力 |
应用情景3 | 情景:生成范文 收获:提高写作能力 |
姓名 | 田黑土 |
---|---|
用户身份 | 英语专业学生,有未来继续从事相关领域学习研究的意愿 |
年龄 | 20 |
用户所占市场比例 | 10% |
用户情况/个人英语水平 | 专业四级 |
用户动机 | 1.满足各类应试需求 2.提高英语阅读、写作等综合水平(非应试需求) 3.满足研究需要 |
使用习惯 | 每天会投入较长时间学习英语,但需求比较琐碎,使用某一特定功能(比如背单词)的时长不定 |
支付意愿 | 学生收入有限,支付意愿比较低,但在所需功能/资源必要且较为优惠(如软件词库专业性较强,市面上没有其他可替代资源或价格明显低于类似资源)的情况下愿意支付 |
产品期望 | 有语言学专业词汇等学科专业性较强的词库、CATTI热点词条等针对(受众相对较小的)应试需求的词库;有记忆曲线和默写测试功能,但复习和默写功能可自愿开启(即不需要每天先复习后才能学新词/学到的词默写检查后才能开始学下一个);可背记词组,但词组在复习时可以与单词分开(比如单词可能需要默写但词组很长又基本都是认识的词,默写很浪费时间);有词根词缀、语境记忆、联想记忆等多维助记法;对于原版只有顺序版的词书,可自主选择随机乱序排列;最好可以用户自主创建词库并共享 |
应用情景1 | 情景: 阅读英文原著时,利用单词app查找生词并加入生词本 收获:借助语境增大词汇量,积累原汁原味的英文表达 |
应用情景2 | 英语写作中利用单词app查找表达某一含义(如含有某些关键词)的例句 收获:使英文表达更地道 |
项目发布的功能
Beta版本新功能和特性
1、个性化词单
-
文献自动提取:
新增词单的第三种生成方式:用户导入pdf文件,平台可以智能从文章中提取单词,生成相应词单。生成词单后,支持用户对词单进一步筛选,删除较为简单的词
-
关键词生成:
新增词单的第四种生成方式:用户可以输入关键词,平台会根据关键词生成定制化词单。生成词单后,支持用户对词单进一步筛选,删除较为简单的词
-
用户上传词单到平台:
在Beta阶段为了向用户提供更多优质的单词书,我们向用户开放了上传个人词单到平台的功能,用户点击提交,在审核通过后即可分享私人词单至平台,供所有用户拉取学习
当用户提交词单上传申请后,管理员可以查看用户上传的词单进行审核
管理员可以点击查看详情,查看用户上传的词单的具体内容信息
当拒绝用户的此单上传申请后,可以向用户发送未通过审核的原因,给予用户反馈帮助他修正
审核完成的词单,管理员端可以查看历史审核数据
管理员审核完毕用户词单申请后,在用户界面的消息栏可以收到新消息提醒,包括词单名及审核原因
当用户上传的词单被管理员通过审核后,所有用户可以在官方词单界面查看到该作者署名的词单,并进行官方词单的拉取和背诵
2、单词学习
-
新增单词读音:
这一版本,新增了单词语音播放功能,在点击时会自动播放当前单词,此外,单击小喇叭也会播放单词读音
-
新增单词查询功能,相关词查看功能:
这一版本我们新增了单词查询功能,在学习模式页面上方的搜索框中输入单词点击搜索,或者单击相关词卡片即可查看单词的详细信息
-
每日背景图:
我们选取了精美的每日单词背景,用户在背单词之余,每天都可以获得新的视觉体验
PS:平台图片的版权许可已经在开发人员页面注明~
3、数据统计:
-
用户学习数据可视化查看:
Beta版本中我们新增了用户学习数据查看功能,用户可以在这里查看本周单词学习情况,也可以查看历史打卡情况。
PS:平台的打卡数据从六月份开始计算哦~
4、复习模式:
-
历史记录查看:
复习模式新增了历史记录功能,用户可以筛选日期查看相应的复习模式使用记录
5、聊天模式:
-
新增语音聊天:
Beta版本的聊天模式中新增了语音聊天功能,可以支持用户和小助手语音交流,支持历史语音聊天记录的播放
用法:
- 进入聊天页面,点击下方的喇叭按钮进行语音模式的切换
- 点击【开始讲话】和【结束讲话】,为用户录制一段英语音频
- 点击【播放】,可以听自己录制的音频是否清晰规范
- 点击【发送】,向Kaleido发送语音并等待回复
- 等待片刻后可以查看到自己和Kaleido回复的语音条,点击播放。
PS:平台会保存每一条交流的语音哦~
6、会员机制:
-
会员可以获得额外次数的使用小助手功能:
用户通过完成每日背诵目标,累计打卡,用户邀请等方式可以获取会员权限,能够额外体验小助手带来的功能 。会员时间是累积的哦~可以在用户个人信息页面查看
使用邀请码邀请朋友注册,可以获得三天会员时间
每天背诵100个单词可以获得一天的会员时间
7、管理员页面 & 通知公告:
-
用户提交词单的审核:
【具体展示见第一部分词单部分的相关介绍】
管理员审核用户上传的词单,筛选优质词单加入平台单词库,并给予用户词单的反馈
-
发布公告:
管理员可以向全体用户发送平台通知,例如Beta版本的更新
管理员界面可以查看用户向平台发送的bug反馈信息,筛选已读未读,并向改用户私发平台的反馈信息
用户点击通知栏(小喇叭)即可查看管理员发送的更新/修复信息等
8、主题色更改:
在Beta版本中我们提供了更多的主题色供用户选择,用户点击左上角的小助手即可切换主题配色。
PS:图片的版权许可已经在开发人员页面注明~
-
绿色:
-
蓝色:
-
粉色:
-
紫色:
项目发布后真正符合用户需求了吗?列出目标用户使用产品的过程和评价。
目标用户1:中大物理专业大一学生,刚上大学,希望学好英语,但是苦于英语学习过程枯燥,难以坚持。
- 使用过程:总使用时间为30分钟,使用了官方提供的四级词单并体验了单词学习功能、单词复习功能、复习模式中的故事模式、聊天功能与会员相关功能。
- 评价:很有趣的背单词软件,学习完单词之后还可以看这些单词编的故事,与ai助手的聊天模式也很有意思,在背单词的休息间隙与ai聊天既能提升表达能力也可以放松,虽然在宿舍里用语音交流模式会比较尬所以基本上只用文本对话了。会员模式的激励也能很好地促进我背单词,每天背够100个单词就可以获得一天会员很有成就感。总的来说还是很不错的。
目标用户2:北航计算机学院研一学生,英文论文阅读过程有些困难
- 使用过程:总使用时间为30分钟,自己创建了人工智能的相关词单,导入了论文来生成词单并体验了单词学习功能、单词复习功能、复习模式中的阅读与写作模式,与聊天功能。
- 评价:感觉智能创建词单功能和以论文生成词单功能还不错,通过这两个方式得到了大部分我阅读论文中所需要的专业单词,这个功能比较符合我的单词学习需求,但市面上的软件都没有。当然这个功能也有可改进的空间,它生成的简单词汇数量也不少,要手动删除或者在背诵的时候跳过,不过瑕不掩瑜。聊天功能可以与ai交流论文内容,阅读与写作模式也可以帮忙分析论文中的句子,这些都挺有帮助的,就是使用次数有点少。
目标用户3:某学院大一新生,最近喜欢上国外的某团队竞技游戏,但英语交流能力较弱
- 使用过程:总使用时间为20分钟,自己创建了该游戏领域的相关词单,并体验了单词学习功能、单词复习功能、复习模式中的故事功能和智能对话功能。
- 评价:挺好的,可以利用这个软件直接获取该游戏相关单词的词单,相关例句也非常符合游戏场景,可以学习到如何跟队友沟通。在智能对话中也可以用语音输入与ai直接对话交流,很好的提升了我的口语能力,现在也能打游戏开麦跟队友交流了。
目标用户4:北航计算机专业大三学生,计划出国留学
- 使用过程:总使用时间为40分钟,使用了官方提供的六级词单,并体验了单词学习功能、单词复习功能、复习模式中的阅读写作和智能对话功能。
- 评价:体验的特色功能真的很不错,比alpha阶段的体验又有提升,对于我们这种出国党来说很好用。这个版本的阅读写作不仅可以分析整篇文章还能每个句子给很详细的分析点评与修改意见了,对我们提升写作水平很有帮助。还有现在智能对话支持语音输入了,用来练习口语非常不错。感觉之前alpha阶段我想要的功能都补上了,体验十分满意。
三、用户日活
项目发布时团队做了哪些努力来推广项目?
朋友圈推广
鉴于HelloWord主要受众是大学生,所以宣发的首要途径是团队成员在朋友圈内宣传邀请同学参与HelloWord的试用。我们编写统一文案与配图,延用Alpha的宣发群,邀请了更多的新用户。文案内容重点突出Beta阶段新增的特色功能和使用方式,同时注意宣传所需要的趣味性和吸引力。
用户反馈群
QQ群最终有66人参与体验,并积极提出意见。宣发群涉及不同学校不同年级不同专业,用户有多方面需求,同时,以计算机专业的同学居多。在广泛调研其他专业用户使用体验的同时,计算机专业的同学能够在安全性、运行编译角度提出更专业的建议。
宣传视频
录制产品使用与介绍视频,上传自媒体平台,获得更广泛的关注与宣传。
【北航敏捷软工期末大作业-哔哩哔哩】 https://b23.tv/jW2chuz
会员机制
Alpha阶段反思总结时,考虑到Beta阶段要进一步增加用户日活,因此在Beta阶段项目设置了邀请机制,用户可以通过邀请其他用户获得会员时长,以及用户每日背诵单词每日打卡都能够获得对应的会员时长,增加用户粘性。
四、特色功能
杀手级功能
项目的杀手级功能,与竞品相比最特色的功能展现。
杀手级功能1:智能创建词单
- 用户可以通过平台只能创建属于自己的词单,具体有两种方式:用户可以通过上传pdf文件,我们的软件可以从中自动提取需要背诵的单词,生成相应的词单;用户还可以给定若干关键词,由我们的软件智能生成与这些关键词相关的词单。并且在词单生成后,用户还可以对词单内容进行编辑,以选择自己需要的单词。此外,如果用户认为自己的词单很有价值可以帮助到其他用户,还可以将自己的词单分享至平台,供所有用户拉取学习。
杀手级功能2:复习历史记录
为了配合我们软件的杀手级功能——智能复习模式,我们新支持了用户查看各个复习模式中的历史记录,用户可以随时温习之前学习过的短文、完形填空、对话等等内容。
杀手级功能3:语音聊天功能
在Alpha阶段开发的与小助手对话功能的基础之上,我们新支持了用户与小助手进行语音对话,帮助用户练习口语,获得更加沉浸式的英语学习环境。
竞品对比与分析
思考一下竞品出于什么原因并没有囊括该特色功能,团队凭借什么样的优势实现了它?
- 智能创建词单:
- 市面上现有的单词软件几乎都不支持用户自定义创建词单,只能从官方提供的词单库中选择,因此不能很好的满足用户个性化的学习需求。这些软件没有支持该功能的可能原因,一是智能生成词单的功能在近期随着大语言模型的突破才变为可能,而这些已有的单词软件由于功能趋于成熟,因此尚未开发实现;二是将词单权限开放给用户可能涉及到较多关于软件安全的问题,并可能与这些软件当前的定位不符,因此需要较多的时间去设计。
- 我们开发的软件定位即为智能化、个性化的轻量级单词软件,因此我们团队借助ChatGPT的API,通过设计Prompt来让语言模型实现多种智能生成词单的方法,最大化的满足用户个性化需求。
- 复习历史记录:
- 由于市面上的单词软件仅仅提供比较单一的基于单词的复习模式,因此他们并没有过多关注于复习历史记录这一功能。
- 我们的软件支持了多种复习模式,包括完形填空、故事生成、阅读写作分析,用户在这些功能中的记录都是非常有价值的内容,所以我们在Alpha实现复习功能的基础上存储了用户历史的复习记录,以支持用户按日期查看过去的复习内容。
- 语音聊天功能:
- 对于英语口语、发音相关的学习方式,市面上的单词软件仅支持例句的朗读或者提供一些播客。但是这些内容都仅限于平台方单方面的输出,并不支持用户与平台进行双向互动,并不能提供一个沉浸式的英语学习环境。
- 我们的软件利用了最先进的TTS和ASR模型,将用户语音输出转成文字,再将ChatGPT输出转成语音,实现了用户与小助手的语音聊天功能。之后可以进一步支持对于系统语音的个性化定制,如选择口音、明星音色、语速等等,来给用户提供沉浸式的学习环境。
五、软件工程质量
项目是否有单元测试,测试用例数目,代码覆盖率等。
使用Django框架的测试模块编写单元测试,对所有输出稳定的api的正常功能与异常情况编写了对应的单元测试。在Alpha阶段单元测试的基础上,对Alpha阶段修复与beta阶段新增的api的正常运行状态与异常情况编写单元测试并全部通过,共68个测试点,后端覆盖率为64%(未覆盖的接口包括较多使用gpt输出不稳定无法单元测试的接口,以及每日学习单词的输出随机无法测试)。
项目是否采用了CI/CD,并说明理由。
项目采用了CICD,对于开发环境,成员在并入dev分支后会自动触发开发环境的CICD,将变动更新到开发环境的项目,使成员能及时看到推送代码在开发环境的变动。
对于生产环境,由于需要谨慎测试后才能进行版本发布,所以生产环境的CICD采用前后端仓库管理员在复审代码通过后,手动点击触发生产环境的CICD。
采用CICD能够减少从开发到交付的时间,极大程度减轻运维的负担,更好地体现敏捷开发的原则。
(二)项目与团队总结
一、项目管理
团队是如何进行项目管理的?
我们使用coding平台作为代码仓库与项目协作管理平台。项目采用前后端分离模式开发,使用两个issues集合,分别进行前后端的任务计划与管理
这是coding的任务协作看板,具有两个对进度管理很有用的功能:
-
支持为任务增加父子的层级关联,整个任务看板可以以树状视图展现,利于将不同方面的父任务,划分更细粒度的子任务,体现敏捷开发的原则。
-
能够自动生成任务的甘特图,在任务进度管理时能够清晰直观地复盘与规划。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tzuEDKAE-1686409368714)(杀手级功能/image-20230609162018921.png)]
此外,coding平台支持多种基于代码仓库的数据统计版块,为我们在进行贡献分分配的任务量衡量方面提供了一定的参考依据。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iqFsL8Y6-1686409368716)(杀手级功能/image-20230609162956528.png)]
团队的成员如何分工协作的?有什么经验教训?
团队分工主要从每个人的擅长部分出发, 前端四位同学发挥了每个人的优势,包括架构设计与仓库管理、设计复杂的视图与交互功能,设计精美的宣传页与轮播图,调整每个页面的布局与UI样式,后端有三位同学,分别负责运维和前后端对接、GPT部署与数据库的构建,还有编写高覆盖的单元测试。
姓名 | 分工 | 经验教训 |
---|---|---|
lzh | PM、运维 | 需要向前端明确如何在本地测试接入后端数据库,以及前端代码需要保证baseurl不变性,否则会使生产环境构建失败 |
wyy | 前端开发 | 历史数据功能涉及到比较复杂的展示格式和日期筛选,应该和后端接口多做测试保证正确性 |
lyq | 前端开发 | 在编写主题色功能时对整个前端架构有了更深入的学习 |
xzh | 前端开发 | 学习了echart图表组件的数据格式设计与后端的接口约定 |
ljh | 前端开发 | 修改了验证码和管理员登录的安全性访问控制,涉及到安全性的验证码和密码等需要更充分的考虑 |
zya | 后端开发 | 单元测试时需要使用cookie等更复杂的安全性验证,需要及时与开发沟通 |
zl | 后端开发 | 应该更多地测试ChatGPT的输出格式保证较高的准确性;应该更加严格的限制输入长度 |
团队成员的简介和个人博客地址
成员 | 头像 | 自我介绍 | 个人博客 |
---|---|---|---|
李子涵 | 自我迭代中的PM,试图绑架一位幸运队友帮我写文档 | https://blog.csdn.net/mmmusel | |
徐子航 | 渡杰 | https://blog.csdn.net/xzh20373284 | |
李京昊 | 想写出不用debug的代码 | https://blog.csdn.net/li__jh | |
王永瑶 | 我想睡觉觉啊 | https://blog.csdn.net/kazeya | |
吕元秋 | 乐观积极且上进⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄ | https://blog.csdn.net/weixin_57687900 | |
朱彦安 | 努力学习的后端开发小透明 | https://blog.csdn.net/weixin_58188728 | |
卓乐 | 和bug势不两立 | https://blog.csdn.net/deftntxz |
团队如何平衡 时间/质量/资源 争取如期完成任务的?
- 考虑到Beta开发中期有考试,所以将团队的开发周期早了半周开始推进,中间几天由于考试暂缓了开发进度。团队成员能够在较为紧张的烤漆中能够合理调度自己的时间,保证在冲刺结束前完成自己的开发工作和对接工作。
- 团队成员能够在开发期间就同步推进单元测试,保证了在开发期间能发现大部分bug进行修复。在测试阶段结束后,我们较早的面向用户发布,收到反馈后能及时修复用户反馈的bug,保证了软件项目的质量。
成员在Beta阶段的角色和具体贡献
依照每名成员在Beta期间的贡献,以及贡献分转让原则,最终贡献分如下:
姓名 | 具体贡献 | 最终折合贡献分 |
---|---|---|
lzh | PM、服务器运维、后端开发 | 49 |
wyy | 历史记录、会员 | 50 |
lyq | 聊天页面开发、UI美化 | 53 |
xzh | 单词页面开发、统计页面 | 51 |
ljh | 词单页面开发、管理员 | 52 |
zya | 后端开发、单元测试 | 48 |
zl | GPT部署、语音接口 | 47 |
二、用户场景
项目开发前的目标
- 提供更加个性化的服务,增加更多智能化词单与个性化例句
- 提供多模态学习内容,增加语音交流、图片生成等更有趣的实时交互
- 推出每日打卡与会员机制,吸引更多用户注册,增加用户日使用量
- 进一步完善软件的安全性及前端布局
预期的功能描述
单词学习
- 新单词学习
- 新增单词读音播放功能。
- 新增单词查询功能,可以搜索并查看单词的详细信息。
- 复习模式
- 用户可以通过日期筛选查看所有历史使用记录。
- 聊天模式
- 新增语音聊天功能。
数据统计
- 历史学习记录。
- 用户可以查看本周的单词学习情况构成的折线图。
- 用户可以查看历史背单词打卡记录。
智能词单
- 词单创建
- 支持用户导入pdf格式的文献,从文章中智能提取单词。
- 支持用户自定义输入关键词,根据这些关键词生成定制化词单。
- 词单上传
- 用户可以上传个人词单到平台,审核成功后即可被所有人访问。
- 单词添加。
- 用户在已生成的词单中添加新单词。
通知公告
- 通知公告查看
- 用户可以在公告栏查看平台发布的词单审核结果和公告。
会员机制
- 会员时长获取
- 邀请好友注册
- 达到一定单词背诵量
- 会员特权。
- 拥有更多的复习模式和聊天模式使用次数。
管理员
- 词单审核。
- 管理员可以审核用户上传的词单,并给出反馈。
- 通知发布。
- 管理员可以向特定用户发送通知或给全体用户发布公告。
项目发布的功能
Beta版本新功能和特性见上
Alpha版本功能及特性
1、平台概述
项目发布在 sayhelloword.com 官网。
HelloWord是一款简洁智能的背诵单词、学习英语的软件。个性化词单、智能分析与问答,让背单词学习英语的过程不再枯燥。Come and join us! Let’s say “Hello,Word!” to Kaleido ~
2、登录注册界面
- 注册界面
该页面引导首次使用HelloWord的用户进行平台注册,完成邮箱、用户名、密码等设置和验证后即可加入平台,和广大英语爱好者一起进行学习探索。
- 登录界面
已经拥有账号的用户可以通过这一页面进行登录,开启独特的HelloWord之旅
3、单词背诵
完成登陆后,首先来到的便是词单界面,也是我们平台的核心功能界面,下面让我们一起踏上学习之旅。
- 词单界面
词单界面左侧,为新用户贴心地初始化了《新用户词单》。每一个词单卡片包含词单名、词单作者、单词数量,以及词单学习进度。正在学习的词单由卡片的右下角的绿色打勾icon标识。
点击不同词单,词单界面右侧展示了所选词单的单词列表。下方提供翻页栏以及切换单词书功能。
在词单界面中用户可以拉取平台提供的优秀词单,可以自己导入想学习的单词完成个性化定制,平台会基于后端数据库为用户生成一份属于自己的词单。
如果词单学习完成可以点击编辑单词本进行删除。单词的学习记录仍然会保存。
在这一页面中我们还贴心的设置了今日小目标进度条,用户可以自行设置,起到督促学习的作用
- 单词学习页面
选择单词书后平台将会根据用户的历史学习情况以及生词比例来提供今日新词,每次会提供一组单词进行学习,完成该组学习后更新用户学习状态,并提供新的单词。
每次背诵新单词会首先遮盖单词详细信息,用来检测用户对单词的掌握,可以点击认识或者不认识来记录学习状态,点击后显示单词全部信息。在右侧的卡片上我们人性化的引入了同义词、反义词以及非固定的单词例句等功能以供用户加深对单词的理解。也可以点击不再学习标记该单词为简单词。
完成一组单词的学习后会跳转到单词复习页面帮助用户来回顾所学习的单词,完全掌握后点击“学习下一组单词”的按钮可以获取新一组单词进行学习。
4、复习模式
复习模式中包含一下三个功能,故事模式、阅读写作,以及单词复习,以轮播图的形式展现。在这里智能小助手为用户提供私人定制服务,帮助您徜徉学海。点击对应卡片即可跳转到对应的复习模式。
- 故事模式
左侧会展示用户今日学习单词,点击选择部分单词即可由小助手生成包含该单词的故事,帮助用户在故事及语境中复习单词。
在阅读故事时遇到不理解的句子时,鼠标选中这句话,小助手会为用户分析这句话的中文释义以及长难句的句式结构分析,帮助用户提高阅读理解能力。
支持将小助手生成的故事与句式分析导出为文件
- 单词复习
背诵部分但此后进入单词复习模式,小助手会自动为用户选择今日学习生词,生成完形填空段落,让用户在真实语境下复习理解单词义
用户可以在文段中填入右侧单词,点击提交查看作答情况与正确答案
- 阅读写作
用户可以在左侧卡片键入作文或者使用文件导入作文后,点击开始分析,小助手会为用户评分,并给出对于文章的点评及建议。
鼠标选择某一句话,也可以为用户呈现句式结构的分析。
5、智能学习助手
平台展现了智能学习助手Kaleido这一虚拟形象,用户可以在此处与Kaleido进行试试交流对话。
6、个人主页 & 帮助界面
- 个人主页
该页面为用户的个人主页,展示了用户的历史学习记录以及个人信息。在该页面可以修改昵称、密码、退出登录。此外,平台还提供了用户标签的功能,便于在学习过程中为用户提供更具个性化的帮助。
- 帮助页面
为了方便用户对于平台的使用,我们绘制了帮助页面。用户在这里可以查看各部分功能,查看常见问题,反馈使用信息,联系平台开发者……我们致力于为大家提供最优质的英语学习平台。
用户在该页面可以查看平台功能,快速上手玩转平台。
在这一部分,我们提供了常见问题解答,帮助用户快速解决使用难题。
此外,在之前的页面中,部分功能右上角的问号icon支持点击跳转到帮助页面的对应栏目,帮助新用户了解本平台功能。
用户可以指出平台的功能Bug或者提出宝贵的意见。欢迎大家和我们共同来维护HelloWord平台。
最后是开发人员展示,HelloWord平台还在起步阶段,可能还有很多需求无法满足,欢迎大家联系我们进行技术交流。
项目发布后是否满足了全部典型场景?剩下的为何没有满足?
除了向已生成词单中添加新单词外,所有功能均已完成,典型场景均已满足。未实现原因是因为用户可能会添加单词库中不存在或错误的单词。实现该需求需要较多设计和较大改动,因此暂未在Beta迭代开发中完成。
三、用户日活
(1) 软件的日活跃用户量是否达到了预先定义的数量?(2) 如果没有达到,你们觉得可能是什么样的原因导致的?(3)你们认为还有什么指标可以佐证你们的软件对用户“有用”?
2(1)软件共80+人参与体验,生成了210+个用户词单,背单词功能共计1500+次、复习单词功能共计200+人次、智能对话功能共计500+人次,语音对话功能共计50次。
2(2)
① 宣传范围比较小,具有使用需求的受众占比小,用户使用量不大
② 宣发活动开始的比较晚,且主要在烤漆中进行,用户们忙于复习,对软件需求小
2(3)
① 活跃用户的使用数据,如文本分析、智能对话等功能的使用数据。宣传范围比较小,有使用需求的客户比较少,所以有需求的用户的使用量同样可以证明软件的有效性。
② 用户的交流与反馈数据。考虑到部分用户可能还不够了解我们的软件,虽未能使用软件但是在交流了解过程中可以便于他们日后使用该软件
③ 官方网站的浏览量。可能部分用户在宣发时间并没有使用需求,提前了解我们的项目以供日后使用
④ 视频的浏览量,录制的宣发视频可以作为用户了解项目的直接方式
是否有用户在功能改进上有所反馈?可以提供用户反馈的截屏。
用户一:20级软件学院某同学
- 功能反馈
- 单词详情页简陋
- 词单界面一页显示单词数量过少
- 已经创建的词单无法修改
- 语音聊天功能操作繁琐,应该自动发送
- 文件提取词单,单词数量较少
用户二:某金融大学大四学生
- 功能反馈:
- 语音聊天部分用户提示少,加载较慢
- 新建词单提取单词时会有卡顿
是否有用户在Bug上有所反馈?有什么样的bug?这是预料之中的还是没想到的?
bug描述 | 处理方式 |
---|---|
语音多次点击叠加播放 | 前端修改组件播放方式,每次点击可以暂停当前播放内容并播放新内容 |
文件上传解析词单容易字数溢出 | 后端加强文本长度截断,从读取输入和传入gpt之前都进行截断 |
主题色切换后部分颜色不适配 | 将部分不适配的颜色改为灰色,使各主题色与功能组件的颜色适配 |
用户上传词单显示作者不匹配 | 将model类型的id判等改为field类型的username判等 |
四、杀手级功能
团队成员对特色功能的自我评价,是否达到了预期目标,为什么?
- 个性化词单方面,我们认为在Beta阶段提供了比其他单词软件更加新颖的功能,能够让用户在单词学习方面有更适合自己的学习内容。稍显遗憾的是文件生成智能词单存在输入长度限制,不能覆盖过长的文章,后续可以采用多次调用服务来生成覆盖率更全面的词单
- 复习的历史记录方面,我们将本软件最具特色的复习功能留存了历史记录,能够让用户查询学习历史,增加对杀手级功能的记忆点
- 语音聊天功能方面,我们保证了语音模型能够以语音助手的角色与用户实时交流,相比Alpha阶段的聊天功能能够给用户更加丰富的语境和更直接的反馈,让用户在听和说中增强英语交流能力
用户对特色功能的评价
用户1:
- 智能生成词单功能的文件长度有限制,但是未指明具体大小,试了好几个都创建失败,后面超过限制后就不可用了
- 关键词词单生成功能挺好的,生成的单词有点少(17项),不知道是不是选择的词的问题
- 单词详情页面界面看得挺舒服的,读音音量合适,是个很好的基础功能完善(如果能再朗读例句就更好了)
- 复习模式查看历史记录,可以对出的题进行进一步复习,是个很不错的、在别的单词软件没有的功能
- 语音聊天的功能很新颖,但是语音的选择不是很清晰
用户2:
-
主题色切换/每日背景可以看出来做的十分用心
-
前端整体可以做的更加细腻,例如增加一些鼠标hover的响应事件
-
整体响应时间有点久,背景图片首次渲染有点大
-
语音聊天部分,可以多增加一些反馈给用户,比如让用户知道此刻正在进行声音录制
-
导入词单部分,上传完毕后生成词单时一直报错,且需要较长的响应时间,这期间没有提示信息,用户体验不太友好
五、软件工程质量
项目有完善的文档吗,是否有约定代码规范?
项目有完整的Git仓库管理规范,已发布到博客:团队Git规范
依照此规范,我们在开发期间保证了分支树与提交信息的清晰,能够保证进行项目进度管理时及时准确地了解到团队成员的代码推进进度,及时了解到相关页面的功能变更,出现错误后易于版本回退。
项目是否有出现代码混乱,没有注释,没有详细文档的问题?明年的同学继续开发这个项目,会不会出现以上抱怨?如果一个新学生在一台新机器上想编译并运行你的项目, 请问能顺利完成么?有什么样的文档能指导新学生?
- 前后端的项目架构均依照目录规范 进行,目录与项目的各个页面一一对应,代码架构清晰;
- 前后端项目在例如接口参数、组件描述、边界限制等部分编写了注释,整个项目架构也具有良好的可拓展性,使得项目在Alpha和Beta迭代开发时能迅速完善缺陷并完成后续开发。
- 项目采用前后端分离的开发模式,前后端均有requirements.txt用于环境构建,能够使项目被接手继续开发。
- 团队将在github更新本项目的部署文档,例如openAI服务调用、语音模块调用、CICD构建等内容帮助运行。
学到的经验和教训:整个团队在Beta阶段学到了什么,对软件工程有什么样的经验教训?
在Beta阶段项目成员们的考试、竞赛等课业压力相比Alpha阶段增加,更加贴近敏捷开发的真实场景,在敏捷冲刺和交付的阶段加深了对敏捷开发原则的体会。尽管Beta阶段的开发压力较重,但是由于Alpha阶段团队内实践出了一套适合我们的团队管理和前后端交接的开发模式,开发环境和生产环境的运维工作在Alpha阶段较为成熟,能够平稳过渡到Beta阶段,因此也认识到在项目前期实践并确立一套合理的团队协作模式能够在敏捷冲刺中起到事半功倍的效果。