基于springboot+vue的问卷调查系统(前后端分离)

博主主页猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

功能分析: 

调查研究人员通过本项目系统注册账号,然后登录账号,在修改个人信息等操作之后,便可以开始进行调查问卷的设计和制作。研究人员确认调查问卷设计和制作完毕之后,就可以选择发布或保存该调查问卷。在问卷调查发布之后,就可以开始进行调查问卷数据的收集和统计。

1、注册系统账号需要填写使用者的用户名、密码、手机号,以及性别和出生日期等信息,然后提交个人信息,在系统检测使用者填写的信息没有问题之后,账号就注册成功了。使用者可以用该账号登录系统,然后进行后续的操作。

2、使用者在登录页面填写好系统账号的用户名和密码,在系统检测确认账号用户名和密码匹配无误后就可以成功进入系统的个人后台,然后就可以建立、设计和编辑调查问卷了。使用者也可以查看自己注册的时候提交的个人信息,同时使用者也可以对已经变更的个人信息进行修改。

3、使用者在建立调查问卷的时候,先是填写好问卷调查的标题,确认之后就可以进入调查问卷的设计。一般情况下,问卷调查的问题类型分为单选题、多选题和文字简答题。使用者在向调查问卷添加问题的时候,先要确定所添加问题的问题类型,然后再填写问题内容和问题选项。

4、在使用者设计好问卷的内容之后,便可以选择发布问卷调查还是保存问卷调查。若选择发布问卷调查,则调查问卷的状态将设为公开,调查对象可以开始填写问卷信息,以供研究人员调查。若选择保存问卷调查,则调查问卷的状态将设为私密,问卷内容仅限使用者个人进行查看,同时使用者可以继续对调查问卷的内容进行修改。

在调查问卷发布之后,使用者就可以查看调查问卷收集到的数据了。使用者进入调查问卷数据的分析页面,系统把对应的调查问卷数据经过整理、统计和分析之后,会在页面中用柱状图、饼状图等数据可视化的形式进行调查问卷数据的展示,研究人员通过页面的显示的数据图形了解该调查问卷收集到的数据后,便可以更清晰地、更有条理地利用问卷调查数据来进行问题的研究。

数据库表结构和ER图:

系统包含技术:

后端:springboot,mybatis
前端:element-ui、js、css等
开发工具:idea/vscode
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

进入首页,未登录也可以填写问卷

下面是登录页面

注册页面

问卷列表

填写问卷调查

进行问卷分析

 问卷管理

分享问卷

修改密码

部分代码:

 @PostMapping(value = "/allUser")     @ResponseBody //获取所有用户     public JSONObject selectAllUsers(){         JSONObject json = new JSONObject();         //获取所有用户信息         List<User> users = userService.selectAllUsers();         //把结果json化         JSONObject userList = (JSONObject) JSON.toJSON(users);         json.put("userlist",userList);         return json;     }      @CrossOrigin     @PostMapping(value = "api/login")     @ResponseBody //用户登录     public JSONObject login(@RequestBody User loginUser){         JSONObject res = new JSONObject();         //获取输入的用户名         String username = loginUser.getUsername();         username = HtmlUtils.htmlEscape(username);         //获取输入的密码         String password = loginUser.getPassword();         password = HtmlUtils.htmlEscape(password);         //在数据库查找         User curUser = userService.findUser(username,password);         if (curUser==null){             //用户名或密码输入错误             res.put("msg","fail");         }else{             //登录成功             res.put("msg","success");             // 把登录用户的id和name传过去             int id = curUser.getId();             String name = curUser.getUsername();             res.put("id",id);             res.put("name",name);         }         return res;     }      @CrossOrigin     @PostMapping(value = "api/register")     @ResponseBody //用户注册     public JSONObject register(@RequestBody User registerUser){         JSONObject data = new JSONObject();         // 获取注册用户的用户名         String username = registerUser.getUsername();         username = HtmlUtils.htmlEscape(username);         if (!"".equals(username)){             User temp = userService.findUserByName(username);//查找用户名是否被占用             if (temp == null){                 //可以进行注册                 int res = userService.addUser(registerUser);                 if (res > 0) // 注册成功                     data.put("msg", "success");                 else // 注册失败                     data.put("msg","fail");             }else {                 //用户名不可用                 data.put("msg","unusable");             }         }         return data;     } 

//加载个人问卷信息     @CrossOrigin     @PostMapping(value = "api/mySurveys")     @ResponseBody     public JSONObject getSurveyByUid(@RequestBody User curUser){         JSONObject json = new JSONObject();         //获取输入的用户名         int uid = curUser.getId();         List<Survey> res = surveyService.getSurveysByUid(uid);         JSONArray surveyList = JSONArray.parseArray(JSON.toJSONString(res));         json.put("mysurveylist",surveyList);         return json;     }      //获取问卷内容     @CrossOrigin     @PostMapping(value = "api/surveyPage")     @ResponseBody     public JSONObject getSurveyPage(@RequestBody Survey survey){         JSONObject json = new JSONObject();         //获取问卷编号         int sid = survey.getSid();         if (sid>0){             //获取问卷标题             String stitle = surveyService.getStitleBySid(sid);             //获取问卷状态             int publish = surveyService.getPublishBySid(sid);             //标题信息json化             json.put("stitle",stitle);             json.put("publish",publish);             List<Question> questionList = questionService.getQuestionListBySid(sid);             //转化成JSON数组             JSONArray ques = JSONArray.parseArray(JSON.toJSONString(questionList));             JSONArray questions = new JSONArray();             for (Object q:ques) {                 //强制转换                 JSONObject que = (JSONObject) q;                 //获取当前问题的问题编号、题目类型                 int qid = que.getInteger("qid");                 int qtype = que.getInteger("qtype");                 //选择题                 if(qtype==1 || qtype==2){                     //获取问题对应的选项内容                     List<Option> optionList = optionService.getOptionListByQid(qid);                     JSONArray options = JSONArray.parseArray(JSON.toJSONString(optionList));                     que.put("options",options);//把选项列表数组放进问题内容中                 }                 questions.add(que);//直接添加进问题列表json数组             }             json.put("msg","success");             json.put("questions",questions);         }else {             // 问卷编号有错,返回报错信息             json.put("msg","error");         }         return json;     }

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
权限管理系统是一种用于管理用户权限和角色的系统,可以根据用户的身份和角色来控制其访问系统中的各种资源。基于SpringBootVue和Redis的前后端分离模式,可以更好地实现权限管理系统的功能。 在这个系统中,SpringBoot作为后端框架,提供了强大的功能和稳定的性能,可以处理用户的请求并进行权限验证。Vue作为前端框架,提供了友好的界面和良好的用户体验,可以让用户方便地进行权限管理操作。而Redis作为缓存数据库,可以用来存储权限信息和用户的登录状态,加快系统的响应速度和提高系统的性能。 在权限管理系统中,我们可以使用RBAC(基于角色的权限控制)模型,将用户分配到不同的角色,再将角色分配到不同的权限,从而实现对用户访问资源的控制。通过这种方式,可以实现灵活的权限管理,并且可以根据实际需求动态地调整用户的权限和角色。 通过使用SpringBootVue,我们可以实现前后端分离,让前端和后端分别进行开发和维护,降低了系统的耦合度,同时也增加了系统的灵活性和可维护性。而通过使用Redis,我们可以充分利用其高速的读取和写入能力,有效地提升系统的性能和响应速度。 综上所述,基于SpringBootVue和Redis的权限管理系统,可以实现灵活、高效和安全的权限管理功能,满足用户对于权限管理的各种需求。同时,前后端分离模式也使得系统更加灵活和易于维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值