部署开源调查问卷系统SurveyKing

在线表单,问卷调查,问卷系统,考试系统;类似项目: Tduck填鸭表单系统(开源在线表单收集工具)
可应用于学校、组织或公司的意向调查和公开查询修改系统等;

有什么用

  • 可以把需要手机的问题,通过邮件或短信发送给客户;等客户或相关人员有空了,进行填写。
  • 后台收到问卷答复以后,确认用户的需求;同步通知并进行下一个流程的操作
  • 可以导入数据后,做一个查询系统;实现直接了当的界面,让用户输入查询条件后查询到整行数据
  • 类似逐条Excel个人数据的隐私输入、查询和修改系统
  • 详见章节:公开查询
  • 卷王问卷(SurveyKing)是一款部署简单功能强大开源免费的企业级在线问卷考试系统。

怎么用

网页中在线使用:https://ask.carlzeng.com:4443/user/login

开放测试/学习 用户名/密码:test/test

如果你还需要帮助,请联系我(授权或解答疑问等

相关内容

实现方法

体验版

优点:一键发布,简单不管什么数据库;

vi docker-compose.yml

version: '3.9'
services:
    surveyking:
        image: surveyking/surveyking
        ports:
            - '8098:1991'

转化来源:docker run -p 1991:1991 surveyking/surveyking

转化工具:https://it-tools.carlzeng.com:3/docker-run-to-docker-compose-converter

如果要挂载数据文件:

version: '3.9'
services:
    surveyking:
        image: surveyking/surveyking
        volumes:
            #- './logs:/logs' #注释掉就不要log永久保留在硬盘
            - './files:/files'
        ports:
            - '8098:1991'

首次安装时默认用户/密码:admin/123456

https://ask.carlzeng.com:4443/user/login

开放测试 用户名/密码:test/test

如何默认字段内容

日期字段,想要让页面加载时自动输入当前日期。

解决办法:公式设置为CURRENT_DATE()

正式版v1.6.0

数据不清楚保存在哪儿?重启docker,之前的问卷已经答复等数据如何保存?

重启docker,之前保存的问卷和数据依旧存在。

当之前的docker-compose文件修改后,在重启docker-compose,数据就全丢失

完整的docker-compose.yml,3月20日已测试,仅供参考

已将mysql更换为mariadb,因为它的的资源消耗比较合理(不会肆意吃服务器资源)

version: '3'
services:
    surveyking_mysql:
        environment:
            MYSQL_ROOT_PASSWORD: "123456"
            MYSQL_DATABASE: "surveyking"
        image: "mariadb:jammy" #"mysql:5.7.39"
        container_name: "surveyking_mysql"
        restart: always
        networks:
            - surveyking_net
        ports:
            - 3307:3306
        volumes:
            - "./init-mysql.sql:/docker-entrypoint-initdb.d/init-mysql.sql"
            - "/etc/localtime:/etc/localtime:ro"
            - "./mysql_data:/var/lib/mysql"
        command:
            - "--character-set-server=utf8mb4"
            - "--collation-server=utf8mb4_unicode_ci"
        logging:
            driver: "json-file"
            options:
                max-file: "5"
                max-size: "100m"
    surveyking:
        environment:
            JAVA_OPTS: "-Xms128m -Xmx1024m"
        image: "openjdk:8u342-jdk"
        container_name: "surveyking"
        restart: always
        networks:
            - surveyking_net
        ports:
            - 8098:1991
        logging:
            driver: "json-file"
            options:
                max-file: "5"
                max-size: "100m"
        volumes:
            - "./surveyking-v1.6.0.jar:/surveyking.jar"
            - "/etc/localtime:/etc/localtime:ro"
            #- "./logs:/logs" #only enable for debug
            - "./files:/files"
        depends_on:
            - surveyking_mysql
        command: [
                "sh",
                "-c",
                "java -jar /surveyking.jar --spring.datasource.url=jdbc:mysql://surveyking_mysql/surveyking --spring.datasource.username=root --spring.datasource.password=123456"]
networks:
  surveyking_net:

重新初始化部署步骤:

  1. 把这个docker停掉
  2. 然后把当前目录下的这三个文件夹删除,
  3. 然后重新手动创建一下这三个文件夹:files, logs,mysql_data

公开查询

能实现和金山快查相同的功能,甚至比他更强大。

主要功能特性:

  1. 支持大数据量 excel 导入,实测导入 10 万数据查询、修改都非常流畅
  2. 可以对同一个问卷创建多个公开查询
  3. 支持自由组合多个查询条件
  4. 支持查询项权限过滤,每个查询项支持三种模式,只读、允许修改、隐藏,支持查询结果查看、修改
  5. 支持查询结果,图片上传、签名等

使用说明:公开查询设置页面说明

测试问卷使用的测试数据

这个问卷JSON数据,可以复制后直接粘贴到编辑模式下的JSON编辑,然后预览即可获得一个简易问卷

image-20240319195613169

{
 "id": "U57zDd",
 "title": "<strong style=\"font-size: 36px;\">需求问卷</strong>",
 "description": "感谢您能抽出几分钟时间来参加本次需求问卷,现在我们就马上开始吧!",
 "type": "Survey",
 "attribute": {
  "suffix": "您已完成本次问卷,感谢您的帮助与支持",
  "submitButton": "提交"
 },
 "children": [
  {
   "id": "crrm",
   "title": "推拉方式",
   "description": "国标防盗门一般使用'单边推拉'",
   "type": "Radio",
   "attribute": {
    "required": true
   },
   "children": [
    {
     "id": "mn1n",
     "title": "单边推拉",
     "attribute": {}
    },
    {
     "id": "frvq",
     "title": "双边推拉",
     "attribute": {}
    },
    {
     "id": "a3y8",
     "title": "特殊要求",
     "attribute": {}
    }
   ]
  },
  {
   "id": "55tb",
   "title": "安装位置",
   "type": "Radio",
   "attribute": {
    "required": true
   },
   "children": [
    {
     "id": "bufj",
     "title": "室外安装",
     "attribute": {}
    },
    {
     "id": "mm95",
     "title": "室内安装",
     "attribute": {}
    }
   ]
  },
  {
   "id": "tukl",
   "title": "锁处位置",
   "type": "Radio",
   "attribute": {
    "required": true
   },
   "children": [
    {
     "id": "h4w2",
     "title": "锁在门左侧",
     "attribute": {}
    },
    {
     "id": "gt2j",
     "title": "锁在门右侧",
     "attribute": {}
    }
   ]
  },
  {
   "id": "l6nl",
   "title": "边框颜色(纱网默认灰色)",
   "description": "<img src=\"/api/public/preview/sqqsybc2kWdUsy1f7xtiL\">",
   "type": "Radio",
   "attribute": {
    "required": true
   },
   "children": [
    {
     "id": "a5yw",
     "title": "咖啡色",
     "attribute": {}
    },
    {
     "id": "2v4x",
     "title": "白色",
     "attribute": {}
    },
    {
     "id": "2mkw",
     "title": "灰色",
     "attribute": {}
    },
    {
     "id": "w0a9",
     "title": "古铜色",
     "attribute": {}
    },
    {
     "id": "df5c",
     "title": "黑色",
     "attribute": {}
    },
    {
     "id": "dn2c",
     "title": "香槟色",
     "attribute": {}
    },
    {
     "id": "mlly",
     "title": "黄木纹",
     "attribute": {}
    },
    {
     "id": "5o4t",
     "title": "红木纹",
     "attribute": {}
    },
    {
     "id": "6xgr",
     "title": "金橡木",
     "attribute": {}
    }
   ]
  },
  {
   "id": "raoo",
   "title": "上传现场照片(含门洞全貌照片)",
   "type": "Upload",
   "attribute": {
    "required": false
   },
   "children": [
    {
     "id": "44dx",
     "attribute": {
      "fileAccept": ".jpg,.jpeg,.png,.gif"
     }
    }
   ]
  },
  {
   "id": "lp3i",
   "title": "手机号码",
   "type": "FillBlank",
   "attribute": {
    "required": true,
    "examAnswerMode": "none"
   },
   "children": [
    {
     "id": "26c8",
     "attribute": {
      "dataType": "mobile",
      "required": true,
      "calculate": ""
     }
    }
   ]
  },
  {
   "id": "s5oj",
   "title": "姓名(如何称呼您)",
   "type": "FillBlank",
   "attribute": {
    "required": true,
    "visibleRule": ""
   },
   "children": [
    {
     "id": "mo8z",
     "attribute": {
      "calculate": ""
     }
    }
   ]
  },
  {
   "id": "v22e",
   "title": "创建日期",
   "type": "FillBlank",
   "attribute": {
    "required": true,
    "visibleRule": "",
    "requiredRule": ""
   },
   "children": [
    {
     "id": "miob",
     "attribute": {
      "dataType": "date",
      "readOnly": false,
      "calculate": "CURRENT_DATE()",
      "dateTimeFormat": "YYYY-MM-DD"
     }
    }
   ]
  }
 ]
}

临时测试链接:https://ask.carlzeng.com:4443/s/nK2Kxr

发现的小问题

在安卓手机端+Kiwi Browser打开这个问卷,点击上传图片,就会导致整个浏览器奔溃退出。

同样的步骤在Chrome下就没有这个问题,所以这问题可忽略不计

灵感来源

SurveyKing

开源&Docker 篇四十二:NAS部署,支持可视化编辑、发布的开源问卷&试卷系统—卷王

Docker run to Docker compose converter

https://gitee.com/TDuckApp/tduck-platform


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注