200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 项目基本情况介绍

项目基本情况介绍

时间:2023-08-02 11:12:39

相关推荐

项目基本情况介绍

1.简介

​ 该项目是一款基于 B/S 结构的项目,使用场景是用户可以自己生成题目、问卷以及活动,然后根据不同活动绑定不同问卷(问卷继而绑定 N 个题目)。生成活动以后会有一个该活动的地址,用户通过分享该地址给其他被调查对象用户,以完成本次调查活动。在活动管理页可以查看活动调查结果的一个简单统计(每道题目选项选择人数的一个占比情况);前端使用 H5+CSS+JS 实现页面展示效果,后端使用 JavaServlet 进行业务控制实现,使用 MySQL 进行数据存储管理;

2.需求分析

用户管理:注册、登录、退出登录。所有功能都需要用户是注册之后才能够使用,所以我们让注测的方式以及流程尽可能的简单,给用户带来一个更好的体验,例如:某些用户只是作为被调查角色出场的,但是又有一个很繁琐的注册流程,那么大多数情况下这位用户也不会再继续下去了,导致无法配合调查从而增加调查活动的难度;题目管理:新建题目、题目列表。用户对自己的题目有一个基本的管理动作:创建和查看,创建题目时目前系统只提供四项单选题目。因为大多数调查反馈表明,人们在被动接受调查时并不喜欢过多的输入文字,而是倾向于“直接点”的交互方式。所以在生成题目问题以及答案时需要用户让题目于答案尽可能的简洁明了,而不是拐弯抹角,含糊不清。问卷管理:新建问卷、问卷列表、关联题目。用户对问卷的管理同样具有创建和查看动作。必然的每张问卷都会有诸多题目,用户在打开某张问卷的时候可以查看相应的题目以及自己的题库,然后通过点击来确定某一道题目绑定与否。活动管理:新建活动、活动列表、关联问卷、调查结果统计、问卷发布。同样的,除过创建与查看活动以外,用户需要能够给活动绑定一个贴合活动主题的问卷,之后会有一个活动的地址,该地址是作为被调查对象的访问入口地址。在活动结束以后可以个活动页面查看调查结果,具体为:打开活动对应的问卷,展示问卷的每一道题目,然后可以通过点击具体题目查看相应的选项人数比例,进而进行数据分析。

3.概要设计

用户模块:用户在注册需要设置用户名(最好使用能够确定身份的电话号码,若用名已存在则注册失败)与密码,登陆时会检测用户名与密码,若登陆成功则进入网站首页,若失败则给出提示(登陆失败类型:用户名未注册或者密码错误);题目模块:描述一个题目,具体的做法就是:谁创建的?题目是什么?答案是什么?用户在创建的时候需要具体描述出题目的内容,以及四个选项 ABCD 对应的具体可供选择的答案。对于每一个用户的题库我们需要有一个接口供用户来查看,并且在页面可以进行批量删除操作;问卷模块:创建问卷时需要提供标题以及摘要。在问卷列表里面我们可以查看每个问卷的详情展示,即所绑定的题目,然后可以对已绑定的题目进行取消绑定,也可以对未绑定的题目进行绑定操作,当然都支持批量操作。那么要怎样维护问卷与被绑定的题目之间的关系呢?我们可以维护一个 relation表, 一行记录表示一个绑定记录,一个问卷可以设置绑定记录的上限,即相同问卷的 relation 行记录的上限;活动管理:对于活动我们更关心的是起止时间,所以在生成活动的时候需要用户确定好开始时间以及结束时间,只有在这个时间段内别的用户才能通过地址进行调查活动。活动结束之后,发布者可以根据需求对相应的题目进行调查结果统计。对于某一个用户填写了一份问卷之后,此问卷的接口将不再次用户开放,所以结果需要记录答题者的信息,答题者可以是注册的用户也可以是未注册的用、户,未注册的则会提示用户前往注册,前面提到了考虑到用户体验所以注册在设计上市非常简单的,用户只需手机号码和密码即可注册。对于用户提交的结果我们需要使用一张 result 表进行管理,方便后期数据统计。

4.数据库设计

综合以上概要设计我们不难的出数据库在设计时需要总计 6 张表格

#用户列表create table users (uid int primary key auto_increment,username varchar(30) not null unique,password char(60) not null COMMENT '用户密码,加密');#题目列表create table questions (qid int primary key auto_increment,uid int not null COMMENT '用户id', question varchar(200) not null,options text not null);#问卷列表create table surveys (sid int primary key auto_increment,uid int not null,title varchar(200) not null,brief varchar(400) not null);#绑定关系,create table relations (rid int primary key auto_increment,sid int not null COMMENT '问卷id',qid int not null COMMENT '题目id');#活动列表create table activities (aid int primary key auto_increment,uid int not null COMMENT '用户id', sid int not null COMMENT '题目id',started_at datetime not null COMMENT '开始时间',ended_at datetime not null COMMENT '结束时间');#调查结果create table results (reid int primary key auto_increment,nickname varchar(20) not null,phone varchar(20) not null,answer text not null);

5.详细设计

用户模块: 注册:用户名规定使用电话号码,以确保用户身份唯一,并在输入时进行一个合法性检验,若用名已存在则注册失败。初次设置密码时不会检测密码的安全性,因为用户可能只是来填写一个问卷,但是在第一次设置密码时就耗费了很长时间,这样会给用户带来一个非常糟糕的体验。在后期用户可以在个人主要修改密码,此时会进行一个密码强度的一个校验。密码在存储时需要采取加密措施进行存储,防止密码泄露。登录:登录时提交注册使用的电话号码以及密码进行登录,后端对密码与账户名进行校验,成功在进入网站首页,失败则给出提示信息,比如:用户名存在但是密码错误,或者时连用户名都不存在则是未注册。 题目模块: 创建题目:针对上面提出的三个问题:谁创建的?题目是什么?答案是什么?当然创建者是我们当前登录的用户,这一点不需要用户来输入,而是我们使用 Cooke + Session 来找到当前登录的用户并封装在我们的 model 中。 用户需要输入的是具体的题目内容,以及四个选项 ABCD 对应的具体可供选择的答案。然后将题目添加到 question 表中。当然,在进行这些操作之前我们会检测当前用户是否在 session 中存在,即是否为登录状态,若未登录,则后面这些动作都不会进行,重定向到登录页面。题目列表:相当于是用户得到个人题库,我们将用户的所有题目分页展示出来,一共用户批量删除操作。 问卷模块:创建问卷时需要提供标题以及摘要。在问卷列表里面我们可以查看每个问卷的详情展示,即所绑定的题目,然后可以对已绑定的题目进行取消绑定,也可以对未绑定的题目进行绑定操作,当然都支持批量操作。该部分操作同样需要用户是登陆状态,否则操作失败。题目绑定:用户通过点击问卷下的题目进行题目添加,该操作是一个轮询式的操作:若已经在问卷里面了再次点击则从问卷中将此题目剔除,若不在点击之后则添加至问卷题目当中。每个问卷可以设置题目上限,以保证问卷的质量。活动管理:用户可以生成一个活动,选择该活动需要使用的问卷之后确定活动的起止时间,只有在时间段之内才能够答题。操作完成后用户可以通过任何方式将生成的地址转发给调查对象。等结束时间过了就可以查看相应调查结果。选择问卷:用户创建活动的时候,将用户的所有问卷陈列,以供用户来挑选一个合适的问卷。结果统计:用户在自己的活动列表查看已经完成的活动(到了结束时间),进入详情页之后可通过点击相应题目查看对应的统计结果。

6.项目 git 地址

/Cat-Nine-54/questionnaire-items

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。