第三次会议 2019-05-06(第一次迭代)
会议人员
全员参与
会议内容
系统设计
初次迭代决定先完成用户系统、任务系统(先完成问卷任务和快递代取任务,更多任务由后续迭代补充)
据此全员讨论接口设计,初步确定接口如下:
- 用户接口
- 获取邮箱验证码:/code/,method=post
- 用户注册:/user/,method=post
- 用户登录:/token/,method=post
- 得到个人信息:/user/,method=get
- 修改个人信息:/user/,method=put
- 修改密码:/password/,method=post
- 上传头像:/avatar/,method=post
- 得到头像:/avatar/,method=get
- 任务接口
- 得到任务信息:/mission/,method=get
- 发布任务:/mission/,method=post
- 取消任务:/mission/,method=put
- 订单接口
- 查询个人订单:/order/,method=get
- 创建个人订单:/order/,method=post
- 确认个人订单:/order/,method=put
详情总结到api文档
前后端编码内容
下面简单描述编码内容,具体操作需要参考api文档和实际情况
- 用户系统编写
- 用户注册:首先输入邮箱获取邮箱验证码,并输入用户名,学号,密码,所得验证码进行注册
- 用户登录:
- 输入用户名或者邮箱,密码进行登录,登录后获得token信息,此后每次请求都在请求头部header中加入token,方便后端进行进行身份确认
- token采用jwt方案,使用已有的package,调用相应函数为用户信息json进行加密签名
- 后端检查用户发来的请求的header中的token,使用同样的秘钥解密签名,并检查其中身份信息,从而确定发出请求的用户是谁
- 用户信息页面:
- 用户可以查看、修改自己的基本信息(通过文本传输实现)
- 用户可以查看、修改自己的头像(通过服务器文件传输实现)
- 用户可以查看、修改自己的密码
-
任务系统之任务广场(用户在登录之后才能使用该功能):用户登陆之后被路由到广场页面,在这里用户可以看到正在进行的任务以及其任务信息(标题、描述、类型等),通过点击按钮接下任务;用户通过向下滑动可以看到时间上更早的任务
- 任务系统之问卷(用户在登录之后才能使用该功能)
- 问卷创建:通过页面按钮设计若干问题,输入问卷标题、描述信息、deadline等,点击提交创建问卷,在任务广场可以看到该问卷
- 问卷查看:
- 对于接收人
- 在任务广场可以查看正在进行问卷的任务,并且可以通过点击按钮,参加问卷填写,参加填写后跳转到问卷填写页面
- 可以通过“我接收的任务”一栏可以看到自己接收的任务列表,在最底部可以看到自己刚刚接受的问卷任务
- 对于发布人,可以通过“我发布的任务”一栏可以看到自己接收的任务列表,最底部就有自己刚刚发布的问卷任务,发布人可以点击新发布的问卷任务,查看问卷信息、答案统计信息
- 对于接收人
- 问卷提交:点击参与问卷填写之后,用户需要做完全部题目后才能够点击提交按钮,提交答案并获得奖励,关闭页面放弃填写则视为弃权
- 问卷暂停:发布人收到足够多的调研答案之后,可以停止该任务,从而取回剩余的赏金
- 任务系统之快递代取任务(用户在登录之后才能使用该功能)
- 任务创建:用户可以通过主页按钮创建快递代取任务,输入问卷标题、描述信息、deadline、联系方式等,点击提交创建任务,在任务广场可以看到该代取信息
- 任务查看:
- 对于接收人
- 在任务广场可以查看正在进行的快递代取任务,并且可以通过点击按钮,领取任务
- 可以通过“我接收的任务”一栏可以看到自己接收的任务列表,在最底部可以看到自己刚刚接受的快递代取任务
- 对于发布人,可以通过“我发布的任务”一栏可以看到自己接收的任务列表,最底部就有自己刚刚发布的快递代取任务,发布人可以点击该任务查看任务信息(是否被领取、任务进度等)
- 对于接收人
- 任务完成确认:领取任务后,接收人可以根据联系方式与发布人进行联系,完成任务后由发布人确认完成,接收人获得奖励
- 任务取消:
- 接收人可以在一定时限内放弃任务,无法获得赏金
- 如果没有人接单,发布人可以终止任务,取回赏金
后端单元测试
-
使用工具:pytest
- 用户系统测试:
- 编写用例,分别使用带有错误、正确的request对验证码获取、登录、注册、信息获取、信息修改等api进行测试,以检测其对错误输入的处理能力,和对于正确输入的正确回应
- 使用assert语句检测返回response中的状态码、反馈信息是否符合预期(创建用户成功返回201状态码、返回类似“创建用户成功”的反馈信息)
- 操作完毕后检索数据库的用户表,使用assert语句检测数据库中内容是否与用例输入内容/预期内容一致(检查数据库操作是否正确)
- 任务系统测试:
- 编写用例,分别使用带有错误、正确的request对任务信息获取、任务创建、任务终止等api进行测试,以检测其对错误输入的处理能力,和对于正确输入的正确回应
- 使用assert语句检测返回response中的状态码、反馈信息是否符合预期(创建任务成功返回201状态码、返回类似“创建任务成功”的反馈信息)
- 操作完毕后检索数据库的任务表,使用assert语句检测数据库中内容是否与用例输入内容/预期内容一致(检查数据库操作是否正确)
任务看板更新
- Todo:
- 后端单元测试 —- 潘鉴
- Done:
- api设计(初步系统设计)
- 用户系统api
- 任务系统api
- 后端flask学习任务 —- 彭靖寒、欧穗新
- 前端vue学习任务 —- 欧阳梓轩、彭流生、彭伟林
- 软件测试知识&工具学习 —- 潘鉴
- api设计(初步系统设计)
- In progress:
- 后端用户系统、任务系统编写 —- 欧穗新、潘鉴
- 前端用户系统、任务系统页面编写 —- 欧阳梓轩、彭伟林、彭流生
- 前端通知页面编写 —- 彭流生
- 后端单元测试用例设计 —- 潘鉴