MBTI测试

应该完成的功能有:

  • 测试功能
  • 投票功能
  • 个人信息

测试

简要说明

用户可以选择不同的测试,进入测试进行答题。答题可以选择上一题,下一题,也可以选择答题卡看总体答题情况。测试结束后,显示用户的测试结果。结果中包含:xxx。

前置条件

用户已登录。

约束条件

  1. 用户对每一个测试不能超过50次。

事件流

基本流

  1. 用户点击其中一个类型的测试。
  2. 进入测试页面,点击选项后自动调到下一题。在第一题不能返回上一题,在最后一题下一题按钮变为提交。点击答题卡,查看总体答题情况,并可以跳转到任意一题。
  3. 测试完毕并提交后,查看结果,结果保存到用户信息中

备选流

若用户中途返回退出该页面,则弹出是否退出按钮,退出不保存当前进度。

后置条件

测试成功后,数据库中添加该用户的测试结果。否则,系统维持原状。

好友匹配

投票

简要说明

用户可以看到所有已经被添加的人物,可以看到其简要信息。点击该人物可以进入详情页面,显示该人物的详细信息。包括:

  • 名字

  • 领域/职业

  • 简介

  • 点赞数

  • 喜爱数

  • 评论(楼主头像、昵称、发表日期、回复详情(回复用户的头像、昵称、发表日期、点赞数))

  • 分享数

  • 投票数

  • 投票概况

  • 具体评论以及对每一条评论的回复

前置条件

无。

约束条件

  1. 用户只有登录后才可以投票、点赞、喜爱、分享或评论。
  2. 评论数目不能超过100条

事件流

基本流

  1. 用户点赞/取消点赞
  2. 用户投票/更改投票
  3. 用户喜爱/取消喜爱
  4. 用户分享
  5. 用户评论
  6. 用户点击评论的回复区,可以看到回复的详细情况
  7. 用户对评论进行点赞或回复,被点赞或回复的用户收到通知

备选流

后置条件

数据库记录该人物的点赞数、喜爱数、分享数、投票具体情况(可算出投票数)、评论具体情况(可算出评论数)、每一条评论被回复的具体情况(谁回复了哪个评论,可算出回复数)

个人信息

简要说明

  1. 能够存储所做测试的结果
  2. 能够收到自己发表评论的点赞或回复通知
  3. 能存储喜爱的人物(收藏夹)

数据库集合设计

测试test

1
2
3
4
5
_id:''//记录id,系统自带
_openid:''//创建该记录的用户id,系统自带
type:''//测试类型
questions:[]//题目列表
...//其余根据测试类型来定

权限

所有人可读,仅管理员可写

也就是测试题目所有人都可以看到,但是只能管理员来编写

测试结果testResult

1
2
3
4
_id:''//记录id,系统自带
_openid:''//创建该记录的用户id,系统自带
testId:''//所做测试的id
result:{}//测试结果

权限

仅创建者可读写(仅限于add,不能update和delete)

也就是自己的测试记录只能自己生成、自己看

人物character

1
2
3
4
5
6
7
8
9
_id:''//记录id,系统自带
owner:''//创建该记录的用户_openid
name:''//该人物名称
field:''//该人物领域
intro:''//该人物简介
shareNum:0//分享数量(new)
thumbDetail:['_openid1','_openid2']
voteDetail:[{_openid:'xxx',vote:'ENTP'},{_openid:'xxx',vote:'INFJ'}]
stas:{'E':0,'I':0,...}

权限

所有人可read可write。

也就是所有人都能看到人物信息、添加和修改内容。

点赞thumb(删)

1
2
3
4
_id:''//记录id,系统自带
_openid:''//用户_openid
type:'character'//表示点赞的是character还是comment
owner:''//被点赞的character或comment的记录id

权限

所有人可以read,只有创建者可以write。

也就是用户的痕迹可以被其他人看见,但是只能被自己修改。

分享share(删)

1
2
3
_id:''//记录id,系统自带
_openid:''//用户_openid
owner:''//被分享的character的记录id

权限

所有人可以read,只有创建者可以write。

也就是用户的痕迹可以被其他人看见,但是只能被自己修改。

喜爱favor

1
2
3
_id:''//记录id,系统自带
_openid:''//用户_openid
owner:''//被喜爱character的记录id

权限

所有人可以read,只有创建者可以write。

也就是用户的点赞可以被其他人看见,但是只能被自己修改。

评论comment(删)

1
2
3
4
5
_id:''//记录id,系统自带
_openid:''//用户_openid
type:'character'//表示评论的是character还是comment
owner:''//被评论的character或comment的记录id
content:''//如果是comment则携带具体内容

权限

所有人可以read,只有创建者可以write。

也就是用户的痕迹可以被其他人看见,但是只能被自己修改。

投票vote(删)

1
2
3
4
_id:''//记录id,系统自带
_openid:''//用户_openid
owner:''//被投票character的记录id
myVote:'ENTP'//如果是vote则存放投票结果

权限

所有人可以read,只有创建者可以write。

也就是用户的痕迹可以被其他人看见,但是只能被自己修改。