在线问卷系统
DWSurvey 调问网是国内首款开源问卷表单系统,自2012年启动至今已有12年历史。这是一个功能强大、成熟稳定的在线问卷调查系统,支持拖拽式创建问卷,提供50+自定义组件。
项目说明
在线问卷系统
项目概述
DWSurvey 调问网是国内首款开源问卷表单系统,自2012年启动至今已有12年历史。这是一个功能强大、成熟稳定的在线问卷调查系统,支持拖拽式创建问卷,提供50+自定义组件。
技术架构
前端:
- Vue 2.6.14
- Element UI 2.15.6
- Vuex + Vue Router
- ECharts 5.2.2(数据可视化)
- Vant 2.13.2(移动端)
- @wangeditor/editor(富文本编辑器)
后端:
- Spring Boot 2.7.18
- Spring Data JPA + Hibernate
- MySQL 5.7+
- Redis(缓存)
- Elasticsearch 8.8.1(可选,用于高级搜索)
- Druid(数据库连接池)
- Apache Shiro(权限管理)
部署方式:
- 支持 Docker 一键部署
- 支持传统 WAR/JAR 包部署
核心功能特性
1. 丰富的题型支持(50+题型)
基础题型:
- 单选题、多选题、填空题、评分题、排序题
- 多行填空题、多项填空题、日期题、时间题
- 下拉单选题、文件上传题、签名题
高级题型:
- 矩阵单选题、矩阵多选题、矩阵评分题、矩阵填空题
- 矩阵量表题、矩阵滑块题、矩阵数值题、矩阵组合题
- 矩阵下拉题、矩阵自增题
- 图片单选题、图片多选题、绘图题
特殊组件:
- 定位题(模糊定位、精确定位、双重定位)
- 地图组件、图片轮播、水印设置
- 分页、分段、分割线
2. 强大的逻辑控制
- 显示逻辑:根据条件显示/隐藏题目
- 跳转逻辑:根据答案跳转到指定题目
- DSL逻辑编程:调问独有的问卷编程语言
- 多条件组合
- 互斥语句
- 验证语句
- 赋值语句
- 计算语句
3. 答卷控制
- 微信、账号、IP、设备答题次数限制
- 答卷密码保护
- 仅微信答卷限制
- 允许填写时间设置
- 记录微信个人信息
- 结束跳转设置
4. 样式定制
- 页眉图、背景图、Logo图设置
- 主题色、背景色自定义
- 预置主题模板
- 进度条样式设置
- PC与移动端自适应
- 矩阵题移动端适配
5. 数据统计分析
- 实时数据统计
- 可视化图表展示
- 数据导出(Excel)
- 答卷详情查看
运行环境要求
最低配置
- 操作系统:Linux / Windows / macOS
- CPU:2核
- 内存:4GB
- 硬盘:20GB
软件环境
- JDK:1.8+
- MySQL:5.7+
- Redis:3.0+(可选)
- Elasticsearch:8.8.1(可选)
- Node.js:18.16+(前端开发)
- Maven:3.6+(后端构建)
快速安装部署
方式一:Docker 一键部署(推荐)⭐
这是最快速的部署方式,3分钟即可完成。
# 1. 拉取 Docker 镜像
docker pull diaowen/dwsurvey:latest
# 2. 运行容器
docker run -d \
--name dwsurvey \
-p 18008:18008 \
-p 8081:80 \
-v /data/dwsurvey:/app/dwfile \
diaowen/dwsurvey:latest
# 3. 访问系统
# 前端:http://localhost:8081
# 后端:http://localhost:18008
默认账号: service@diaowen.net
默认密码: 123456
方式二:本地开发部署
1. 数据库初始化
# 创建数据库
mysql -u root -p
CREATE DATABASE dwsurvey DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 导入数据库脚本
mysql -u root -p dwsurvey < db/dwsurvey-init.sql
数据库脚本位置:
DWSurvey/db/dwsurvey-init.sql
2. 配置后端
修改配置文件:src/main/resources/application-dev.yml
# 数据库配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/dwsurvey?useUnicode=true&characterEncoding=utf8
username: root
password: your_password # 修改为你的密码
# Redis配置(可选)
redis:
host: 127.0.0.1
port: 6379
password: ""
# 服务端口
server:
port: 18008
# 站点配置
dwsurvey:
web:
site-url: http://localhost:8081
resource-url: http://localhost:8081
file-path: dwfile/dwsurvey/ # 文件存储路径
3. 启动后端
cd DWSurvey
# 使用 Maven 启动
mvn clean package
java -jar target/dwsurvey-oss-vue-6.13.0.20250211.jar
# 或使用 IDE(IDEA/Eclipse)直接运行
# 主类:net.diaowen.dwsurvey.DwsurveyApplication
后端启动成功后访问:http://localhost:18008
4. 配置前端
修改配置文件:dwsurvey-vue/config/index.js
module.exports = {
dev: {
proxyTable: {
"/api": {
target: "http://localhost:18008", // 后端地址
changeOrigin: true,
},
},
port: 8081,
},
};
5. 启动前端
cd dwsurvey-vue/dwsurvey-vue
# 安装依赖
npm install
# 或使用 yarn
yarn install
# 启动开发服务器
npm run dev
# 或
yarn dev
前端启动成功后访问:http://localhost:8081
6. 生产环境打包
后端打包:
cd DWSurvey
mvn clean package
# 生成的 JAR 包位置
target/dwsurvey-oss-vue-6.13.0.20250211.jar
前端打包:
cd dwsurvey-vue/dwsurvey-vue
npm run build
# 生成的静态文件位置
dist/
项目结构说明
online-questionnaire-system/
├── DWSurvey/ # 后端项目
│ ├── db/ # 数据库脚本
│ │ ├── dwsurvey-init.sql # 初始化脚本
│ │ └── clothes.sql # 示例数据
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/ # Java 源码
│ │ │ │ └── net/diaowen/
│ │ │ └── resources/ # 配置文件
│ │ │ ├── application.yml
│ │ │ ├── application-dev.yml
│ │ │ ├── application-prod.yml
│ │ │ └── conf/ # 其他配置
│ │ └── test/ # 测试代码
│ ├── dwfile/ # 文件存储目录
│ ├── pom.xml # Maven 配置
│ └── README.md # 项目说明
│
├── dwsurvey-vue/ # 前端项目
│ └── dwsurvey-vue/
│ ├── src/
│ │ ├── api/ # API 接口
│ │ ├── components/ # 组件
│ │ ├── router/ # 路由
│ │ ├── views/ # 页面
│ │ ├── App.vue
│ │ └── main.js
│ ├── static/ # 静态资源
│ ├── build/ # 构建配置
│ ├── config/ # 项目配置
│ ├── package.json
│ └── README.md
│
└── 在线问卷调查.mp4 # 演示视频
功能模块说明
1. 问卷设计模块
- 拖拽式题目添加
- 题目属性设置
- 逻辑跳转配置
- 样式主题设置
- 问卷预览
2. 问卷发布模块
- 生成问卷链接
- 二维码生成
- 答卷权限设置
- 时间限制设置
3. 数据收集模块
- 答卷提交
- 数据验证
- 进度保存
- 答卷记录
4. 数据分析模块
- 统计图表
- 数据筛选
- 交叉分析
- 数据导出
5. 系统管理模块
- 用户管理
- 权限管理
- 系统设置
- 日志管理
常见问题
1. 数据库连接失败
- 检查 MySQL 是否启动
- 确认数据库名称、用户名、密码是否正确
- 检查数据库端口是否为 3306
2. 前端无法访问后端接口
- 确认后端服务是否启动(端口 18008)
- 检查前端配置中的后端地址是否正确
- 查看浏览器控制台是否有跨域错误
3. 文件上传失败
- 检查
dwsurvey.web.file-path配置的目录是否存在 - 确认目录是否有写入权限
- 检查文件大小是否超过限制
4. Redis 连接失败
- 如果不需要 Redis,可以注释掉相关配置
- 确认 Redis 服务是否启动
- 检查 Redis 连接信息是否正确
技术支持
官方资源
- 官网:https://www.diaowen.net
- 在线体验:https://demo.diaowen.net
- 文档中心:http://www.diaowen.net/docs/
- Gitee:https://gitee.com/wkeyuan/DWSurvey
- GitHub:https://github.com/wkeyuan/DWSurvey
社区交流
- QQ群1:635994795(已满)
- QQ群2:301105635(已满)
- QQ群3:811287103(已满)
- QQ群4:398556555
版本说明
- 当前版本:V7(社区开源版)
- 最新版本:V8(商业版,Vue3 + Element Plus)
- 开源协议:AGPL 3.0
更新日志
V7 版本(当前)
- 前后端完全分离
- Vue2 + Element UI 实现
- 支持 50+ 题型
- DSL 逻辑编程
- Docker 一键部署
V8 版本(商业版)
- Vue3 + Element Plus
- 更多高级功能
- 更好的性能优化
- 企业级支持
开发团队
调问网开源团队致力于打造最好用的开源问卷系统,如果这个项目对您有帮助,请给我们一个 ⭐Star 支持!
Power by diaowen.net
许可证
本项目采用 AGPL 3.0 开源协议,部署使用要求保留 "Power by diaowen.net" 标识,且衍生版本需要及时开源。
如需商业授权或更优质的服务,请访问官网了解专业版与企业版。
技术分类
包含内容
适用人群
学习参考与二次开发
关于 AI源码
AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。
相关推荐
查看全部 →
大学生就业信息管理系统
这是一个面向高校大学生的就业信息管理系统,采用前后端分离架构,实现了学生求职、企业招聘、管理员后台管理三端功能。系统涵盖职位发布、简历管理、面试安排、合同签署、就业指南等完整的就业服务流程,适合作为计算机设计或学习项目参考。

大学生在线焦虑测试系统
这是一个专为大学生设计的在线心理健康评估与咨询平台,集成了焦虑测评、在线咨询、个性化建议等核心功能。系统采用前后端分离架构,支持学生、医生、管理员三种角色,提供专业的心理健康服务。

商品管理系统HTML(登录注册增删增删改查)
这是一个基于 Node.js + MySQL + HTML(Vue2) 的商品管理系统,包含用户登录注册和商品的增删改查功能。

高校快递代取系统
本系统是一套高校快递代取微信小程序全栈平台,包含用户端小程序、骑手接单端与 PC 管理后台。用户可发布代取预约、在线支付、跟踪订单进度与申诉;骑手可在大厅接单、取件配送并填写备注;管理员负责驿站与价格配置、公告发布、骑手审核、订单改派及数据统计。后端采用 Express + MySQL,适合作为校园 O2O 类小程序计算机设计参考。

高校选课系统
这是一个完整的高校选课管理系统,采用前后端分离架构,实现了院系管理、专业管理、班级管理、学生管理、教师管理、课程管理、选课管理等核心功能。系统支持多角色(超级管理员、普通管理员、教师、学生)权限控制,适合作为Vue3全栈开发学习项目或计算机设计参考。

高校查分系统
高校学生成绩查询与管理系统,采用前后端分离架构,支持管理员、教师、学生三种角色。