1 Star 0 Fork 5

狮城Platform / 女神问卷

forked from FF-Y / 女神问卷 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

女神问卷

介绍

Goddess-Questionnaire女神问卷

各位大神若有项目问题可直接加我 微信:17691071606(ygfffh)请备注:来源于码云

女神问卷演示视频(问卷部分):https://v.youku.com/v_show/id_XNDI3Mjc5MzExMg==.html?spm=a2h3j.8428770.3416059.1

女神问卷全部视频演示:https://v.youku.com/v_show/id_XNDI3Mjc5Njg2MA==.html?spm=a2h3j.8428770.3416059.1

本文介绍了一个B/S结构下微信小程序的在线问卷调查系统,其后台可在主流浏览器上进行操作,前台采用微信小程序。它使用集成框架Spring+Sring MVC+MyBatis,存储数据库选用关系型数据库MySql,缓存数据库采用非关系型数据库Redis,服务器选用Apache Tomcat和Nginx相结合的方式。它的代码部分主要开发工具为IntelliJ IDEA和微信开发者工具。以图表的方式实现对问卷结果的数据分析。代码部分实现了前端问卷调查系统和后端管理系统的分离。采用Redis数据库做高速缓存提高访问效率。利用FFmpeg将MP4视频转为m3u8格式实现在线播放视频。 需求分析 为实现本系统目标,系统应具有前台页面和后台页面两大部分。后台需要具备管理和维护系统、用户权限分配管理功能的管理员称之为超级管理员,由超级管理员创建并指定权限的管理管理员称为活动管理员。前台需要实现发起问卷、发起投票、数据分析、答卷和投票的功能,前台用户均采用微信用户信息,用户在发起问卷、发起投票、数据分析时被称为活动发起者,在投票或答卷是被称为被调查者。 后台用户分为活动管理员和超级管理员两种角色。超级管理员拥有后端的全部权限负责维护和管理系统,超级管理员有角色管理的权限可以管理其他管理员。活动管理员负责处理违规被举报的活动,活动管理员的权限由超级管理员指定和分配。 超级管理员功能需求 (1)后台权限控制 管理后台用户,管理后台角色,可为用户分配多种角色,每个角色可以拥有多个菜单权限,一个菜单可以被多个角色使用。 (2)系统设置 具备对系统名称的管理,系统服务邮箱的配置,系统介绍视频的编辑。 (3)前台权限管理 配置前台用户的访问权限,管理前台角色。

前台用户分为调查活动发起者和活动被调查者。活动发起者发布和管理个人的调查问卷和投票、被调查者参与投票问卷活动发表评论。 活动管理员功能需求 (1)投票管理、问卷管理: 实现管理员对用户发起的问卷调查的控制,处理用户投诉举报。

被调查者功能需求 (1)活动大厅 展示公开的投票活动,展示公开的问卷活动以供用户投票作答。 (2)个人中心 设置投票浏览历史、问卷浏览历史、我参与的投票、我参与的问卷。 (3)问卷部分 问卷作答页面。 (4)投票部分 查询投票详情、为候选项进行拉票评论、投票页面。 (5)综合部分 用户权限不足时跳转到未授权界面,提供分享界面和活动海报便于用户在多渠道宣传、观看问卷调查系统的介绍视频 。 活动发起者功能需求。 (1)个人中心 设置我发起的投票、我发起的问卷。 (2)问卷部分 复制问卷模板、提供草稿保存、添加问卷、管理问卷题目、问卷预览、编辑问卷、暂停问卷、统计问卷、查询问卷详情、通过图表的形式查看问卷数据分析、提供自动发送问卷统计结果的选择。 (3)投票部分 添加投票、提供草稿保存、管理投票候选项、报名成为候选项、编辑投票、暂停投票、统计投票、通过图表的形式查看问卷数据分析、投票页面。 系统性能需求 (1)安全性需求:数据库数据定时备份、不同用户访问权限控制、密码加密、使用Https协议提供数据传输的安全,使用恰当的安全策略在满足基本信息安全的情况下,最大程度上提高用户舒适度,做到预防Ddos攻击和防止sql注入式攻击。 (2)稳定性需求:系统本身具备可移植能力适应多种环境,满足Windows 或Linux两种系统,提供并发处理措施配置服务器集群,常用的不经常变化的数据放入缓存数据库提高访问效率 非功能性的需求 用户界面友好美观,提供丰富的提示提高交互性,方便使用,可操作性强,页面加载跳转等提供加载动画,常见异常错误界面美化。 本系统中考虑到用户群体的广泛性,其使用的设备有很大差异:设备操作系统差异,主要要兼容IOS、Android两大平台、屏幕尺寸差异,要实现移动端的响应式布局。

核心技术 技术名称 说明 Apache Shiro 用于做权限控制的轻量级框架,在本系统中采用基于url和基于标签的控制方式[13] MyBatis 是一款持久层框架,用于操作数据库 Spring MVC 属SpringFrameWor的子产品,将Web层进行职责分层帮助开发者敏捷开发。 Spring 开源的实现IOC容器和AOP的耦合性轻量级框架[14] Apache POI 操作Microsoft Office文件的开源库,用于为excel文件的生成和读取等操作 Quartz 由java编写的开源作业调度框架,Wx微信服务子系统以每1.5小时频率向微信请求accessToken Common Email 是对java自带的mail模块的封装,轻松的实现不同类型邮件发送,为用户发送报表[15] Apache Log4j 一个强有力的日志操作包,用于系统日志的记录 Google zxing 谷歌发布的用来识别多种格式条形码的开源项目 FFmpeg 用来操作音频、视频的开源计算机程序,用于将上传后的MP4视频转化为m3u8格式 JQuery 是一个 JavaScript 库,封装了大量js原生代码方便开发者使用 Layer 一个基于JQuery的弹出层插件,可自定义页面,提示消息,对话框 Ajaxfileupload 是异步文件上传插件,项目已停止维护,为兼容JQuery版本在项目用有修改部分源码 JQuery Validate 一款文本数据验证的插件,方便在前端校验数据减少服务器负荷 Ztree 是一款轻量级的树结构框架,用于按钮菜单树的操作和实现树型显示数据 H-ui 轻量级前端框架,简单免费,兼容性好,用于做后台管理页面的布局设计 ECharts 百度推出的一款数据分析与数据可视化插件,用于数据分析和报表 BMap 百度地图推出的小程序端的地图插件,用于定位用户信息,分析用户特征

问卷添加页面以选项卡效果呈现。页面分为活动内容、问卷设置、题目项三部分。利用上一步下一步按钮进行切换,每次下一步被触发时将会触发隐藏任务保存草稿,当用户中途退出程序后再次进入时询问用户是否使用草稿。 (1)活动部分包括设置问卷封面(必须上传)、问卷名称(1到20个字之间)、问卷介绍(不能为空)、问卷图片介绍(任意张) (2)问卷设置部分包括设置主题颜色(默认#000000)的弹出式拾色器、问卷开始时间和结束时间、设置地区和IP限制的开关、省市区三级联动选择器(默认北京市-北京-东城区)、数字按钮组的同IP微信用户数量(默认为1)、提供是否公开是否可以评论是否显示主办方的开关,主办方名称(在开启显示主办方的开关时不能为空),主办方电话(在开启显示主办方的开关时必须为手机号) (3)题目项部分包括设置是否试卷类型的开关(默认为关)、添加题目的按钮(试卷模式下只能添加单选题和多选题)、点击可选中某题目将显示该题的编辑复制上移下移删除按钮、提供预览功能为方便用户操作、发布问卷后清除草稿询问用户是否跳转到问卷答题页面是则跳转否则后退回个人中心。

问卷提供单选题、多选题、填空题、简答题、评分题、定位题、位置题、文件题、图片题九种题型可供用户选择进而设计具有强大功能的问卷。 (1)单选题界面提供题目图片的上传、选项图片的上传、可以选择被调查者是否必须作答、单选题选项数量不能低于2个、在选择问卷模式为试卷后必须设置其中一个为正确答案。 (2)多选题提供题目选项的图片上传、选择是否必须作答、选项数量不能低于两个、在选择问卷模式为试卷后必须至少设置其中两个为正确答案。 (3)填空题可上传题目图片、设置是否必须作答、可在手机号、邮箱、二代身份证号等选择一种验证方式限制被调查者输入信息。

(4)简答题提供题目的图片上传、选择是否必答、选择显示时多行文本的行数。 (5)评分题可设置题目图片、在2-10之间选择设置最高分、选择被调查者是否必须作答。 (6)定位题、位置题、文件题、图片题这四种题型默认为必答题。 投票的添加部分与问卷的添加页面雷同,不再赘述。投票详情页面部分主要包括详情页面、活动详情页面、候选选投票页面、选项报名页面、候选项管理页面。 详情页面需要根据发起者设置是否开启评论进而选择是否显示评论点赞部分,候选项显示主要有根据选手号显示和根据排行榜显示,排行榜显示时前三名分别采用金银铜三个icon其余选手则为排名名次。根据投票类型的不同,选手号列表显示效果不同,文字类投票会采用文字瀑布流的形式显示,图片和图文类型均采用图片显示。 在完成问卷活动结束后对数据分析处理是一个重要的功能。本系统提供五种类型的图表:仪表盘用于时间进度图显示活动进度、折线图根据活动时间长短显示各时段用户答卷数分布、饼状图用于对单选题的选择数量分析、柱状图显示多选题个选项的选择率、地图用于定位用户具体位置。 后台管理利用Shiro框架采用Url加标签级的权限控制方式利用Redis数据库做用户权限的高速缓存,用户全部权限存储Redis中有效期为10分钟,Key的生成规则如下:"session_"+LoginType.ADMIN.toString()+""+us.getUserName()+""+us.getUserPassword()。LoginType.ADMIN.toString()为用户的登录类型、us.getUserName()为用户名称、us.getUserPassword()为用户密码。当用户权限不足或session过期时自动跳转到登录页面,当Key权限过期时自动加载刷新当前用户的权限放入Redis缓存。登录后跳转到后台主页默认加载欢迎页面。 本系统按钮资源、角色、用户之间为多对多对多关系两两之间采用关联表进行关联。可任意创建角色分配资源也可以创建用户分配角色超级管理员角色拥有全部权限。 本系统填空题验证通过正则表达式实现共有:非空、手机、邮箱、姓名、身份证、日期、含零整数、非零整数、QQ九种。超级管理员可以后期对验证方式进行管理。

软件架构

软件架构说明

安装教程

  1. xxxx
  2. xxxx
  3. xxxx

使用说明

  1. xxxx
  2. xxxx
  3. xxxx

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. Gitee 官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
  4. GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
  5. Gitee 官方提供的使用手册 https://gitee.com/help
  6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

本文介绍了一个B/S结构下微信小程序的在线问卷调查系统,其后台可在主流浏览器上进行操作,前台采用微信小程序。它使用集成框架Spring+Sring MVC+MyBatis,存储数据库选用关系型数据库MySql,缓存数据库采用非关系型数据库Redis,服务器选用Apache Tomcat和Nginx相结合的方式。它的代码部分主要开发工具为IntelliJ IDEA和微信开发者工具。以图表的方式实现对问卷结果的数据分析。代码部分实现了前端问卷调查系统和后端管理系统的分离。采用Redis数据库做高速缓存提高访问效率。利用FFmpeg将MP4视频转为m3u8格式实现在线播放视频。 展开 收起
Java
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/beituo/goddess-questionnaire.git
git@gitee.com:beituo/goddess-questionnaire.git
beituo
goddess-questionnaire
女神问卷
master

搜索帮助