一、需求 & 原型改进

1、针对课堂讨论环节老师和其他组的问题及建议,对修改选题及需求进行修改

根据用户反馈,我们针对如下问题做了修改:

问题1:如何保证机构是否是官方的?平台是否有监管?

修改1:我们对管理员要求进行手机号绑定,以及进行实名验证。最后,机构创建时需要提供加盖机构公章的证明文件或者聘书等证明材料。机构的创建需要进行审核。


问题2:我如何快速找到自己经常关注的社团的活动信息?

修改2:增加关注功能,关注的机构的活动再列表中展示时,将获得显著星标的标识,能够一眼明显区分。

2、 修改完善上周提交的需求规格说明书

用户故事1:

闲得无聊,打开 iGDUT 小程序,看看活动墙有啥好玩的新活动。欸好像这个不错,于是点开查看详情,了解了活动信息之后,前往参加活动。

用户故事2:

我是学生会新媒体部门的干事。现在学生会举办了一个活动,想要宣传,但是推文的阅读量不是很高。我发现 iGDUT 上有一个活动墙,上面发布的活动好像都挺高的曝光量。于是我注册了机构,并且将活动推文一键导入进去,发布了出来,获得了较好的宣传效果。

二、系统设计

后台架构设计

小程序端,Web端(统称前端),发送请求到云端,云端维持一个Nginx反向代理模块,将接受到到的请求,进行分发到不同业务逻辑服务器,实现负载均衡,各个业务逻辑处理服务器模块接收到请求后,进行处理,调用数据库模块,实现数据持久化。

注册流程

  1. 机构负责人进入Web管理后端,注册身份,输入自己的学号,姓名等信息,Web端请求后端,将学号,姓名信息上传至云端

  2. 云端调用微信接口,生成唯一的序列号的二维码,并对应前端传入的学号,姓名,存进数据库模块(序列号表),设置二维码状态

  3. 用户扫描二维码进入小程序端,选择绑定 iGDUT 小程序用户,小程序端将序列号以及小程序端的用户信息(学号,姓名)上传至云端

  4. 云端根据小程序端上传的信息,查询系列号表,进行比对验证Web端与小程序端绑定的用户信息是否一致,如果一致,修改二维码状态为已绑定,返回确认信息给小程序端,否则设置二维码状态为无效。

  5. Web端轮询云端,二维码状态,当二维码状态绑定成功之后,用户可以选择注册,并将机构,手机号等信息上传至云端

  6. 进入注册流程的最后一步,云端根据序列号去序列号表查询到用户数据,并且将注册上传的机构名等信息,记录存进机构表以及用户表。

数据库ER图

各表信息:

① user_info:

Sno:学号

Sname:姓名

Phone:手机号

② institution:

Inst_id:机构ID

Inst_name:机构名

Super_Manager:超级管理员

Manager_1:管理员1

Manager_2:管理员2

Manager_3:管理员3

Manager_4:管理员4

Manager_5:管理员5

③ identifier:

iden_string:验证身份使用的标识字符串

status:二维码状态位,4种状态

info:返回的信息字段(学号、姓名等)

④ content:

Cid:活动文章ID

Inst_id:活动文章发布机构ID

登录流程:

① 在Web端点击登录,会弹出与小程序端相关的登陆二维码,二维码有唯一的不重复的验证标识字符串。

② 扫描二维码后,二维码的状态改变

③ 二维码返回学号、姓名等信息传进后台进行查询,验证是否该用户是否已经注册。

④ 若数据库中没有该用户信息,说明未注册账号,登陆失败。将登陆失败原因反馈给使用者,结束。

⑤ 若存在该用户信息,将与该用户信息对应的绑定机构(如广东工业大学学生会、广东工业大学红十字会等)弹出供用户选择要进行后续操作的相应机构。

⑥ 登录成功,结束。

前端架构设计

框架

采用 Vue.js 作为主要开发框架。

  • 使用iview 作为 UI 框架
  • 使用sass作 CSS 预处理
  • 使用vuex作状态管理
  • 使用vue-router 作路由控制
  • 使用自动化工具webpack 对项目进行打包

目录结构

模块划分

模块概述 功能描述
登录
注册
平台首页 1.展示用户基本信息(包括头像、所属机构);
2.展示滚动式公告栏
3.展示总体统计数据,包括昨日阅读量、新增人数、总用户数
活动管理 1.用户进入页面后即可查看已发布活动列表
2.用户可以发布活动
3.用户可以对已自行发布的活动进行修改、删除操作,点击修改按钮后跳转进入新页面
4.建立搜索功能
数据统计 1.统计已发布活动数以及阅读量
2.统计单篇活动阅读量
发布活动 1.为用户提供一个富文本编辑器,可供用户实时编辑活动内容、插入活动封面等
2.支持从微信公众号推文一键导入,生成专属活动内容。
修改活动 1.用户可在富文本编辑器直接编辑修改已发布活动内容

组件划分

公共组件

公共组件由于具有一次注册,全局使用的特点,所以主要是页面通用的组件。

  • 页面底部(Footer)组件
页面组件

由于框架按功能划分模块,页面由模块组成,页内组件按模块进行分类。

三、 Alpha 任务分配计划

Alpha 阶段迭代冲刺计划甘特图

详细任务分配列表:

任务 工期 / d 优先级 开发人员
开发登录页 1 莫少政
开发注册页 2 莫少政
开发登录功能(后台) 1 余泽端,温治乾
开发注册功能(后台) 1 余泽端,温治乾
开发 Web 端首页 1 黄思扬
开发内容管理页 1 黄思扬
开发账号详情页 1 黄思扬
开发图文编辑页 2 黄思扬
开发数据统计页 2 黄思扬
开发小程序活动列表页 1 莫少政
开发小程序活动详情页 1 莫少政

四、测试计划

4.1 测试计划

(1) 测试的总体策略和方法:

1) 静态方法,通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性,而不运行测试程序

2) 动态方法,通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果

3) 具体方法:

1 单元测试 检验软件基本组成单位的正确性

2 集成测试 检查软件单位之间的接口是否正确

3 系统测试 主要包括功能测试、界面测试、可靠性测试、易用性测试、性能测试

4 回归测试 在软件维护阶段,为了检测代码修改而引入的错误所进行的测试活动

(2) 测试日程安排:第11,12周前半段进行静态测试方法,第12,13周进行动态测试方法

(3) 质量目标:

(4)资源:项目相关人员:这次稳了团队;项目开发时间:3周,11-13周

(5)测试变量矩阵:

用户类型 屏幕分辨率 操作系统 浏览器
数目 3 3 3 3
学生 1280x720 安卓7.0 谷歌浏览器
老师 1920x1080 安卓8.0 火狐浏览器
机构或组织管理人 1280×1024 安卓9.0 360极速浏览器

最新文章

  1. Opencv step by step - 视频进度条
  2. JUC回顾之-Semaphore底层实现和原理
  3. 5 DML语言
  4. ARM架构下linux设备树加载的方法
  5. hdoj 3065 病毒侵袭持续中(AC自动机)
  6. Hadoop集群出现no data node to stop的解决方案
  7. Python 员工信息管理系统
  8. 匿名函数function前面的! ~等符号作用小解
  9. Python学习第五堂课
  10. Mongo安装与使用
  11. python 配置导入方式
  12. unbuntu 安装 teamviewer
  13. jenkins--svn+Email自动触发2(jenkins系统配置)
  14. MySQL命令:增删与改
  15. java.util.stream 库简介
  16. 微信小程序交流群,欢迎加入,其中微信小程序开发群、Jenkins开发群是有问必答群
  17. (转)为什么所有浏览器的user-agent都是Mozilla
  18. hdu 4540 dp
  19. 网络配置br0 brtcl
  20. atitit.javascript调用java in swt attilax 总结

热门文章

  1. Java - IO 内存流和打印流
  2. 2018最新cocoapods详细安装和使用
  3. jeesite3环境部署时初始化数据库注意问题
  4. Azkaban(3.x)编译安装使用
  5. ubuntu 桌面版, ssh 连接时使用,x转发进行使用 gnome-terminal 时出现:Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached 错误
  6. driver.find_element_by_xpath.clear()无法清空输入框默认值
  7. python之爬取练习
  8. 【STM32H7教程】第24章 STM32H7的Cache解读(非常重要)
  9. 【shell脚本】自动磁盘分区,格式化,挂载===autoMount.sh
  10. oidc hybrid flow 与另外两种模式的异同