【乐词不疲】Beta 阶段项目展示
1.项目与团队亮点
1.1分工
姓名 | 职责 | 工作 |
---|---|---|
任宇翔 | 前端、PM | 原型设计、首页、“贪吃蛇”小游戏 |
鹿鸣 | 前端 | 背单词、抽卡页面、UI绘制 |
王浅秋 | 前端 | 打卡、单词详情、抽卡事件页面、UI绘制 |
彭佳琦 | 前端 | 个人中心页面、UI绘制 |
娜仁丽丽 | 前端 | 统计信息页面、UI绘制 |
刘稼俊 | 后端、PM | 设计、实现对应api功能,服务器部署、测试 |
徐吕进 | 后端 | 设计、实现对应api功能、测试 |
徐凯威 | 后端 | 设计、实现对应api功能、测试 |
项目管理:
代码管理:gitlab 前后端分别建立仓库
进度管理:gitlab issues
API文档 & 测试:在Apifox中编写接口文档
1.2典型用户场景
典型用户一:李明 - 小学生
- 姓名:李明
- 年龄:10
- 身份:小学生
- 生活:家长要求英语学习
- 需求:需要一个能够辅助记忆英语单词的工具,同时能够激发背单词兴趣。
测试场景描述:
- 账号注册与登录:李明访问背单词服务网站,完成注册并登录。
- 词书创建:李明利用网站的自定义功能,创建了一个包含小学相关词汇的词书。
- 学习计划设置:李明根据自己的复习时间表,设置了每天背诵20个新单词的学习计划。
- 智能记忆法:李明利用网站的智能记忆算法,对每个单词进行重复记忆,系统根据遗忘曲线安排复习。
- 学习进度监控:李明每天学习结束后,查看自己的学习进度和记忆效果,系统提供了详细的统计图表。
- 通过抽卡游戏背单词:使用抽卡游戏的功能来复习检验学过的单词,通过随机抽取单词卡片进行学习,增加学习的趣味性和互动性。
- 通过贪吃蛇小游戏背单词:通过贪吃蛇小游戏复习已学单词,在游戏过程中每面对一个单词,系统会显示该单词空缺的字母与两个字母食物待用户作出选择,并在正确回答后继续游戏,从而加深记忆。
- 任务列表和成就系统:李明每天完成学习任务后,系统给予奖励并解锁成就,例如连续学习7天后解锁相关成就。这些成就和奖励帮助李明保持学习动力。
1.3杀手级功能
对比竞品:如“不背单词”、“百词斩”、“墨墨背单词”等专门背单词的软件,缺乏游戏形式来激励用户。
- 添加小游戏:抽卡&贪吃蛇
- 添加成就&排行榜
结合单词学习的抽卡游戏
结合单词填空的“贪吃蛇”游戏
成就&排行榜
1.4项目发布
通过朋友圈、邀请周围同学的方式宣传项目,并以网页形式发布。
已经有超过30名用户使用,并通过问卷方式收集反馈。
1.5 软件工程质量
文档完整性与代码规范
- 项目文档的详尽程度:有框架性的文档,没有描述所有行为的详细文档
代码可维护性与新成员入门
- 代码的组织结构:后端使用django,按照默认结构组织代码
- 代码注释和文档的充分性:注释不甚充分,只有小部分接口函数中有注释;文档基本写明了项目的大致行为
- 新成员上手的难易程度:上手较为简单。前端vue框架,后端django框架。在指定依赖与版本下,前端只需要默认的npm命令,后端只需要使用manage.py文件的默认指令就可以将项目运行起来。
测试策略与覆盖率
-
单元测试的实施情况:对部分复杂接口编写了单元测试,对类似获取某某属性等简单接口基本没有编写
-
测试用例的数量和覆盖率:
17个测试,68%文件覆盖率,68%函数覆盖率,97%类覆盖率
详细见覆盖率测试报告
持续集成与持续部署(CI/CD)
- CI/CD工具的使用情况:基本全程使用gitlab的CI/CD来将项目实时部署在服务器上
- 使用CI/CD工具的原因和好处:简化部署流程、减少任务堆积、自动化减少人工干预、更频繁的更新和维护等等许多好处。
代码量
前端:
后端:
2.项目与团队总结
2.1团队成员的简介和个人博客地址
姓名 | 简介 | 博客 |
---|---|---|
任宇翔 | 前端、PM | 博客 |
鹿鸣 | 前端 | 博客 |
王浅秋 | 前端 | 博客 |
彭佳琦 | 前端 | 博客 |
娜仁丽丽 | 前端 | 博客 |
刘稼俊 | 后端、PM | 博客 |
徐吕进 | 后端 | 博客 |
徐凯威 | 后端 | 博客 |
2.2项目管理
使用gitlab与腾讯共享文档进行管理
Gitlab:前后端均设置仓库,在其中提出issu,发起merge request
腾讯文档:记录每日例会内容
2.3分工协作
在项目设计阶段,前端即按照页面分配给每人任务,后端也依据要实现的api分配给各人。
通过每日例会进行进度汇总,同时出问题了直接在微信群中提出并解决。
经验教训:要提前掌握好各成员的空闲时间以及能够投入到开发中的实际时间。对于完成任务用时要有合理的预测。
2.4 沟通对接
通过微信群聊、腾讯会议、线下例会沟通对接,使用腾讯文档记录
【腾讯文档】例会报告:
https://docs.qq.com/doc/DRFlxaFNTU2tVdWdE
2.5 平衡资源
将任务具体化,页面功能详细化。让每位成员精确了解要实现的功能。积极沟通开发进度,同时做到详略得当。
2.6燃尽图
2.7成员在 Beta 阶段的角色和具体贡献
姓名 | 角色 | 团队贡献分 | 具体的, 可衡量的, 可验证的贡献 |
---|---|---|---|
任宇翔 | PM, 前端 | 54 | 原型设计,首页、抽卡游戏首页编写,“贪吃蛇”小游戏的设计与编写;作为PM之一负责部分文档的撰写。 |
鹿鸣 | 前端 | 51 | 背诵单词界面以及跳转打卡界面,抽卡界面的编写,登陆注册界面编写,排行榜、部分抽卡结果展示等界面的ui设计 |
王浅秋 | 前端 | 50 | 单词详细信息页面,打卡页面及相关功能,事件卡页面,部分ui设计和应用 |
彭佳琦 | 前端 | 56 | 1.个人中心-词书选择、个人信息、排行榜、成就展示页面及方法构建 2.个人中心上述页面、登录注册、单词背诵、抽卡主页UI修改 |
娜仁丽丽 | 前端 | 52 | 1.个人中心-生词本、统计信息页面构建功能 2.画项目UI图 3.主页、界面头部、个人中心统计信息、生词本页面UI修改 |
刘稼俊 | PM,后端 | 53 | 1.因任PM负责的撰写的各个团队报告 2.完成租赁服务器、配置服务器、CI/CD部署项目等事宜 3.完成后端共2451行代码,共12个接口 |
徐吕进 | 后端 | 51 | 1.编写后端 API 和单元测试代码,包括用户登录和注册,标记单词与获取单词等 |
徐凯威 | 后端 | 47 | 1.编写后端 API 和单元测试代码,包括成就和任务的维护、用户经验值和等级的维护、导入词书等 |
2.8用户场景
典型用户一:李明 - 小学生
- 姓名:李明
- 年龄:10
- 身份:小学生
- 生活:家长要求英语学习
- 需求:需要一个能够辅助记忆英语单词的工具,同时能够激发背单词兴趣。
测试场景描述:
- 账号注册与登录:李明访问背单词服务网站,完成注册并登录。
- 词书创建:李明利用网站的自定义功能,创建了一个包含小学相关词汇的词书。
- 学习计划设置:李明根据自己的复习时间表,设置了每天背诵20个新单词的学习计划。
- 智能记忆法:李明利用网站的智能记忆算法,对每个单词进行重复记忆,系统根据遗忘曲线安排复习。
- 学习进度监控:李明每天学习结束后,查看自己的学习进度和记忆效果,系统提供了详细的统计图表。
- 通过抽卡游戏背单词:使用抽卡游戏的功能来复习检验学过的单词,通过随机抽取单词卡片进行学习,增加学习的趣味性和互动性。
- 通过贪吃蛇小游戏背单词:通过贪吃蛇小游戏复习已学单词,在游戏过程中每面对一个单词,系统会显示该单词空缺的字母与两个字母食物待用户作出选择,并在正确回答后继续游戏,从而加深记忆。
- 任务列表和成就系统:李明每天完成学习任务后,系统给予奖励并解锁成就,例如连续学习7天后解锁相关成就。这些成就和奖励帮助李明保持学习动力。
运行环境的要求
本应用为web应用,要求浏览器版本如下
Chrome: 版本 51+
Firefox: 版本 53+
Safari: 版本 10+
Edge: 版本 14+
Opera: 版本 38+
在浏览器中访问“乐词不疲”网站 即可访问主页。
实现功能:
1.基本的背单词功能,比如重复单词记忆、单词详情、生词本、词书选择与上传
2.游戏功能:①抽卡游戏,通过完成每日任务获得抽卡次数,抽卡来进行单词中英文选择的事件
②“贪吃蛇”游戏,通过操控蛇在两个带有字母的食物中选择正确字母的食物来补全屏幕中给定挖空单词。
2.9用户日活
已经有超过30名用户使用,并通过问卷方式收集反馈。
2.10特色功能
对比竞品:如“不背单词”、“百词斩”、“墨墨背单词”等专门背单词的软件,缺乏游戏形式来激励用户。
- 添加小游戏:抽卡&贪吃蛇
- 添加成就&排行榜
2.11软件工程质量
文档完整性与代码规范
- 项目文档的详尽程度:有框架性的文档,没有描述所有行为的详细文档
- 代码规范和风格指南:后端没有明确的代码规范和风格指南,但实践中大家使用蛇形命名法
代码可维护性与新成员入门
- 代码的组织结构:后端使用django,按照默认结构组织代码
- 代码注释和文档的充分性:注释不甚充分,只有小部分接口函数中有注释;文档基本写明了项目的大致行为
- 新成员上手的难易程度:上手较为简单。前端vue框架,后端django框架。在指定依赖与版本下,前端只需要默认的npm命令,后端只需要使用manage.py文件的默认指令就可以将项目运行起来。目前还没有同意整理一个指导新生运行本项目的文档。
测试策略与覆盖率
-
单元测试的实施情况:对部分复杂接口编写了单元测试,对类似获取某某属性等简单接口基本没有编写
-
测试用例的数量和覆盖率:
17个测试,68%文件覆盖率,68%函数覆盖率,97%类覆盖率
详细见覆盖率测试报告
持续集成与持续部署(CI/CD)
- CI/CD工具的使用情况:基本全程使用gitlab的CI/CD来将项目实时部署在服务器上
- 使用CI/CD工具的原因和好处:简化部署流程、减少任务堆积、自动化减少人工干预、更频繁的更新和维护等等许多好处。
经验与教训总结
- 团队在Beta阶段的学习经验:服务器配置选择要留余量;用于沟通协作的平台不宜过多(我们有微信群,腾讯文档,apifox、gitlab),不然成员很容易一段时间不看某平台导致漏掉某条通知;
- 对软件工程的经验教训:不要频繁变动需求,最好在一开始确定需求;CI/CD可以有效加快开发速度;界面设计很重要,美观的UI能给用户留下好印象。