大家好,我是羊刀仙。
本篇来介绍一个功能最强大的调查问卷系统和考试系统:卷王。项目开源免费,支持NAS上通过Docker一键部署,
我在搭建之后进行体验,的确很强,卷王名不虚传!
无论是题型、问题设置、问题校验、逻辑设置、数据导出等,相比主流商业调查问卷系统,开源卷王都毫不逊色。
开源卷王= 调查问卷系统 + 在线考试系统 + 题库刷题系统 + 投票系统 + 公开查询系统 +成绩单查询系统
此外,卷王还支持如 答案唯一设置、多问卷数据关联、视频题、图片选择题、答题完自定义提示语、答题完自定义跳转链接、考试完根据分数动态显示提示语、公式计算等等,超多功能,等你发现。
基于 MIT license,任何人、任何组织、任何行业都可以使用卷王轻松实现 问卷调查、投票、考试、测评、公开查询等场景。
功能概览
🥇 支持 20 多种题型,如填空、选择、下拉、级联、矩阵、分页、签名、题组、上传、横向填空等
🎉 多种创建问卷方式,Excel 导入问卷、文本导入问卷、在线编辑器编辑问卷
💪 多种问卷设置,支持白名单答卷、公开查询、答卷限制等
🎇 数据,支持问卷数据新增、编辑、标记、导出、打印、预览和打包下载附件
🎨 报表,支持对问题实时统计分析并以图形(条形图、柱形图、扇形图)、表格的形式展示输出和导出
🚀 安装部署简单(最快 1 分钟部署),支持一键 windows 部署、一键 docker 部署、前后端分离部署、单 jar 部署、二级目录部署
🥊 响应式布局,所有页面完美适配电脑端和移动端(包含问卷编辑、设置、答卷)
👬 支持多人协作管理问卷
🎁 后端支持多种数据库,可支持所有带有 jdbc 驱动的关系型数据库
🐯 安全、可靠、稳定、高性能的后端 API 服务
🙆 支持完善的 RBAC 权限控制
🦋 支持可视化配置问卷跳转和显示逻辑,以及通过公式实现自定义逻辑(卷王的逻辑设置比目前主流商业调查问卷系统强大的多)
显示隐藏逻辑
值计算逻辑 动态计算问题答案,从最简单的根据身高体重计算 BMI,到复杂的根据多个问题答案组合逻辑和数值实现复杂的运算
文本替换逻辑 动态显示题目内容
值校验逻辑 可以根据其他问题答案来判断当前问题是否有效
必填逻辑 动态判断当前问题是否必填
选项自动勾选逻辑 根据其他问题和选项答案自动勾选
选项显示隐藏逻辑 动态的显示或者隐藏选项
结束问卷逻辑
跳转逻辑 动态跳转
结束问卷自定义提示语逻辑 答卷后,可以根据问卷答案或者考试分数来显示不同的提示语信息
自定义跳转链接逻辑 答卷后,可以根据问卷答案或者考试分数来跳转到不同的链接,且支持携带答案参数
🌈 支持选项唯一设置,多问卷数据关联查询、更新和删除,考试自动算分,自定义提示语,自定义跳转链接等等
部署流程
本文以威联通NAS为例,通过Docker Compose进行部署,其他平台部署基本通用。
首先准备一个文件夹,作为项目的安装目录,我这里命名为surveyking
,具体路径为/share/Container/surveyking
。
打开你所在平台的Docker管理工具,创建新的Docker应用。将以下代码修改后粘贴进框内进行创建。
version: '3.9' # 最新版Docker Compose该行可删除
services:
surveyking:
image: surveyking/surveyking
container_name: surveyking
volumes:
- /share/Container/surveyking/files:/app/files # 文件目录,存储上传的文件,冒号左侧改成自己的,下同
- /share/Container/surveyking/logs:/app/logs # 运行日志
- /share/Container/surveyking/db:/app/db # 数据库文件
ports:
- 5090:1991 # 冒号左侧可改
restart: always
Docker 一键部署使用的是内置的 H2 数据库,相比 MySQL 的好处是无需额外配置或安装数据库,部署更为简单和快速。关于 MySQL 数据库运行,我放在文末,大家需要的自取。
此时,web输入NAS_IP:5090便可成功访问并使用。初始界面如下。
#用户名和密码
admin
123456
部分展示
可以创建问卷、在线考试项目,并且支持本地多种格式导入。
新建问卷,可以看到如介绍所说,可添加的项相当丰富,目之所及几乎都可以进行编辑。
问卷设置界面,感觉能满足绝大多数人的需求。创建好的问卷还可以通过链接或二维码的形式进行投放。
更让人惊喜的是他的组织管理系统,细致入微。
设置还提供了一个行业字典方便用户使用,当然我们也可以针对需求创建个性化字典。
反向代理
问卷和考试系统大概率需要用到外网访问,NAS上建议使用Lucky进行反向代理。可以参考往期教程。
MySQL(可选,普通用户不建议)
⭕️已经部署MySQL
version: '3.9' # 最新版Docker Compose该行可删除
services:
surveyking:
image: surveyking/surveyking
container_name: surveyking
volumes:
- /share/Container/surveyking/files:/app/files # 文件目录,存储上传的文件,冒号左侧改成自己的,下同
- /share/Container/surveyking/logs:/app/logs # 运行日志
ports:
- 5090:1991 # 冒号左侧可改
environment:
- PROFILE=mysql # 使用外部 MySQL 数据库
- MYSQL_USER=surveyking # 数据库用户名
- MYSQL_PASS=surveyking # 数据库密码
- DB_URL=jdbc:mysql://172.x.x.x:xxxx/surveyking?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8
restart: always
172.x.x.x:xxxx,冒号左侧部分替换成你数据库所在服务器的IP,冒号右侧部分替换成数据库服务的端口号。
⭕️未部署MySQL
version: '3.9' # 最新版Docker Compose该行可删除
services:
mysql:
image: mysql:8.0
container_name: mysql
environment:
- MYSQL_ROOT_PASSWORD=root_password # MySQL 根用户密码
- MYSQL_DATABASE=surveyking # 创建数据库
- MYSQL_USER=surveyking # 新建用户
- MYSQL_PASSWORD=surveyking # 新建用户密码
volumes:
- /share/Container/mysql/data:/var/lib/mysql # 持久化存储
ports:
- 3306:3306 # 默认 MySQL 端口
restart: always
surveyking:
image: surveyking/surveyking
container_name: surveyking
volumes:
- /share/Container/surveyking/files:/app/files # 文件目录,存储上传的文件,冒号左侧改成自己的,下同
- /share/Container/surveyking/logs:/app/logs # 运行日志
ports:
- 5090:1991 # 冒号左侧可改
environment:
- PROFILE=mysql # 使用外部 MySQL 数据库
- MYSQL_USER=surveyking # 数据库用户名
- MYSQL_PASS=surveyking # 数据库密码
- DB_URL=jdbc:mysql://172.x.x.x:xxxx/surveyking?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8
depends_on:
- mysql # 确保 MySQL 服务先启动
restart: always
总结
作为一款开源的问卷管理工具,SurveyKing 的功能和灵活性让我感到惊喜。无论是快速部署的便捷性,还是强大的客制化能力,都让我深刻体会到它为问卷管理带来的效率提升。这次部署的过程并不复杂,按照教程一步步操作下来,相信各位能轻松完成。
如果你正在寻找一款稳定、易用的问卷工具,尤其是想要掌控自己的数据隐私,SurveyKing 无疑是一个很棒的选择。。
希望这篇教程能帮助大家快速上手,如果觉得有用,别忘了三连支持下!
感谢观看,本文完。
评论区