【团队项目3】需求改进&系统设计
一、需求 & 原型改进
1、针对课堂讨论环节老师和其他组的问题及建议,对修改选题及需求进行修改
根据用户反馈,我们针对如下问题做了修改:
问题1:如何保证机构是否是官方的?平台是否有监管?
修改1:我们对管理员要求进行手机号绑定,以及进行实名验证。最后,机构创建时需要提供加盖机构公章的证明文件或者聘书等证明材料。机构的创建需要进行审核。
问题2:我如何快速找到自己经常关注的社团的活动信息?
修改2:增加关注功能,关注的机构的活动再列表中展示时,将获得显著星标的标识,能够一眼明显区分。
2、 修改完善上周提交的需求规格说明书
用户故事1:
闲得无聊,打开 iGDUT 小程序,看看活动墙有啥好玩的新活动。欸好像这个不错,于是点开查看详情,了解了活动信息之后,前往参加活动。
用户故事2:
我是学生会新媒体部门的干事。现在学生会举办了一个活动,想要宣传,但是推文的阅读量不是很高。我发现 iGDUT 上有一个活动墙,上面发布的活动好像都挺高的曝光量。于是我注册了机构,并且将活动推文一键导入进去,发布了出来,获得了较好的宣传效果。
二、系统设计
后台架构设计
小程序端,Web端(统称前端),发送请求到云端,云端维持一个Nginx反向代理模块,将接受到到的请求,进行分发到不同业务逻辑服务器,实现负载均衡,各个业务逻辑处理服务器模块接收到请求后,进行处理,调用数据库模块,实现数据持久化。
注册流程
机构负责人进入Web管理后端,注册身份,输入自己的学号,姓名等信息,Web端请求后端,将学号,姓名信息上传至云端
云端调用微信接口,生成唯一的序列号的二维码,并对应前端传入的学号,姓名,存进数据库模块(序列号表),设置二维码状态
用户扫描二维码进入小程序端,选择绑定 iGDUT 小程序用户,小程序端将序列号以及小程序端的用户信息(学号,姓名)上传至云端
云端根据小程序端上传的信息,查询系列号表,进行比对验证Web端与小程序端绑定的用户信息是否一致,如果一致,修改二维码状态为已绑定,返回确认信息给小程序端,否则设置二维码状态为无效。
Web端轮询云端,二维码状态,当二维码状态绑定成功之后,用户可以选择注册,并将机构,手机号等信息上传至云端
进入注册流程的最后一步,云端根据序列号去序列号表查询到用户数据,并且将注册上传的机构名等信息,记录存进机构表以及用户表。
数据库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种状态
④ content:
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极速浏览器 |
最新文章
- Opencv step by step - 视频进度条
- JUC回顾之-Semaphore底层实现和原理
- 5 DML语言
- ARM架构下linux设备树加载的方法
- hdoj 3065 病毒侵袭持续中(AC自动机)
- Hadoop集群出现no data node to stop的解决方案
- Python 员工信息管理系统
- 匿名函数function前面的! ~等符号作用小解
- Python学习第五堂课
- Mongo安装与使用
- python 配置导入方式
- unbuntu 安装 teamviewer
- jenkins--svn+Email自动触发2(jenkins系统配置)
- MySQL命令:增删与改
- java.util.stream 库简介
- 微信小程序交流群,欢迎加入,其中微信小程序开发群、Jenkins开发群是有问必答群
- (转)为什么所有浏览器的user-agent都是Mozilla
- hdu 4540 dp
- 网络配置br0 brtcl
- atitit.javascript调用java in swt attilax 总结
热门文章
- Java - IO 内存流和打印流
- 2018最新cocoapods详细安装和使用
- jeesite3环境部署时初始化数据库注意问题
- Azkaban(3.x)编译安装使用
- ubuntu 桌面版, ssh 连接时使用,x转发进行使用 gnome-terminal 时出现:Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached 错误
- driver.find_element_by_xpath.clear()无法清空输入框默认值
- python之爬取练习
- 【STM32H7教程】第24章 STM32H7的Cache解读(非常重要)
- 【shell脚本】自动磁盘分区,格式化,挂载===autoMount.sh
- oidc hybrid flow 与另外两种模式的异同