
【Beta】“北航社团帮”发布声明——小程序v2.0与网页端v1.0前端
【Beta】“北航社团帮”测试报告——小程序v2.0与网页端v1.0java
【Gamma】“北航社团帮”发布说明——小程序v3.0python
【Gamma】“北航社团帮”测试报告——小程序v3.0linux
团队介绍

HansBug |
架构师,后端组长。 |
作过一些简单的开发,写过一些简单的算法题,喜欢没事写写程序,偶尔去创造一下奇迹改变一下社会。 |
 |
马振亚 |
后端开发 |
擅长各类行政打琐事物(给各位大佬端茶递水) 能写 c/java/python/js 求各位大佬带带 |
 |
庄廓然 |
后端开发 |
熟悉java,c++,c,c#,参与过的安卓开发,后台开发,写过unity游戏脚本,工做积极,但愿向各位大佬学习。 |
 |
周雨飞 |
前端开发 |
主要负责的工做是给其余几位大佬端茶递水 擅长Java/Python 前端和后端都会一点点 求各位大佬带飞 |
 |
李大 |
前端开发 |
活泼开朗。非计算机/软工学生,16级高工3系,接触过一些简单的软件项目(app、unity游戏),但愿在软工课上体验较复杂的软件项目团队开发,积累经验。学习写代码,也学习如何进行团队交涉,和科班同窗多多接触,补一补不怎么牢固的cs基础。 |
 |
廖青城 |
前端开发 |
↑来自生医学院~ 可是喜欢写bug而后debug(什么x),但愿经过该项目学会如何严谨的写bug~(′゜ω。‵) |
|
彭宇飞 |
需求分析,沟通社联 |
社联主席。经管学院信息管理专业,逻辑思惟较强,产品经验比较丰富。作过一些小型的算法和数据库,要积极向组内各位同窗学习! |
|
谢静芬 |
PM |
计算机系大三狗 人送外号分解(因此常常在数学课躺枪...) 虽然逻辑严密,擅长写文档(误) 可是算法能力较弱,编程效率较低 但愿在团队中向大佬们学习,提高自我~ |
 |
其中,青城和宇飞没有选软件工程课,属于外援~~c++
项目愿景
在用户群体上,咱们将用户分为三类人:普通学生、社团管理员、社联管理员。git
咱们针对不一样的用户群体开发出不一样的平台和功能:github
- 普通学生:使用“北航社团帮”小程序,功能包括:浏览各社团活动和动态,浏览各社团的文字和视频介绍,在线申请加入社团,报名社团活动,接收社团的活动通知,生成并分享社团活动海报图片。以上功能均已实现,alpha阶段计划的支付社团社费功能未实现。
- 社团管理员:使用“北航社团帮网页端”管理社团,功能包括:编辑社团信息,设置入社条件,管理社员,向社联报备活动、申请活动场地,发布投票,发布消息,发布活动、审核报名人员、向报名人员发送活动通知。上述功能最终实现了:编辑社团信息,发布活动,发布新闻。未实现的功能中,管理社员和活动推送在小程序端实现,其他功能咱们认为不属于项目当前阶段高优先级、高收益功能,未实现。
- 社联管理员:在网页端管理社团,拥有全部社团社长权限。初期计划时但愿支持活动申请和场地申请,并创建社团星级评定系统,咱们认为这些任务在当前阶段优先级不高,未实现。
除了上面未实现的功能,其实还有不少可以挖掘的功能,如wowotou团队在前期规划了但还没有实现的一些好功能:在线售卖社团文化产品、社团论坛、社团网盘等,这些功能的真实需求和收益评估也还须要后续调查。redis
整个项目的预期典型用户
- 大一萌新
- 需求
- 有某个平台整合北航社团信息供了解
- 能够随时提交线上入社申请
- 使用场景
- 刚入学时了解社团信息
- 百团大战时完成线下流程后提交线上申请
- 错过百团大战后提交入社申请
- 重要性
- 很是重要,若是从大一开始就承认这个小程序,并时常关注北航社团的信息,那么这部分用户的使用年份会很长;另外,若是萌新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测试报告
gamma测试报告

文档与技术博客
文档
- 接口文档
- 需求分析文档
- 其余相关资源(如未实现功能中的场地申请表格等)
后端
环境配置:
- 少昂: gitlab快速部署流程
- 少昂: win10下vagrant+centos7 rails虚拟开发机配置流程
- 少昂: 【vagrant】硬盘扩容
- 廓然: 利用Vagrant+virtualbox在windows下进行linux开发
技术点:
- 廓然: 数据库1+N查询问题
- 廓然: rails控制台调试路由
- 振亚: 如何避免在代码中多重render
- 振亚: 用户验证码验证机制---redis缓存数据库的使用
- 雨飞: 小程序扫码登陆网页端原理
- 雨飞: 小程序模板消息
前端
- 李大: 小程序前端开发流程——用实例介绍
- 廓然:微信小程序的formid获取
- 静芬:使用wx.downloadfile将图片下载到本地临时存储
- 静芬:海报图片生成——小程序canvas画布
相比alpha阶段,软件质量提升
- beta阶段更换了服务器,响应时间提升;同时使用了云图床,图片下载速度提升。
- 功能拓展
- beta阶段
- 支持社团信息、新闻、活动发布
- 讨论区
- 申请入社
- 社员管理
- gamma阶段
- 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】设计与计划。
关于之前的项目
- 虽然咱们的项目在名义上,是基于之前的项目,但其实两个项目只是有所交叉,其实区别很大,并且之前项目的版本太旧跑不起来。所以咱们在整个项目中实际并未使用任何以前的代码,彻底本身重构开发。