SurveyKing是一款功能强大的开源调查问卷和考试系统,由国内开发者javahuang创建并维护。该系统基于Java开发,采用前后端分离架构,支持私有化部署,提供了比商业问卷系统更丰富的功能和更灵活的定制选项。以下是关于该项目的全面介绍:
一、项目概述
SurveyKing是一个集调查问卷、在线考试、公开查询、投票和题库刷题功能于一体的全功能平台。与市面上常见的问卷星、腾讯问卷等商业产品相比,SurveyKing在题型设置、逻辑控制、数据导出等方面具有明显优势,同时支持私有化部署,确保数据安全。
项目主要特点包括:
- 功能全面:支持20多种题型,丰富的问卷设置和逻辑控制
- 部署灵活:支持Docker一键部署、单JAR包部署等多种方式
- 性能优异:采用Spring Boot后端和React前端,确保系统稳定高效
- 开源免费:MIT协议开源,可自由修改和二次开发
- 多端适配:响应式设计完美适配PC和移动端
二、核心功能
1. 问卷与考试功能
SurveyKing支持20多种题型,包括但不限于:
- 基础题型:填空、单选、多选、判断、简答
- 高级题型:下拉、级联、矩阵、分页、签名、题组、上传、横向填空等
多种创建方式:
- Excel导入问卷
- 文本导入创建问卷
- 在线编辑器拖拽创建
考试系统特性:
- 支持自动评分(客观题)和人工批改(主观题)
- 可生成考试证书
- 提供刷题模式
- 支持考试完成后的分数公开查询
2. 高级逻辑设置
SurveyKing的逻辑设置功能远超主流商业问卷系统,包括:
- 显示/隐藏逻辑:根据选项结果控制问题显示
- 计算逻辑:如根据身高体重自动计算BMI
- 校验逻辑:支持对答案进行高级校验
- 跳转逻辑:根据答案动态跳转到不同问题
- 文本替换逻辑:根据不同答案显示不同提示语
3. 数据管理与分析
- 数据操作:支持新增、编辑、标记、导出、打印、预览和打包下载附件
- 报表功能:实时统计分析并以多种图表(条形图、柱状图、扇形图)展示
- 数据导出:支持Excel、SPSS格式导出,独创附件名导出变量功能
4. 系统管理
- RBAC权限控制:完善的基于角色的访问控制
- 多人协作:支持团队共同管理问卷
- 数据库支持:兼容所有带有JDBC驱动的关系型数据库
- 白名单功能:限制特定用户参与问卷或考试
三、技术架构
1. 技术栈
后端:
- 语言:Java
- 框架:Spring Boot
- ORM:MyBatis
- 数据库:支持所有JDBC兼容的关系型数据库(MySQL、PostgreSQL等)
- 缓存:Redis
前端:
- 框架:React
- UI库:Ant Design
- 图表:ECharts
- 富文本编辑器:自主研发
2. 项目结构
SurveyKing/
├── survey-admin/ # 管理后台前端
├── survey-server/ # 后端服务
├── survey-client/ # 用户端前端
├── survey-common/ # 公共模块
├── doc/ # 项目文档
└── sql/ # 数据库脚本
四、部署方式
SurveyKing提供多种部署方案,最快1分钟即可完成部署:
1. Docker部署(推荐)
docker run -d \
--name surveyking \
-p 1991:1991 \
-v /your/path/surveyking:/surveyking \
surveyking/surveyking:latest
访问地址:http://服务器IP:1991
默认管理员账号:admin/123456
2. 单JAR包部署
- 下载最新JAR包
- 运行命令:
java -jar surveyking-vx.x.x.jar
3. 源码编译部署
git clone https://gitee.com/surveyking/surveyking.git
mvn clean package -DskipTests -Ppro
java -jar ./survey-server/target/surveyking-vx.x.x.jar
五、使用场景
SurveyKing适用于多种场景:
- 教育领域:在线考试、随堂测验、学习评估
- 企业应用:员工培训、技能考核、满意度调查
- 科研机构:数据收集、问卷调查、实验评估
- 政府机构:民意调查、公共服务评价
- 医疗健康:患者满意度调查、健康问卷
六、项目优势
-
功能对比优势:
功能 商业问卷系统 SurveyKing 题型丰富度 中等 非常丰富 逻辑设置 基础 非常强大 数据导出 有限制 高度灵活 私有化部署 收费 免费 二次开发 不允许 完全开放 -
性能优势:
- 支持百万级数据展示
- 优化的数据库查询性能
- 响应式设计确保移动端体验
-
成本优势:
- 完全开源免费
- 节省商业系统订阅费用
- 自主可控,无数据泄露风险
七、二次开发
SurveyKing采用模块化设计,便于二次开发和功能扩展,主要方向包括:
- 添加新的问卷题型
- 集成第三方认证系统
- 开发专用数据分析和可视化模块
- 增加多语言支持
- 优化移动端体验
项目代码结构清晰,注释完善,开发者可以快速上手进行定制开发。
八、社区与支持
- GitHub仓库:https://github.com/javahuang/SurveyKing
- Gitee仓库:https://gitee.com/surveyking/surveyking
SurveyKing项目持续更新维护,社区活跃,开发者可以提交Issue或Pull Request参与项目贡献。
九、总结
SurveyKing作为一款功能强大、部署简单的开源问卷和考试系统,在题型丰富度、逻辑设置灵活性和数据管理能力方面都达到了行业领先水平。无论是教育机构、企业还是个人开发者,都可以通过SurveyKing快速搭建专业的在线问卷和考试平台,满足各种场景下的数据收集和评估需求。
其开源特性允许用户完全掌控系统代码和数据,避免了商业系统的订阅费用和数据隐私问题,是替代问卷星、腾讯问卷等商业产品的优秀选择。