DZ(转出)
hdl(转入)
PM & 后端
前端
前端
前端
(原)后端
后端
后端
用户信息
用户情况
姓名
小A
用户身份
计算机学院大三学生
知识层次/能力
成绩普通,专业知识能力一般
生活/工作
学习热情不高,作业往往以DDL为动力
用户动机
希望可以方便及时地得到各项作业DDL的提醒
用户困难
各门课作业的DDL往往发布在课程中心上
需要手动登录查看很不方便
而且有时会忘记作业的截止时间
典型场景
在作业DDL的前一天发送邮件,提醒用户作业内容和截止时间
(类似于博客园的作业提醒)
用户偏好
及时快捷地得到通知而无需自己登录网站查询
用户比例
50%
用户信息
用户情况
姓名
小B
用户身份
计算机学院某项目小组主要负责人
知识层次/能力
规划管理水平与领导能力较强,专业知识扎实
生活/工作
对于小组项目认真负责,尽心尽力,积极热情
用户动机
希望可以更好地管理和组织组内的讨论或者会议
保证相关成员得到及时提醒而不会忘记到场
用户困难
目前的普遍方法就是微信群等社交APP内的通知,
但是不够科学高效,需要过多的人力投入
典型场景
向组内成员发布提醒事项,添加到各成员的DDL列表之中,实现自定义按时提醒功能
用户偏好
简单自动地发布日程信息
用户比例
20%
用户信息
用户情况
姓名
小C
用户身份
计算机学院大三学生
知识层次/能力
成绩较好,专业知识水平较高
生活/工作
学习积极热情,喜欢与同学分享交流
用户动机
希望在统一的平台上可以得到一门课程较为全面的课程资源而且可以分享补充
用户困难
各门课程的资源十分分散,有的在不同的网站上,
有的在微信群里,很难统一管理而且很难补充完善
典型场景
期末考期期间下载并相互分享各门课程的复习资料以及往年试题等
用户偏好
各门课程来自各方面的资源得到充分整合且能够分享自己的资源进行补充
用户比例
30%
功能描述
设计原型
Beta实现
登陆界面
注册界面
首页
日历视图
事项详情页
新建事项
列表视图
课程视图
(ddl列表)
课程视图
(资源列表)
课程视图
(课程通知)
消息中心
个人中心
(个人资料)
个人中心
(个性设置)
注册用户量相比Alpha阶段增加:70-100人
课程爬取到新DDL、资源时会以通知的方式通知用户,本次同步更新了哪些内容一目了然。此外,当被作为参与成员添加DDL时也会通知。一些系统通知也会放在这里。
消息通知页面:
点开消息可以查看详细内容,并且消息会变为已读状态:
Alpha版本的Bug反馈是采用博客园开一个博客,用户可以在该博客下以评论的形式反馈Bug,但最终证明效果不好,可能是由于博客园需要注册才能评论,而很大一部分用户是没有博客园账户的。因此Beta阶段采用加入Bug反馈页面的方式直接提供给用户反馈的通道,希望能收到更多的反馈。
该页面在Alpha阶段就已经前端实现,但后端还没有实现,因此暂时无法使用(点击了没有效果也不会记录)。Beta阶段实现了后端接口,现在已经可以正常使用了。
在「我的日历」和「我的DDL」页面下方添加了快速创建当日日程的功能,只需输入日程名称即可快速创建日程。
Alpha版本没有快速创建栏:
在「我的DDL」页面中可以删除自己的DDL。这里的删除是逻辑删除,意味着后端数据库中仍有该DDL的数据,只是不会显示,这样有利于误删的恢复以及一些用户可疑行为的追踪。
Alpha版本没有删除按钮:
大多数时候知道一个DDL的发布时间意义不大,因此将这个字段替换为了关联课程,可以让用户快速得知这是哪门课的DDL。
如图所示:
而Alpha版本的这个地方显示的是为「发布时间」字段:
将爬虫爬取的课程中心的课程通知部分也加入到了课程中,方便用户查看。
课程通知界面如图:
Alpha阶段只有「DDL列表」和「共享资源」两个标签:
在登陆界面可以点击「忘记密码」按钮进入找回密码界面,通过北航邮箱的邮件验证后即可重置登陆密码。
找回密码界面如图:
Alpha版本是没有「忘记密码」按钮的:
Alpha阶段时,一些接口可以通过直接访问api来获取该api对应的后端数据,虽然用户密码等极其敏感的信息不会以这种方式被获取到,但这仍然对用户的隐私构成了很大的威胁,因此Beta阶段修复了这个Bug。
现在如果直接访问api会提示“Authentication Failed!”,如图所示:
而在Alpha版本中,直接访问一些api是可以获取到后端返回的数据的:
(没有可以展示的截图,但是这个Bug的修复意味着我们可以将我们的代码仓库公开了。之前使用固定的RSA公钥时考虑到网站安全问题是不能公开我们的代码的。)
团队中的成员分工大致如下:
成员
分工
CookieLau
PM、后端、测试、部署
刘zh
前端、测试
冯mh
前端、测试
王fuji
前端、美工
何dl
后端
杨jc
后端、文案、测试
燃尽图并没有结束是因为我们最后考虑到大家烤漆复习的原因搁置了两个非核心功能:
根据:
我们得到以下结果:
成员
CookieLau
hdl
Monster
kkkkk
FUJI Wang
LiuZH
初级得分
$\frac{324}{1843}*300=53$
$\frac{293}{1843}*300=48$
$\frac{301}{1843}*300=49$
$\frac{321}{1843}*300=52$
$\frac{303}{1843}*300=49$
$\frac{301}{1843}*300=49$
最终得分(无重复)
53
47
49
52
48
51
由于发生了分数相同的情况,所以最后根据每个人Beta阶段的积极度和技术博客进行调整评分。
具体贡献:
成员
职位
代码
博客
推广
CookieLau
PM、后端
[Backend] 增加对课程中心通知的爬虫
[Backend] 修改了课程中心爬虫的作业链接
[Backend] 修复了Logout中也需要的验证的临时bug
[Backend] 增加了API的请求认证
12篇Scrum Meeting
[CookieLau] 服务器部署
[CookieLau] 课程中心爬虫教程
微信、QQ、朋友圈
Monster
后端
增加课程负责人接口api
[Backend] 整合邮件发送函数
[Backend] 完成前端请求的课程通知接口
[Backend] 增加了个人中心的Email特色功能
[Backend] 增加了API的请求认证
[Backend] 增加bug反馈页面api
Beta - 测试报告
Beta - 发布声明
[Monster] 使用邮箱验证并激活账户
朋友圈
hdl
后端
[Double] 完成了动态密钥接口
[Backend]添加动态密钥对模型及请求接口
添加单元测试;修复view中小问题
[MisTariano] 偷梁换柱:使用mock.patch辅助python单元测试
LiuZH
前端
[Frontend] 增加日程删除按钮
[Frontend] 修改Eventlist中起始时间为课程名称
[Backend] 课程资源分享加入分享人字段
[Frontend] 完成忘记密码设置
[Frontend] 增加对重复日程的支持
[LiuZH] 基于vue的前端快速开发(工具篇)
[LiuZH] 忘记密码界面的Vue前端实现
王FUJI
前端
[Frontend] 添加课程通知;改善下拉显示异常
[Frontend] 增加快速创建按钮
[Frontend] 完成个性用户设置
[Frontend] 完成Calendar界面和Eventlist界面的快速创建当日日程按钮
[Frontend] 前端增加反馈bug页面
kkkkk
前端
[Frontend] 增加请求API时的Header认证
[Frontend] 增加消息中心通知
[Double] 完成了动态密钥接口
[Double] 完成消息中心
[Kkkk] Commitizen优化git commit<br/[Kkkk] Django+Vue跨域配置与经验>
Beta阶段,我们的项目管理有了很大改善。我们使用了gitee的pr和issue结合的方式进行任务的分配和管理,具体来说,为每个人的任务建立一个issue,任务完成之后,首先commit到自己的分支,在自己本地服务器上进行部署测试,测试无误后,再与PM沟通并进行代码复审,都没有问题后会merge到master分支并提起pr,将pr关联任务的issue,该issue关闭。
为保证代码质量,我们在Beta阶段的代码审查分为两步:
这种“修改者自己测试+PM代码复审”的双重代码审查形式,保证我们的代码质量。
测试覆盖率如下,具体可查看Beta测试报告
在我们的项目中api和json文档非常重要,前后端依靠这两个文档实现了分离,因此这两个文档需要经常维护和更新。这两个文档均放在了我们的GitHub仓库中,以下是部分文档内容的展示:
有了这些文档,即使是新加入的成员应该也能快速上手项目,因为他们只需按照这些api和json的格式进行编写即可。
通过Beta阶段的用户反馈可以看到用户提出的需求和我们的目标不是非常重合,和航胥组的项目比较相近,我们通过在友情链接中帮助其他组同学进行推广,同时满足用户的需求。
至于微信小程序的开发,我们目前已经实现了前后端的分离所以理论上是可行的,但是从时间上来看学习微信前端框架知识需要一定的成本,可以考虑在后期我们继续开发或者留给下一届的同学开发。
希望课程组能够根据同学们的整体课程压力灵活调整作业和验收时间。
我们要做软件工程,那就要有一点工程的样子:
团队项目的目标,预期的典型用户,预期的功能描述,预期的用户数量在哪里?
团队的产品如何满足了用户的需求?要看到目标用户使用产品的过程和评价。
事先定义的软件下载量达到了么?为什么没有达到?
团队的成员如何分工协作的?有什么经验教训?
分工协作:
经验教训:
团队是如何进行项目管理的?
团队如何平衡 时间/质量/资源 争取如期完成任务的?
在产品之外,团队代码的软件工程质量如何?如何用数据来证明?
测试用例数目,代码覆盖率数目。
运行测试用例得到代码覆盖率的视频录像,(需要现场看到。 没有诸如 “我的电脑没有装测试环境”,“文件不全”等等借口)
代码规范在哪里?
齐全的文档在哪里?
有些项目是在原来的基础上改进的,那么我们团队的软件工程项目质量有什么样的提高?例如,代码覆盖率从原来的x增长到y?
原来的项目有些代码混乱,没有注释,没有详细的文档,你们的项目是如何更好解决这个问题的?明年的同学继续开发这个项目,会不会出现类似的抱怨?如果一个新学生在一台新机器上想编译并运行你的项目, 请问能顺利完成么?有什么样的文档能指导新学生?
对于项目的目标用户是一般学生的项目, 你们如何找到学生做需求分析?他们给你什么样的反馈?
所有的项目都会收集到用户的数据,请问你们对这类数据做了什么样的分析,这些分析如何验证或推翻了原来的假设?这些数据如何帮助项目改进软件工程的质量?
手机扫一扫
移动阅读更方便
你可能感兴趣的文章