
卷王问卷系统的搭建方法
背景
觉得公司使用Excel/Word来进行考试比较蠢,不美观,判卷费时费力。因此研究研究。
简介
卷王问卷系统是一款高效、智能的在线问卷调查工具,旨在帮助用户快速创建、分发、收集和分析问卷数据。
该系统拥有简洁直观的操作界面,适合各类用户,包括企业、教育机构、市场调研人员等。
用户可以通过卷王轻松设计调查问卷,选择多种问题类型(如单选、多选、评分、填空等),并根据需求设置逻辑跳转、问卷模板等功能。
主要特点:
易于使用: 无需专业技能即可创建和管理问卷,操作界面简洁友好。
多样化问卷设计: 提供丰富的题型和模板,满足不同场景的需求。
智能分析: 自动统计并生成数据报告,支持图表展示和导出数据。
跨平台支持: 支持PC端和移动端问卷填写,方便快捷。
实时反馈: 提供实时数据监控,帮助用户随时掌握调查进展。
安全性保障: 数据加密存储,保障用户的隐私和数据安全。
官方实例
部署
1.docker部署(H2 数据库)
# 一键启动
docker run -d -p 1991:1991 surveyking/surveyking
# 挂载文件目录和日志文件
docker run -d -p 1991:1991 -v ${PWD}/db:/app/db -v ${PWD}/files:/app/files -v ${PWD}/logs:/app/logs surveyking/surveyking
2.docker部署(MySQL 数据库)
这种部署方式使用的是外部的 MySQL 数据库,好处是数据持久化更可靠,适合生产环境和高并发场景,同时可以利用 MySQL 的性能优化和集群功能。缺点是部署和配置复杂度较高,需要单独维护数据库服务,并且在初次配置时可能需要额外的时间和技能。
# 使用外置 mysql 数据库
docker run -e PROFILE=mysql \
-v ${PWD}/logs:/app/logs \
-v ${PWD}/files:/app/files \
-e MYSQL_USER=surveyking \
-e MYSQL_PASS=surveyking \
-e DB_URL='jdbc:mysql://172.17.0.1:3306/surveyking?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8' \
-p 1991:1991 \
surveyking/surveyking
需要按照实际需要而修改的参数
MYSQL_USER
(MySQL 数据库的用户名) :
这个参数是你 MySQL 数据库的用户名。如果你使用了不同的用户名(比如
root
或其他名称),需要将surveyking
修改为你自己的 MySQL 数据库用户名。例如,如果你的 MySQL 用户名是
admin
,你需要将这一行修改为:
-e MYSQL_USER=admin
MYSQL_PASS
(MySQL 数据库的密码) :
这个参数是你 MySQL 数据库的密码,用于连接数据库。如果你在设置 MySQL 数据库时使用了不同的密码,需要在这里将
surveyking
修改为你自己的 MySQL 数据库密码。例如,如果你的 MySQL 密码是
mysecretpassword
,你需要将这一行修改为:-e MYSQL_PASS=mysecretpassword
DB_URL
(MySQL 数据库的连接地址) :
这个参数指定了如何连接到你的 MySQL 数据库,包括 IP 地址、端口号、数据库名称和一些连接选项。
你需要修改以下部分:
172.17.0.1
:这是你的 MySQL 数据库的 IP 地址或主机名。如果你的 MySQL 数据库运行在本地机器上,可以保持不变;如果它在另一台机器上,请将其更改为该机器的 IP 地址或主机名。3306
:这是 MySQL 数据库的端口号。如果你没有修改 MySQL 的默认端口号,可以保持不变;如果修改了端口号,请将其更改为实际使用的端口号。surveyking
:这是数据库名称。你需要将它更改为你在 MySQL 中创建的实际数据库名称。
例如,如果你的数据库在
192.168.1.100
服务器上,端口号是3307
,数据库名称是mydatabase
,你需要将这一行修改为:
-e DB_URL='jdbc:mysql://192.168.1.100:3307/mydatabase?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8'
日志文件和数据文件挂载路径 :
-v ${PWD}/logs:/app/logs
>这个参数将本地机器上的 logs 文件夹挂载到容器内的 /app/logs 目录。
这样,应用程序的日志文件将保存在你的本地机器上。你可以将 ${PWD}/logs
替换为你希望保存日志文件的具体路径。
例如,如果你想把日志保存到 C:\myapp\logs
,你可以修改为:
-v C:/myapp/logs:/app/logs
-v ${PWD}/files:/app/files
>这个参数将本地机器上的 files 文件夹挂载到容器内的 /app/files 目录,用于存储上传的文件。你可以将 ${PWD}/files 替换为你希望保存文件的具体路径。
例如,如果你想把文件保存到 D:\myapp\files
,你可以修改为:
-v D:/myapp/files:/app/files
端口映射 :
-p 1991:1991
:这个参数将容器内部的 1991 端口映射到你机器的 1991 端口。这意味着你可以通过浏览器访问http://localhost:1991
来访问应用程序。如果你有其他应用程序占用了这个端口,或者你想使用不同的端口,你可以修改第一个1991
为其他值。例如,如果你想在本地机器上使用 8080 端口访问该应用程序,你可以修改为:
-p 8080:1991
3.docker-compose部署
services:
mysql:
image: mysql:8
container_name: mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: surveyking
MYSQL_DATABASE: surveyking
volumes:
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/data:/var/lib/mysql
- ./sqls:/docker-entrypoint-initdb.d
networks:
app_net:
ipv4_address: 10.20.52.20
surveyking:
image: surveyking/surveyking:latest
container_name: surveyking
restart: unless-stopped
environment:
PROFILE: mysql
MYSQL_USER: root
MYSQL_PASS: surveyking
DB_URL: jdbc:mysql://mysql:3306/surveyking
volumes:
- ./files:/app/files
- ./logs:/app/logs
depends_on:
- mysql
ports:
- '1991:1991'
networks:
app_net:
ipv4_address: 10.20.52.10
networks:
app_net:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 10.20.52.0/24
gateway: 10.20.52.1
- subnet: FD00:1:1::/64
gateway: FD00:1:1::1
效果图
访问ip+端口即可访问