【Beta】“北航社团帮”发布声明——小程序v2.0与网页端v1.0
【Beta】“北航社团帮”测试报告——小程序v2.0与网页端v1.0
团队介绍
- 团队名称:北航红太阳 BuaaRedSun
- 团队成员介绍:(点击名字跳转至个人博客)
成员 | 角色 | 自我介绍 | 照骗 |
---|---|---|---|
HansBug | 架构师,后端组长。 | 做过一些简单的开发,写过一些简单的算法题,喜欢没事写写程序,偶尔去创造一下奇迹改变一下社会。 | |
马振亚 | 后端开发 | 擅长各种行政打杂事物(给各位大佬端茶递水) 能写 c/java/python/js 求各位大佬带带 |
|
庄廓然 | 后端开发 | 熟悉java,c++,c,c#,参与过的安卓开发,后台开发,写过unity游戏脚本,工作积极,希望向各位大佬学习。 | |
周雨飞 | 前端开发 | 主要负责的工作是给其他几位大佬端茶递水 擅长Java/Python 前端和后端都会一点点 求各位大佬带飞 |
|
李大 | 前端开发 | 活泼开朗。非计算机/软工学生,16级高工3系,接触过一些简单的软件项目(app、unity游戏),希望在软工课上体验较复杂的软件项目团队开发,积累经验。学习写代码,也学习如何进行团队交涉,和科班同学多多接触,补一补不怎么牢固的cs基础。 | |
廖青城 | 前端开发 | ↑来自生医学院<br/>但是喜欢写bug然后debug(什么x),希望通过该项目学会如何严谨的写bug(′゜ω。‵) | |
彭宇飞 | 需求分析,沟通社联 | 社联主席。经管学院信息管理专业,逻辑思维较强,产品经验比较丰富。做过一些小型的算法和数据库,要积极向组内各位同学学习! | |
谢静芬 | PM | 计算机系大三狗 人送外号分解(所以经常在数学课躺枪...) 虽然逻辑严密,擅长写文档(误) 但是算法能力较弱,编程效率较低 希望在团队中向大佬们学习,提升自我~ |
其中,青城和宇飞没有选软件工程课,属于外援~~
项目愿景
在用户群体上,我们将用户分为三类人:普通学生、社团管理员、社联管理员。
我们针对不同的用户群体开发出不同的平台和功能:
- 普通学生:使用“北航社团帮”小程序,功能包括:浏览各社团活动和动态,浏览各社团的文字和视频介绍,在线申请加入社团,报名社团活动,接收社团的活动通知,生成并分享社团活动海报图片。以上功能均已实现,alpha阶段计划的支付社团社费功能未实现。
- 社团管理员:使用“北航社团帮网页端”管理社团,功能包括:编辑社团信息,设置入社条件,管理社员,向社联报备活动、申请活动场地,发布投票,发布消息,发布活动、审核报名人员、向报名人员发送活动通知。上述功能最终实现了:编辑社团信息,发布活动,发布新闻。未实现的功能中,管理社员和活动推送在小程序端实现,其余功能我们认为不属于项目当前阶段高优先级、高收益功能,未实现。
- 社联管理员:在网页端管理社团,拥有所有社团社长权限。初期计划时希望支持活动申请和场地申请,并建立社团星级评定系统,我们认为这些任务在当前阶段优先级不高,未实现。
除了上面未实现的功能,其实还有很多能够挖掘的功能,如wowotou团队在前期规划了但尚未实现的一些好功能:在线售卖社团文化产品、社团论坛、社团网盘等,这些功能的真实需求和收益评估也还需要后续调查。
整个项目的预期典型用户
- 大一萌新
- 需求
- 有某个平台整合北航社团信息供了解
- 可以随时提交线上入社申请
- 使用场景
- 刚入学时了解社团信息
- 百团大战时完成线下流程后提交线上申请
- 错过百团大战后提交入社申请
- 重要性
- 非常重要,如果从大一开始就认可这个小程序,并时常关注北航社团的信息,那么这部分用户的使用年份会很长;另外,如果萌新M之后当了社团管理员,也会向社员推广这个产品。
- 需求
- 社团活动活跃用户
- 需求
- 查看感兴趣的社团近期动态
- 接收感兴趣的活动的通知
- 使用场景
- 偶尔查看感兴趣的社团近期动态
- 关注感兴趣的活动,活动前收到消息通知提醒
- 重要性
- 非常重要,他们是小程序的长期活跃用户。有他们社团管理人员才愿意发社团动态。
- 需求
- 社团管理人员
- 需求
- 编辑社团信息
- 发布社团新闻
- 发布社团活动
- 处理入社申请
- 管理社员
- 导出社员信息(未实现)
- 场地申请(未实现)
- 收取社费(未实现)
- 使用场景
- 同需求
- 重要性
- 非常重要,有他们才有新鲜的社团动态,才能吸引用户。
- 需求
- 社联管理人员:
- 需求
- 管理社团动态
- 导出社团信息(未实现)
- 使用场景
- 社团注册及评级时导出信息进行处理
- 平时对一些社团的动态(活动)进行管理
- 需求
功能展示
- 新闻主页 - 点击跳转公众号文章
- 活动主页
- 活动详情页
- 生成海报分享
- 海报
-
活动推送
-
社团主页
- 社团详情页
- 我的页面
- 我的申请
- 社团管理
- 网页端
原预期用户数量
- alpha阶段小程序发布后一周内,用户量累计500人
- beta阶段小程序发布后一周内,用户累计1000人
- beta阶段网页端发布后一周内,15位社长和社联进行使用,约20人。逐渐让各社长认证,累计入驻社团50个。
项目使用情况数据分析
用户量变化
- 图中三个箭头为三个阶段发布
- alpha阶段发布后我们靠自己推广,发布一周后用户量达到470。
- beta阶段发布后我们联系社联进行推广,于6.8号用户量超过1000,截止6.17,用户量达到1100。
- gamma阶段发布时间点已接近考期,我们的目标用户在这个阶段里都没有理由会使用小程序,我们仅在社长群里进行了新功能说明,未进行额外推广,但是可以看到用户量依然在缓慢增长,从发布起到6.17,用户量增加70。
学生认证人数
- beta阶段我们加入了新功能支持北航学生认证,认证时需要补充个人手机号信息。
- 截止6.17,共有325人进行了学生认证,其中180人为18级学生,100人为17级学生,38人为16级学生,7人为15级。
社长认证人数
- beta阶段我们加入了社团管理功能,需要社长进行认证后才能管理社团。
- 截止6.17,共有67个社团完成了社长认证,还有54个社团社长未认证。
入社申请数
- 截止6.17,共有264个入社申请,说明线上申请加入社团这一需求是真切的,220条被处理。
活动发布
- beta阶段我们在网页端支持了社团活动发布
- 截止6.17,共发布了12个活动。
新闻发布
- beta阶段我们在网页端支持了社团新闻发布,
- 截止6.17,共发布了93条社团新闻。其中有16条是社团管理人员自主发布的。
网页端使用情况
- 截止6.17,共有55个社团使用过网页端编辑社团信息。
小程序打开次数
- alpha发布和beta发布后都形成了打开次数的高峰,beta发布后的高峰持续时间更长,峰值也更大。
- beta发布5.25-29之间我们依靠自己推广,峰值下降得很快;5.29号后社联参与推广,可以考到形成的峰持续时间长得多。gamma阶段发布后我们并未进行推广,尽管临近考期,但仍有少量用户偶尔使用小程序。
小程序使用时间
- 用户打开小程序的次数还不足以说明小程序使用情况,结合用户在小程序上停留的时间和访问深度我们可以进一步说明小程序的使用情况。
- alpha阶段发布至beta阶段发布
- beta阶段发布至今
- 可以明显看出,beta阶段发布后用户在小程序上停留的时间明显变长,页面访问深度也增大,说明用户在预览更多信息。在更真切地使用小程序。
软件工程记录
- 燃尽图
- 每日计划
- 任务计划,进度跟踪,有效防止摸鱼
- 任务细化分配
- 贡献分记录
测试
文档与技术博客
文档
- 接口文档
- 需求分析文档
- 其他相关资源(如未实现功能中的场地申请表格等)
后端
环境配置:
- 少昂: gitlab快速部署流程
- 少昂: win10下vagrant+centos7 rails虚拟开发机配置流程
- 少昂: 【vagrant】硬盘扩容
- 廓然: 利用Vagrant+virtualbox在windows下进行linux开发
技术点:
- 廓然: 数据库1+N查询问题
- 廓然: rails控制台调试路由
- 振亚: 如何避免在代码中多重render
- 振亚: 用户验证码验证机制---redis缓存数据库的使用
- 雨飞: 小程序扫码登录网页端原理
- 雨飞: 小程序模板消息
前端
相比alpha阶段,软件质量提高
- beta阶段更换了服务器,响应时间提高;同时使用了云图床,图片下载速度提高。
- 功能拓展
- beta阶段
- 支持社团信息、新闻、活动发布
- 讨论区
- 申请入社
- 社员管理
- gamma阶段
- 支持海报生成
- 消息推送
- 个人信息编辑
- beta阶段
- bug fix
- 修复了自己发现以及用户反馈的bug,alpha发布后前后端累计超过50个
- 用户反馈
- beta阶段接入社联获取用户反馈
- gamma阶段面向社长拉起小程序答疑群获取反馈
- 之后发现bug的频率大幅度提高
- 有了从基层了解需求的感觉
- 共发出7次问卷收集使用体验、需求,根据问卷结构理性调整任务规划
- 联系用户进行debug
相比alpha阶段,软件工程质量的提高
- 阶段前规划和任务分配
- 每日计划与跟踪
- 注释
- gamma阶段集中补充了前后端注释
- 后端重要模型、函数,前端复杂页面结构、异步js调用都写了注释
- 冗余代码清理
- beta阶段结束和gamma阶段结束都清理了前后端冗余代码,主要为前端页面重制所留下的冗余代码。
- 需求筛选
- gamma阶段的一个工作重心是从茫茫多的需求中挑选当前阶段高优先级的任务
- 接口文档审核
- 前后端互审保证接口设计符合需求
- 代码审核
- beta阶段雨飞参与后端代码审核,代码审核效率明显提高
- 服务器崩溃次数相比从alpha阶段起渐少,后端开发人员逐渐熟悉,服务器长期保持正常工作
- 代码风格统一
- beta阶段后端进行了代码风格统一,涉及模型和接口数据格式
- 风险控制
- gamma阶段根据团队成员时间分配情况预估进度进行适当任务调整保证最终任务能按时完成
- 测试
- 保持全接口覆盖的单元测试
- 总体覆盖率超过90%
- 500并发压力测试保证服务器在高流量下可以正常工作
- 前端对照需求设计细致地进行权限检查和功能检查
- scrum meeting
- 开会效率逐渐提高,前后端对接效率提高;开会时长逐渐减少,能更好地组织会议流程,先按计划开完会,有额外问题的人再留下来继续解决,节约无关的人的时间。
Beta和Gamma阶段学到了什么
Beta
- 技能上的主要提升:
- 使用对象存储中间件来作为图床,使得网页端图片的上传成为可能,也使得小程序端获取图片更为流畅。
- 学会了使用redius保存10分钟有效的缓存key数据来进行社长认证。即,每当社长想要跟社联申请社长认证时,就由社联调用这个接口,输入社团id号,生成10分钟内有效的key,社长即可进行认证。
- UI的设计:PM通过对比多种类似布局的小程序或APP,以及与前端同学进行讨论,来对许多页面的原型设计进行了改版,虽然只是处在模仿和拼接的阶段的,但效果已经不错,下一阶段会争取和设计师合作,从模仿提升到设计。
- 需求文档的维护和更新:上一阶段对需求文档没有进行更新,而只是停留在口头交代,本阶段对需求文档进行了维护和更新,使得团队成员对需求的理解更加深入,不足的地方在于需求文档的书写不大规范还需完善。
Gamma
-
技能上的主要提升:
1.为使用微信的服务:小程序码页面跳转和模板消息推送,我们将服务器接入了微信服务器。熟悉了微信服务接口的使用流程并在实践中积累了一些debug经验。
2.前端学会用js生成图片(海报),实现过程可谓到处是坑,相当艰辛。
3.后端实现了一个简单的定时任务系统,用于在社团活动前开始24h推送消息到用户微信。
4.需求筛选。Gamma阶段我们仍有很多可以实现的功能(之前版本功能的拓展,社联希望我们支持的功能,社团管理人员希望我们支持的功能,一般用户希望我们支持的功能),我们最终综合实现成本、收益分析、后续维护问题以及用户需求调研进行了筛选决定了gamma阶段实现的功能。锻炼了软工的需求分析能力。
5.面向当前阶段用户建立了一个答疑群,对小程序使用进行了答疑,用户反馈了很多Bug以及意见,对小程序的改善有重要作用。锻炼了与用户沟通的能力。
-
UI设计:这一版没有大改UI,新的UI继承上一版的风格,小程序UI整体风格逐渐统一。
-
文档维护和代码注释:这一版补充了一些技术博客、配置文档,保持新接口在接口文档中的更新,并在代码中加入许多重要注释,方便后续维护和增量开发。同时,前后端都对冗余代码进行了删除,有助于软件工程质量的提高。
文档位置和新人入口
- 文档在gitlab上,主要包括:
- 明年的同学若继续开发这个项目,可能会有一些抱怨,但是怨气不会太大。因为我们的文档还算完备(如上),能够让新学生了解整个项目从0到1的过程,以及最重要的接口文档。其中,上述快速搭建环境文档可以指导新人顺利运行我们的项目。
- gamma阶段我们对后续还可以继续开发的功能做了详细的需求分析讨论,后续开发的同学可以考虑参考该文档。【Gamma】设计与计划。
关于以前的项目
- 虽然我们的项目在名义上,是基于以前的项目,但其实两个项目只是有所交叉,其实区别很大,而且以前项目的版本太旧跑不起来。因此我们在整个项目中实际并未使用任何之前的代码,完全自己重构开发。