Alpha项目展示
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2021春季软件工程(罗杰 任健) |
这个作业的要求在哪里 | Alpha-项目展示 |
我们是谁 | 删库跑路对不队 |
我们在做什么 | 题士 |
进度如何 | 进度总览 |
一、项目与团队亮点
1.关于我们
1.1 团队成员与分工简介
姓名 | 负责 | 具体工作简介 |
---|---|---|
QSY | PM&前端 | 产品主页与后台管理系统设计与开发,服务器nginx与SSL等部署与维护,例会报告与产品相关博客的撰写,推进项目进度,审查项目质量 |
LKL | 后端 | 题目相关接口、单元测试的撰写,CICD的部署,题目相关数据模型的设计与建立 |
CWM | 前端 | 题库、收藏|错题列表、各种刷题模式、模拟考试等页面相关的前端工作的设计、开发与测试 |
CYY | 后端 | 用户相关,后台管理相关接口、单元测试的撰写,服务器后端相关配置与维护,个人信息相关数据模型的设计与建立 |
LS | 前端 | 注册、登录、首页、我的及个人信息,产品介绍等页面相关的前端工作的设计、开发与测试 |
WCC | 后端 | 题目评论相关接口、单元测试的撰写;题目数据的爬取、清洗与导入;题目图片与用户头像上传等接口的开发与测试 |
1.2 项目管理
初始打算:Space 关联 Github 进行项目管理,不过后续得知今年团队开发仓库统一使用gitlab,由于Space 不能较好地关联gitlab的项目,遂放弃
最终决定:使用gitlab的Milestone+issue+Merge Request的方式管理
首先建立Milestone
根据需求分析的结果,设计功能并划分为具体任务,任务分为Design,Develop和Test三类,并以issue的形式分配给团队成员
团队成员分别创建个人开发分支,通过发起merge request的形式,将前端阶段性开发成果经由二次确认后merge进入front-end分支,将后端阶段性开发成果经由二次确认后merge进入back-end分支;前后端功能完善,符合Milestone设定计划后,发起merge request,经由PM审核后merge进入master分支;在每次merge的过程中,关联issue,在确认merge后,自动关闭对应issue
2.典型用户场景
临近期末,小A还没开始航概期末复习,现在他正面临着复习时间紧迫,复习资料不完整的问题,正当他不知所措的时候,小B向他推荐了题士...
小A:我使用的是IOS操作系统,一般的软件和应用都对IOS平台不支持,我能够使用题士吗?
小B:题士利用微信小程序平台对IOS和安卓平台统一支持,同时也发布了安卓客户端对安卓进行额外支持
小A:现在离期末考试仅剩几天,但是我对于相关知识点和题目都不了解,题士能够给我什么帮助吗?
小B:题士提供顺序刷题,随机刷题和易错刷题等多种做题模式,顺序刷题帮助你按照章节进行复习,随机刷题帮助你交叉复习不同章节内容,易错刷题统计了所有同学常见易错题,帮助你聚焦易错内容
小A:可是我对很多内容不熟悉,应该会错很多题,有没有什么比较有效的复习方式?
小B:题士能够帮助你对你错的题目进行记录,提供错题列表,也能够在错题列表中直接对错题进行复习;同时提供收藏列表,让用户自主收藏好题;而且如果对于内容不熟悉的话,也可以选择题士提供的背题模式,对航概进行快速复习
小A:真是太好了,我的期末考试有救啦!
3.特色功能
3.1 杀手功能
题士Alpha版本的杀手功能包括易错模式刷题,模拟考试,刷题进度显示等功能
3.2 对比竞品
说明:✔️表示完全具备,🔺 表示不完全具备,❌表示不具备
对比内容 | 航概练习题库 | 考前自救题库 | 题士 |
---|---|---|---|
小程序端 | ✔️ | ❌ | ✔️ |
安卓APP端 | ✔️ | ✔️ | ✔️ |
切换科目 | ✔️ | 🔺 | ✔️ |
查看题库 | ✔️ | ✔️ | ✔️ |
关键词搜索 | ✔️ | ❌ | ✔️ |
顺序刷题 | ✔️ | 🔺 | ✔️ |
随机刷题 | ✔️ | 🔺 | ✔️ |
错题列表 | ✔️ | ✔️ | ✔️ |
收藏题目列表 | ✔️ | ❌ | ✔️ |
易错刷题 | ❌ | ❌ | ✔️ |
模拟考试 | ❌ | ❌ | ✔️ |
背题模式 | ❌ | ✔️ | ✔️ |
做题天数 | ❌ | ✔️ | ✔️ |
设置用户头像 | ❌ | ❌ | ✔️ |
做题情况统计 | ✔️ | ❌ | ✔️ |
4.项目发布
4.1 面向使用人群发布
1906为即将考航概的使用人群,产品率先向他们推广
4.2 海报
进一步制作海报,进行产品的展示与宣传
4.3 宣传册
同时制作H5宣传册,方便在通讯软件中的宣传与分享
4.4 实际日活数据
累计访问量:
日活数据:
发布四天平均日活:53.25
4.5 用户反馈
5.软件工程质量
5.1 设计文档
文档是开发的依据,是维护的凭证,是拓展的基础
项目有完善的API设计文档和数据库设计文档
Beta阶段将继续扩充架构文档
5.2 代码规范
前端代码规范
题士uni-app开发遵循uni-app开发规范和Vue单文件规范
后台管理系统开发过程中,将部分内容修改后的现有业内开发规范设置为自身开发规范,具体规范代码详见gitlab仓库
后端代码规范
后端开发主要采用node.js框架,使用javascript语言,因此遵循javascript开发规范
5.3 项目继承
项目代码结构清晰,文档规范,继承项目者在查询uni-app和node.js前后端开发框架后即可接手开发,项目开发可进一步查阅uni-app和node.js开发文档
5.4 单元测试与CI/CD
前端以功能测试和兼容性测试为主,后端以压力测试和单元测试为主
前端功能测试、兼容性测试和后端压力测试详见Alpha阶段测试报告,后端单元测试结果如下:
共计78个测试用例,代码覆盖率为80%,其中后端未覆盖接口具体包括:
- 修改密码涉及邮箱发送与验证
- 邮箱注册,设计邮箱发送与验证
- 微信登录
其中前两个未覆盖接口均涉及邮件发送,由于邮件发送按量计费,团队开发经费有限,因此未对其进行单元测试,第三个微信登录接口无法自动进行测试,所以未进行覆盖测试
同时项目部署CI/CD,自动触发后端单元测试,保证后端开发质量,测试结果如图:
5.5 经验教训
内容较为独立,因此另发一篇总结博客记录,详见Alpha阶段性总结
5.6 Beta计划
1.根据用户反馈与测试结果修复alpha版本的bug:
功能改进|bug | 改进结果|修复结果 |
---|---|
题目收藏列表的开始按钮位置调整 | 由上一版本的始终固定为页面头部修改为悬浮在页面下端 |
小程序游客状态下,点击收藏题目按钮提示已收藏 | 重新设定为游客状态无权限点击收藏题目按钮 |
ios系统查看题目评论闪出问题 | ios系统已无点开题目评论后闪出问题 |
题目评论的组件略丑 | 调整题目评论的组件,进一步美化 |
开始刷题时的下拉刷新设置影响刷题体验 | 删除开始刷题时的下拉刷新设置 |
修改第一道题的上一题的提示 | 将“请求失败”修改为“没有啦” |
小程序游客模式下点击登录不能自动拉取微信头像的问题 | 小程序游客点击登录可以正常获取微信头像 |
2.进一步开发改进alpha内容
任务 | 原因 |
---|---|
api进一步细化 | alpha阶段部分api重用,重用会使某些调用获取的冗杂数据较多,需要对api进一步细化,减少重用 |
易错刷题页面显示每个题目的错误率 | alpha阶段未能同时显示题目的错误率,仅能保证所刷题目为易错题 |
模拟考试提交结果另设页面,进一步美化 | alpha阶段提交后仅显示得分,需要另设页面,显示得分、圆圈显示题目对错 |
题目列表按章节下拉时才请求对应章节的题目数据 | alpha阶段为初始时请求所有题目数据,加载较慢,更改为点击下拉栏,才按对应的章节请求数据,提升加载速度 |
添加连续引导页作为新手指引 | 项目部分功能需要说明,可以考虑添加连续引导页进一步表述,或在产品官网上进一步说明 |
3.按Beta版本原定计划开发完善题士功能
进一步开发题士中的如下功能:
- 问答社区(问题讨论,经验分享)
- 资源分享社区
- 考期日历倒计时
- 知识卡片
二、项目与团队总结
项目与团队总结部分为亮点中涉及的项目相关内容的进一步扩充,对亮点部分形成支撑
1. 成员沟通
Alpha开发阶段团队每两天进行一次线下例会,每次例会总结个人开发进度,讨论开发成果,制定开发计划,并进行集中高效开发,及时沟通,及时调整
每次例会时间在4h-8h之间,会议记录详见Scrum Meeting汇总
2. 资源平衡
项目总体架构如图:
团队两名前端开发人员LS与CWM负责安卓APP和微信小程序的联合开发
另一名前端开发人员QSY负责产品主页和后台管理系统的联合开发
两名后端开发人员LKL与CYY负责题士主体功能的后端开发工作
另一名后端开发人员WCC同时负责题士评论功能的后端开发工作和题库的数据爬取、清洗和导入等相关工作
项目能够如期交付的原因如下:
- 团队各个成员的能力均十分突出,可以独当一面
- 团队各个成员对项目均抱有认同感,认为在做一件有价值、有意义的事,而非单纯地为了分数完成任务
- 团队成员彼此熟识,配合默契,可以为同一目标齐心协力,全力冲刺
- 团队成员可以主动提升团队开发任务相较于个人任务的优先级,保证项目进度正常推进
3. 进度推进
团队成员开发过程中士气高涨,项目推进较快,除五一假期前两天整装待发、准备冲刺外,其余时间均有项目相关的产出,并及时提交,发起merge request,关闭issue,具体燃尽图如下:
4. 成员贡献
成员贡献计算依据团队贡献分分配规则,具体结果如下:
姓名 | 基础分 | 工作量 | 额外工作 | 额外工作说明 | 总分 |
---|---|---|---|---|---|
QSY | 45 | 3 | 5 | 帮助CWM定位小程序开发BUG;技术博客:Gitlab Burndown Chart Generate;PM工作,协调监督、完成团队博客 | 53 |
LKL | 45 | 2 | 4 | 帮助WCC完成图片上传;提供node.js开发资料; | 51 |
CWM | 45 | 2 | 0 | 47 | |
CYY | 45 | 2 | 2 | 技术博客:基于JWT的Token身份验证;后端压力测试 | 49 |
LS | 45 | 3 | 3 | 帮助CWM美化前端样式;技术博客:Uniapp云打包生成apk下载链接;app发布,负责小程序审核 | 52 |
WCC | 45 | 2 | 1 | 数据爬取与处理;后端压力测试 | 48 |
团队成员具体任务说明与数据支持如下:
姓名 | 负责 | 团队贡献分 | 具体工作简介 | 代码量 | 参与文档 |
---|---|---|---|---|---|
QSY | PM&前端 | 53 | 产品主页与后台管理系统设计与开发,服务器nginx与SSL等部署与维护,例会报告与产品相关博客的撰写,推进项目进度,审查项目质量 | 3355 | 除题目相关API、题目评论相关API和数据库设计文档外的所有文档 |
LKL | 后端 | 51 | 题目相关接口、单元测试的撰写,CICD的部署,题目相关数据模型的设计与建立 | 1162 | 功能规格说明书-五-七 技术规格说明书 团队贡献分分配规则:初版 题目相关API 题目相关数据库设计 |
CWM | 前端 | 47 | 题库、收藏|错题列表、各种刷题模式、模拟考试等页面相关的前端工作的设计、开发与测试 | 2299 | 需求分析文档:四、五 技术规格说明书 功能规格说明书:五-七 团队贡献分分配规则:初版 题目相关API 题目相关数据库设计 |
CYY | 后端 | 49 | 用户相关,后台管理相关接口、单元测试的撰写,服务器后端相关配置与维护,个人信息相关数据模型的设计与建立 | 1417 | 功能规格说明书:一-四 Alpha阶段初始任务分配 团队贡献分分配规则:终版 Alpha阶段测试报告:压力测试说明、用户场景测试说明 个人信息相关API 后台管理系统相关API 个人信息相关数据库设计 |
LS | 前端 | 52 | 注册、登录、首页、我的及个人信息,产品介绍等页面相关的前端工作的设计、开发与测试 | 2039 | 功能规格说明书:UI设计 评论相关API 题目评论相关数据库设计 |
WCC | 后端 | 48 | 题目评论相关接口、单元测试的撰写;题目数据的爬取、清洗与导入;题目图片与用户头像上传等接口的开发与测试 | 1142 | 功能规格说明书:一-四、整合 Alpha阶段初始任务分配 团队贡献分分配规则:终版 Alpha阶段测试报告:压力测试说明、用户场景测试说明 评论相关API 文件上传API 题目评论相关数据库设计 |
5. 用户场景相关
项目开发前的目标
-
实现一款集刷题、题目讨论、错题整理、社区资料分享等功能为一体的优质软件
-
安卓APP与微信小程序的同时发布
-
Alpha阶段:累计用户量为200;Beta阶段:保守估计每日活跃用户为400
预期的典型用户场景
我们针对产品的典型用户进行了以下五类划分:普通学生,大佬,DDL选手,助教和老师,具体描述如下
普普通通,平平无奇的普通学生
内容 | 说明 |
---|---|
用户姓名 | 钉崎野蔷薇 |
照片 | |
用户身份 | 19岁,女大学生,普普通通的大学生,各项能力平均 |
用户痛点1 | 有一定学习基础,想要通过做题对学习内容进行复习,获得中等偏上的成绩 |
用户痛点2 | 对基础题目能够正确作答,对于难题存在作答障碍或者理解困难 |
用户痛点3 | 对于恶心的题目,有强烈的吐槽欲望 |
软件对应功能 | 题士多模式做题功能(alpha版);题士题目搜索(alpha版);题士讨论区(beta版);题士题目评论区(alpha版)。目前可以进行多模式刷题,可以在对应的题目下进行评论 |
使用预期场景 | 日常学习时,通过题士多模式刷题及时回顾学习内容,巩固知识点;在遇到难题时,通过问答社区提问,等待大佬或者老师助教的解答;在做题的同时,在题目讨论区吐槽,创作 |
用户比例 | 50% |
学习无难事,万人膜拜的大佬
内容 | 说明 |
---|---|
用户姓名 | 伏黑惠 |
照片 | |
用户身份 | 20岁,男大学生,学习能力强,愿意为同学答疑解惑,分享做题经验 |
用户痛点1 | 想要更有效率地进行做题和复习,对题目进行整理和分类,方便记录做题笔记,获得高分 |
用户痛点2 | 没有便捷途径获得往年的考题资料,及时复习 |
用户痛点3 | 想要有个途径对自己的踩坑进行记录和分享 |
软件对应功能 | 题士题目收藏,错题自动整理功能(alpha版);题士资源分享社区(beta版);题士讨论区(beta版)。目前可以在错题和收藏题目列表中快速查看自己的错题和收藏题目 |
使用预期场景 | 日常做题,通过平台能够方便整理错题,同时收藏好题和易错题;在做题同时,记录解题思路和对应知识点;通过资源分享社区,及时获取往年真题,及时刷题 |
用户比例 | 20% |
平时玩乐,期末完了的DDL选手
内容 | 说明 |
---|---|
用户姓名 | 虎杖悠仁 |
照片 | |
用户身份 | 20岁,男大学生,摸鱼一时爽,期末火葬场,不到期末绝不复习的DDL选手 |
用户痛点1 | 期末考前,想要通过最短时间过最多的题,同时重点关注好题和易错题 |
用户痛点2 | 知识点难以在短时间记忆,希望有人分享知识点记忆技巧 |
软件对应功能 | 题士背题功能(alpha版);题士易错题刷题(alpha版);题士题目评论区(alpha版)。目前可以在背题模块中快速背题,在短时间内通过背题获取大量知识 |
使用预期场景 | 三天之后航概期末考试,在短时间内,通过大量快速过题进行复习;吸取踩坑经验,做题小技巧,尽全力不挂科 |
用户比例 | 25% |
腼腆但是热情的课程助教
内容 | 说明 |
---|---|
用户姓名 | 两面宿傩 |
照片 | |
用户身份 | 24岁,男研究生,课程助教,内向腼腆,有耐心愿意为同学答疑解惑 |
用户痛点1 | 同学们常常提问同质问题,每次都需要重新回答同样的内容 |
用户痛点2 | 班级群中发布的资料常常过期,需要重新发送 |
软件对应功能 | 题士讨论社区(beta版);题士资源共享社区(beta版)。beta开发结束后将满足此典型场景 |
使用预期场景 | 助教通过翻阅提问区问题,对共性题目统一解答;通过平台上传资料,不用担心资源过期,不能下载的问题 |
用户比例 | 4% |
有责任心的老教师
内容 | 说明 |
---|---|
用户姓名 | 五条悟 |
照片 | |
用户身份 | 45岁,教授,课程主讲教师 |
用户痛点 | 希望了解同学们对于学习该门课程普遍的难点,痛点,针对性讲解题目,整理知识点,帮助同学们通过课程 |
软件对应功能 | 题士易错题(alpha版);题士讨论区(beta版)。目前可以查看易错题,根据易错题制定习题课,提升学生成绩 |
使用预期场景 | 打开题士,查询易错题和讨论区常见问题,制定习题课和复习课计划,帮助同学们针对性复习 |
用户比例 | 1% |
预期的功能描述
界面 | 功能描述 | 开发阶段 |
---|---|---|
登录 | 用户可以通过微信或邮箱两种方式进行登录 | Alpha |
注册 | 用户通过输入邮箱,获取验证码进行注册,绑定账户 | Alpha |
首页 | 首页展示产品的核心功能,并提供相应功能入口,包括考期日历、错题/收藏、知识卡片、题库、资源社区、问答社区和刷题功能等,用户可以切换不同科目,选定科目后开始使用本产品 | Alpha |
我的-题库 | 展示用户头像、昵称、累计做题数、做题天数、历史记录等内容,提供关于我们、意见反馈、分享、设置和退出等功能入口 | Alpha |
我的-社区 | 由默认的题库选项切换至社区选项,获取问答数量、获赞数量等统计数据信息,提供我的问答的链接入口,方便用户直接查看 | Alpha |
刷题|背题 | 支持用户在刷题和背题两种模式中切换,对题目进行收藏等。在刷题模式下,用户根据题干内容选择正确选项,产品反馈正误,用户可以点击查看评论按钮,查看各种评论,也可以自己发表评论或评论他人评论;在背题模式下,产品直接提供题干内容和正确答案,用户可以快速背题 | Alpha |
题库 | 支持用户在题库中根据关键词进行搜索,同时展现当前科目下各章节的所有题目的完成情况,用户可以点击某一题开始刷题 | Alpha |
错题|收藏 | 展示用户的错题数或收藏题目数,并按照不同章节整理错题或收藏的题目,用户可以点击某一章节进入题目列表,查看该章节下的所有错题或收藏的题目 | Alpha |
题目列表 | 某一章节下的错题列表或收藏题目列表,用户可以点击开始按钮对错题或收藏的题目进行练习 | Alpha |
考期日历 | 支持用户根据考期安排设置考期日历,产品将根据考期日历对用户进行贴心提醒 | Beta |
知识卡片 | 对于不便于设置为选择题形式的知识内容,均可以通过知识卡片的形式进行理解、记忆。知识卡片对知识进一步细化、整理和归纳,提升用户学习效率。开发团队将导入部分知识卡片,用户也可以自行添加设置卡片 | Beta |
问答社区 | 支持用户查看Open、Closed、All和Mine四种状态下的讨论贴,用户可以发帖,回帖,参与讨论,产品将综合关注度、发帖时间等因素对不同状态的讨论贴分别排序后呈现 | Beta |
资源社区 | 支持用户添加资源描述上传资源链接、根据链接下载资源等 | Beta |
在哪里发布了软件?
微信小程序平台和安卓APP二维码下载
详见Alpha-发布说明
项目发布后是否满足了全部典型场景?剩下的为何没有满足?
目前暂未满足全部典型场景,部分未完成的场景将在beta版本阶段迭代开发。
已实现场景(Alpha版本) | 未实现场景(Beta版本) |
---|---|
APP端邮箱注册与登录 | 讨论区(问题讨论,经验分享) |
小程序端微信登录 | 资源分享社区 |
多模式刷题功能(顺序做题,随机刷题,易错刷题) | 考期日历倒计时 |
模拟考试 | 知识卡片 |
题目搜索 | |
题目评论区 | |
收藏题目列表 | |
错题列表 | |
背题模式 |
6. 竞品评价
思考一下竞品出于什么原因并没有囊括该特色功能,团队凭借什么样的优势实现了它?
从竞品自救题库的NABCD分析博客中可以看出,竞品开发团队并未进行充分有效的需求分析(至少在博客中并未体现需求分析调研结果)
从竞品自救题库的开发过程记录中可以看出,竞品开发团队存在部分成员消极怠工现象,开发进度较为缓慢
题士开发团队在产品功能开发前,对预期使用用户进行了较为详尽的需求分析;在开发过程中,配合默契,团队开发进度推进合理,每位开发人员的开发工作均做到全身心投入
7. 自我评价
团队成员对这些功能的自我评价如何,是否达到了预期目标,为什么?
-
根据发布后的问题反馈,Alpha开发的功能仍存在bug需要修复、体验需要提升
-
部分前端组件确实略丑,将进一步改进
-
Alpha功能达到预期,Beta功能将如期实现
-
Beta开发阶段将继续冲冲冲!
再次注明:项目与团队总结部分为亮点中涉及的项目相关内容的进一步扩充,总结部分未覆盖的内容已在亮点部分说明