一、需求规格说明书
面向用户分析
我们的选题是 iGDUT 小程序的一个子板块「活动墙」,面向的用户是有两个方向,一是广工大的各大学生机构和学生组织;二是广工大的所有学生。
活动墙,顾名思义,是给哥打学生组织或者机构,发布活动信息的地方。举个例子,比如最近信息工程学院举办的信息杯竞赛,就可以通过在我们的活动墙上发布信息杯的竞赛活动信息,来推广这个活动,使得能够被更多学生看到、了解到这个活动。既为活动主办方提供了曝光的渠道,也为广大学生提供了一个了解活动、丰富课外生活的窗口。
功能性需求
本项目的功能性需求主要包含两个部分:面向机构用户的 Web 端,和面向普通用户的小程序端。
面向机构用户的 Web 端:
该部分主要面向的用户,是各大学生组织和机构的负责人。该部分需要具备的功能需求有如下几个:
- 登录注册
具备注册和登录功能,其中,注册需要完成实名认证和机构认证。登录则通过小程序扫码的方式,实现快捷登录,优化用户体验。
- 内容编辑、发布和管理
平台内置富文本编辑器,支持编辑类似于微信公众号推文的内容形式,并且支持通过微信公众号推文链接、一键快速导入内容。
能够对内容进行发布和管理。内容发布需要经过审核流程,审核通过后进入“待发布”状态,用户可以随时进行发布。发布后也可以对内容进行申请头条广告位、删除内容等内容管理操作。
- 活动内容数据的统计和查看
通过对小程序端的数据埋点和收集,实现针对每个活动的数据统计。并支持机构在管理后台查看每个活动的统计数据。
面向普通用户的小程序端:
- 活动列表的查看、筛选、排序和搜索
用户可以在活动墙板块中,以列表的形式查看活动,并且点击查看活动详情。除此之外,还需要能够支持按照特定的范围和条件,来对活动列表进行筛选和排序。并且能根据关键词来搜索特定的活动。
- 查看活动详情
用户通过点击活动列表的某一项,进入对应活动的详情页,来查看活动详细信息。要支持活动详情的图文并茂查看。
技术需求
本项目的技术需求也可以划分为两个部分:面向机构用户的 Web 端,和面向普通用户的小程序端。
面向机构用户的 Web 端:
- 登录注册
注册环节需要具备接入 iGDUT 完成实名认证的功能,其中涉及到前后端、Web 端和小程序端的多端交互。登录环节由于采用手机扫码登录,因此依然设计Web 端和小程序端的多端交互,需要从技术上解决多端交互的状态机维护、防御欺骗攻击等问题。
- 内容编辑、发布和管理
由于平台内置富文本编辑器,并且支持通过微信公众号推文链接、一键快速导入内容。因此,首先需要具备富文本编辑能力,并且需要具备抓取和解析微信推文源代码的能力。
活动内容的审核流程,涉及内容安全的问题。因此,需要解决能自动识别不良、有害以及涉政信息的能力,同时还需要具备出现问题时快速切断链接的能力。
面向普通用户的小程序端:
- 活动列表的查看、筛选、排序和搜索
要实现对活动列表的查看、筛选、排序和搜索,就必须先对活动进行打标签、分类等操作。这就要求我们的系统有一定的自动分类能力,然后辅以用户发布时手动设置的标签,然后实现对活动内容的快速索引,从而实现高效的排序和搜索。
此外,需要引入 CDN 和分布式架构设计,使得系统能够承载 2000 人并发访问,以应对大多数情况下用户使用场景的需求。
- 查看活动详情
查看丰富、多种内容形式的活动详情页,意味着小程序端需要支持多种形式内容的富文本渲染能力,以及具备打开率、读完率、阅读时间、分享数据的收集和统计,以便机构用户在管理后台查看活动数据。
二、预期用户量
预期用户量 25000 ,这是根据很长一段时间内的平均日活计算得出。
三、系统的真实性、可用性以及价值阐述
真实:本项目被设计为小程序 iGDUT 的子版块之一,而 iGDUT 小程序已有数万日活,本项目一开发完成上线,即可立即触达数万真实用户,不仅需求和资源真实存在,上线之后所有的场景和使用数据也都真实可考。
可用:iGDUT 如今已每日服务数万用户,活动墙一经上线,所有功能都即时可用。
有价值:当前,社团举办活动的宣传和推广主要靠发传单和摆摊以及公众号推文朋友圈传播,难以触达大量用户;另一方面,很多想要参加活动的学生苦与无从获得活动信息。于是我们在两者之间搭建一道桥梁,在双方之间去做一个信息的聚合和分发,对接双方需求。
如今是信息爆炸的时代,每天我们都浸泡在大量的信息之中,所以需要有一个渠道去整合信息,帮助人们筛选自己想要的信息。
综上,本项目在日常生活中贴合我们实际的需求,能为用户产生持续且巨大的价值。
四、团队项目的码云链接、issues 截图
团队项目的码云链接:https://gitee.com/sixers/activityWall-Web (前端)
https://gitee.com/sixers/activityWall-Server (后台)
注:因项目特殊性,代码不能公开,因此仓库是私有的。要检查仓库,请发邮件联系我我们团队 [email protected]
,抱歉!
我们对每周的开发计划都建立了 issues,issues 截图如下:
五、团队项目的时间安排表
原先的计划:
时间 | 事项 |
---|---|
第9周 | 1.进行需求分析,编写需求文档 |
2.原型设计,设计第一版 UI,队员估计任务难度并学习必要的技术 | |
3.编码规范完成、平台环境搭建完成、初步架构搭建 | |
4.开发人员确立前后端接口文档 | |
第10周 | 1.原型改进(给目标用户展现原型,并进一步理解需求) |
2.架构设计,WBS, 团队成员估计各自任务所需时间 | |
3.制定测试计划 | |
第11周 | 1. 团队项目 Alpha 任务分配计划 |
2. 连续7天的 Alpha 敏捷冲刺,7 篇 每日 Scrum Meeting 博客+代码提交 | |
第12周 | 1.用户反馈 + 测试计划改进 |
2. 团队 Alpha 阶段个人总结 | |
3. 团队项目 Alpha 博客:发布说明、测试报告、展示博客、项目管理 | |
第13周 | 1. 团队项目 Alpha 博客:事后分析 |
修正后的计划:
时间 | 事项 |
---|---|
第9周 | 1.进行需求分析,编写需求文档 |
2.原型设计,设计第一版 UI,队员估计任务难度并学习必要的技术 | |
3.编码规范完成、平台环境搭建完成、初步架构搭建 | |
4.开发人员确立前后端接口文档 | |
第10周 | 1.UI 改进,并邀请一些用户提出意见,跟进修改并最终定稿第一版UI |
2.架构设计,WBS, 团队成员估计各自任务所需时间 | |
3.初步开展开发工作,制定测试计划 | |
第11周 | 1. 团队项目 Alpha 任务分配计划 |
2. 连续7天的 Alpha 敏捷冲刺,7 篇 每日 Scrum Meeting 博客+代码提交,每日与用户交流开发进展,听取用户意见 | |
第12周 | 1.用户反馈 + 测试计划改进 |
2. 团队 Alpha 阶段个人总结 | |
3. 团队项目 Alpha 博客:发布说明、测试报告、展示博客、项目管理 | |
第13周 | 1. 团队项目 Alpha 博客:事后分析 |
矫正计算方法:
上表的修改主要集中在第 10 、11 周。
我们提早引入用户的参与,部分修正开发流程,让用户尽可能全程参与到我们的产品设计中来。
六、团队的分工
- 莫少政:负责产品设计和前端开发,统筹团队开发工作和架构设计,验证技术需求。
- 黄思扬:负责前端开发,设计 Web 原型图,和后端人员确立接口文档以及开发规范。
- 余泽端:负责后台方面的开发,进行接口对接,与前端开发人员确定接口文档,共同完成每周的作业博客。
- 江海灵:我在此次项目开发主要完成后端服务器逻辑操作,同时在保证小程序正常运行的情况下(测试正常下)做相关文案工作,缓解团队压力。
- 温治乾:这次我的分工安排为负责后端逻辑处理的一些工作,尽管可能经验有点欠缺,不过我会好好为之付出。同时与前端的同学沟通好数据的传递、接口的对接等等。
七、每个人完成的情况
- 莫少政:与团队一起讨论需求,完成了需求分析和初步的产品设计,完成对整个产品流程和交互的初步构思和设计,对部分可能存在问题的技术需求完成了验证。
- 黄思扬:与队友共同分析确立需求,完成了第一版原型图的设计,确立了 Web 端页面组件逻辑,与后端开发人员确立了第一版接口文档。
- 余泽端:与前端开发人员确定接口文档,理清基础业务逻辑,完成后台的基础架构。
- 江海灵:我主要担任项目测试工作,由于项目正在开发,暂不能进行测试工作,于是我帮助团队分担项目需求分析书。
- 温治乾:与前端人员已沟通好接口方面的内容,对整体的逻辑有了进一步的了解。
八、每个人的感想
- 莫少政:这几天的需求讨论,团队之间增进了感情,更重要的是,大家对我们要实现的项目有了更清晰的认识,对之前可能存在有些模糊和分歧的地方,达成了共识。
- 黄思扬:经过这几天与队友一起分析讨论需求,以及到确立开发规范和逻辑,我感受到了一个团队高效的合作氛围。除此之外,也开始一步步接触到了完整规范的开发流程,明白了高质量的需求规格说明书之于一个项目的重要性。
- 余泽端:在经历一个合作团队项目的开发过程中,最大的收获便是合作分工,交流进步过程的锻炼。理清业务逻辑的前提是与团队负责产品设计,需求分析人员进行讨论。在确立接口文档的过程中,需要进一步的理解需求,与前端开发人员共同讨论功能的设计,制定规范的接口,制作合格的需求文档。
- 江海灵:我很高兴能参与到软工团队项目开发中,我们一致认为活动墙的推动将给大学生(目前试点立于我们学校)带来越大的便利,大学生不需要频繁从多种渠道获取活动信息,我们目标是做到只在一处地方就能获取所有活动,无须花过多时间在于搜索;另外地对我们成员来说,由于老师常常提供帮助性建议,少让走弯路,我们不仅比较轻松完成团队前阶段任务,而且收获团员间深厚友谊。
- 温治乾:很高兴这次软工作业能够跟班里几个很优秀的同学合作,这不仅能够让这次的作业完成地更高质量,同时与这样优秀的同学一起做这项工作还给了我一次非常宝贵地机会学习他们在做一个项目时考虑的东西、注重的地方,以及能够学习他们做事的细节。我们这次打算做的活动墙,我认为是一个非常具有社会价值的项目,我希望能在其中发挥自己一份小小的力量。