目 录CONTENT

文章目录

Docker搭建一个功能强大的开源问卷考试系统-卷王

yyzq
2024-05-07 / 2 评论 / 3 点赞 / 2,879 阅读 / 1,635 字

简介

卷王问卷,人人都可快速部署的的问卷考试系统,你可以在此完成在线表单设计,数据收集、统计和分析工作,应用场景覆盖全行业。
任何人、任何组织、任何行业都可以使用卷王轻松实现 问卷调查、投票、考试、测评、公开查询等场景。

特性

  • 🥇 支持 20 多种题型,如填空、选择、下拉、级联、矩阵、分页、签名、题组、上传、横向填空
  • 🎉 多种创建问卷方式,Excel导入问卷、文本导入问卷、在线编辑器编辑问卷
  • 💪 多种问卷设置,支持白名单答卷、公开查询、答卷限制等
  • 🎇 数据,支持问卷数据新增、编辑、标记、导出、打印、预览和打包下载附件
  • 🎨 报表,支持对问题实时统计分析并以图形(条形图、柱形图、扇形图)、表格的形式展示输出和导出
  • 🚀 安装部署简单(最快 1 分钟部署),支持一键windows部署、一键docker部署、前后端分离部署、单jar部署、二级目录部署
  • 🥊 响应式布局,所有页面完美适配电脑端和移动端(包含问卷编辑、设置、答卷)
  • 👬 支持多人协作管理问卷
  • 🎁 后端支持多种数据库,可支持所有带有 jdbc 驱动的关系型数据库
  • 🐯 安全、可靠、稳定、高性能的后端 API 服务
  • 🙆 支持完善的 RBAC 权限控制
  • 🦋 支持可视化配置问卷跳转和显示逻辑,以及通过公式实现自定义逻辑(卷王的逻辑设置比目前主流商业调查问卷系统强大的多)
    • 显示隐藏逻辑
    • 值计算逻辑 动态计算问题答案,从最简单的根据身高体重计算BMI,到复杂的根据多个问题答案组合逻辑和数值实现复杂的运算
    • 文本替换逻辑 动态显示题目内容
    • 值校验逻辑 可以根据其他问题答案来判断当前问题是否有效
    • 必填逻辑 动态判断当前问题是否必填
    • 选项自动勾选逻辑 根据其他问题和选项答案自动勾选
    • 选项显示隐藏逻辑 动态的显示或者隐藏选项
    • 结束问卷逻辑
    • 跳转逻辑 动态跳转
    • 结束问卷自定义提示语逻辑 答卷后,可以根据问卷答案或者考试分数来显示不同的提示语信息
    • 自定义跳转链接逻辑 答卷后,可以根据问卷答案或者考试分数来跳转到不同的链接,且支持携带答案参数
  • 🌈 支持选项唯一设置,多问卷数据关联查询、更新和删除,考试自动算分,自定义提示语,自定义跳转链接等等

问卷产品对比

问卷网 腾讯问卷 问卷星 金数据 卷王
问卷调查 ✔️ ✔️ ✔️ ✔️ ✔️
在线考试 ✔️ ✔️ ✔️ ✔️
投票 ✔️ ✔️ ✔️ ✔️ ✔️
支持题型 🥇 🥉 🥇 🥈 🥈
题型设置 🥇 🥉 🥇 🥇 🥇
自动计算 🥉 🥈 🥇
逻辑设置 🥈 🥈 🥈 🥈 🥇
自定义校验 ✔️
自定义导出 🥈 🥉 🥇
手机端编辑 ✔️ ✔️ ✔️ ✔️ ✔️
公开查询(快查) ✔️ ✔️ ✔️
私有部署 💰💰💰 💰💰💰 💰💰💰 💰💰💰 🆓

Demo

1.官方demo
https://s.surveyking.cn/

admin
123456

准备条件

1)一台服务器
需要便宜VPS的可以参考这个
https://duan.yyzq.eu.org/vps1
2)本项目的github
https://github.com/javahuang/SurveyKing

一、Docker环境部署

在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04

或者直接用一键脚本

docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

二、创建docker-compose.yml文件

mkdir juanwang;cd juanwang  #创建一个目录,并进入此目录
mkdir -p ./my/files ;mkdir -p ./my/logs   #创建2个目录
wget https://github.com/nezha001/ywsjgongju/raw/main/surveyking.mv.db -O ./my/surveyking.mv.db  #数据持久化映射数据库
vim docker-compose.yml
version: '3.9'
services:
    surveyking:
        image: surveyking/surveyking  #镜像名
        volumes:
            - './my/logs:/surveyking/logs'      #目录映射
            - './my/files:/surveyking/files'  #目录映射
            - './my/surveyking.mv.db:/surveyking/surveyking.mv.db'  #文件映射
        ports:
            - '1991:1991' #端口映射,:左侧的1991可以自定义
        environment:
            - PUID=0    # 用户ID,在终端输入id可以查看当前用户的id
            - PGID=0    # 组ID同上
            - TZ=Asia/Shanghai  #时区,可以自定义
        restart: always  #总是启动

三、执行容器运行命令

docker-compose up -d #运行容器
docker-compose ps  #查看是否开启成功

正常启动如下所示

docker-compose ps  #查看是否开启成功
        Name                       Command               State                    Ports                  
---------------------------------------------------------------------------------------------------------
juanwang_surveyking_1   sh -c java ${JAVA_OPTS} -j ...   Up      0.0.0.0:1991->1991/tcp,:::1991->1991/tcp

四、打开web页面使用

成功以后需要打开自己相应的端口(1991)防火墙就可以web端访问了

http://ip:1991  #打开自己VPS的端口加ip进入web页面

image-1715087779955
默认用户名密码

admin
123456

五、备份迁移

直接备份目录juanwang即可

六、绑定域名

绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch
绑定完域名就可以用域名来访问了

有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我

3

评论区