# SurveyKing
**Repository Path**: bigcat9527/surveyking
## Basic Information
- **Project Name**: SurveyKing
- **Description**: 功能更强大&搭建更简单的在线考试/调查问卷/公开查询/题库刷题/投票系统。💪💪💪💪💪
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://surveyking.cn
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1706
- **Created**: 2022-08-11
- **Last Updated**: 2022-08-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 卷王
简体中文 | [English](./README.en-us.md)
功能更强大的调查问卷、考试系统,很多功能体验超过问卷网、问卷星。
需要您的 star ⭐️⭐️⭐️ 支持鼓励 🙏🙏🙏,**右上角点 Star (非强制)加QQ群([338461197](https://qm.qq.com/cgi-bin/qm/qr?k=yJ8K8BUR0XxDi-KX3r2CBjDpMEuRHbG9&authKey=a518l1HYfk2Nte1WVAMl97+H96zOW5iNveohr15Vj1av8OQewJOFRDbTjDpyHcdR&noverify=0))获取最新的数据库脚本**。
[在线预览 点击试一试无需注册登录](https://s.surveyking.cn)
## 🚀 1 分钟快速体验调查问卷系统(无需安装数据库)
1. 下载 [卷王快速体验安装包](https://pan.baidu.com/s/1G6A1V2V4WjGJXopPXpRLNA?pwd=1234)
2. 解压,双击运行 start.bat
3. 打开浏览器访问 [http://localhost:1991](http://localhost:1991),输入账号密码: *admin*/*123456*
## 特性
- 🥇 支持 20 多种题型,如填空、选择、下拉、级联、矩阵、分页、签名、题组、上传等
- 🎉 多种创建问卷方式,Excel导入问卷、文本导入问卷、在线编辑器编辑问卷
- 💪 多种问卷设置,支持白名单答卷、公开查询、答卷限制等
- 🎇 数据,支持问卷数据新增、编辑、标记、导出、预览和打包下载附件
- 🎨 报表,支持对问题实时统计分析并以图形(条形图、柱形图、扇形图)、表格的形式展示输出
- 🚀 安装部署简单(**最快 1 分钟部署**),支持 nginx 部署和一键启动的方式
- 🥊 响应式布局,所有页面在 PC 和手机端都有良好的操作体验,支持手机端编辑问卷
- 👬 支持多人协作管理问卷
- 🎁 后端支持多种数据库,可支持所有带有 jdbc 驱动的关系型数据库
- 🐯 安全、可靠、稳定、高性能的后端 API 服务
- 🙆 支持完善的 RBAC 权限控制
- 😊 支持**工作流**,工作流代码已全部开源
- 🦋 可计算,分为**逻辑计算**、**值计算**、**文本替换计算**、**必填计算**,[点击体验](https://s.surveyking.cn/s/logic8)
- ...
## 问卷产品对比
| | [问卷网](https://www.wenjuan.com/) | [腾讯问卷](https://wj.qq.com) | [问卷星](https://www.wjx.cn/) | [金数据](https://jinshuju.net/) | [卷王](https://surveyking.cn/) |
| --------------- | ------------------------------- | -------------------------- | -------------------------- | ---------------------------- | --------------------------- |
| 问卷调查 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| 在线考试 | ✔️ | ❌ | ✔️ | ✔️ | ✔️ |
| 投票 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| 支持题型 | 🥇 | 🥉 | 🥇 | 🥈 | 🥈 |
| 题型设置 | 🥇 | 🥉 | 🥇 | 🥇 | 🥇 |
| 自动计算 | ❌ | ❌ | 🥉 | 🥈 | 🥇 |
| 逻辑设置 | 🥈 | 🥈 | 🥈 | 🥈 | 🥇 |
| 自定义校验 | ❌ | ❌ | ❌ | ❌ | ✔️ |
| 自定义导出 | 🥈 | ❌ | ❌ | 🥉 | 🥇 |
| 手机端编辑 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| 公开查询(快查) | ✔️ | ❌ | ✔️ | ❌ | ✔️ |
| 私有部署 | 💰💰💰 | 💰💰💰 | 💰💰💰 | 💰💰💰 | 🆓 |
注: 上表与卷王对比的全部是商业问卷产品,他们有很多地方值得卷王学习,仅列出部分主要功能供大家参考,如果对结果有疑问,可以点击对应产品的链接自行对比体验。
🥇强 🥈中 🥉弱
## 预览截图
* 考试系统预览
* 调查问卷预览
## 安装
### 通过发行版安装
目前已适配 mysql 数据库
加 Q群(**[338461197](https://qm.qq.com/cgi-bin/qm/qr?k=yJ8K8BUR0XxDi-KX3r2CBjDpMEuRHbG9&authKey=a518l1HYfk2Nte1WVAMl97+H96zOW5iNveohr15Vj1av8OQewJOFRDbTjDpyHcdR&noverify=0)**)群下载最新版安装文件(`/正式版目录/surveyking-v0.x.x.jar`)到本地
### 使用源码编译安装
默认构建的是 h2 版本的安装包。
使用 gradle 构建:
```bash
# 下载源码
git clone https://gitee.com/surveyking/surveyking.git
# 设置 profile,修改 api/src/main/resources/application.yml
# 打开 active: ${activeProfile} # gradle 配置
# 开始构建
gradle clean :api:build -P pro -x test
# 生成的 jar 包位于 ./api/build/libs/surveyking-v0.x.x.jar
```
使用 maven 构建:
```bash
# 下载源码
git clone https://gitee.com/surveyking/surveyking.git
# 开始构建
mvn clean package -DskipTests -Ppro
# 生成的 jar 包位于 ./api/target/surveyking-v0.x.x.jar
```
### 使用 docker 快速启动(非最新版本)
启动 SurveyKing 镜像时,你可以指定 SurveyKing 挂载参数,将日志文件和内置数据库保存到你本地。(docker 版本目前还有点问题,待解决)
```bash
docker run -p 1991:1991 registry.cn-hangzhou.aliyuncs.com/surveyking/surveyking
# 挂载数据文件
docker run -p 1991:1991 -v /surveyking:/surveyking registry.cn-hangzhou.aliyuncs.com/surveyking/surveyking
```
## 使用
- **预安装 JRE 环境**,由于本系统是 Java 构建的,需要依赖 Java 运行环境,可以通过 [适用于所有操作系统的 Java 下载
](https://www.java.com/zh-CN/download/manual.jsp) 来预装 java 环境。
- **配置数据库**,按照下面的说明来配置不同的数据库,如果前端需要使用 nginx 部署,参考使用 nginx 部署前端。
- **运行**,支持所有平台部署,windows 和 mac 支持双击运行,或者打开命令行窗口执行如下命令
```bash
java -jar surveyking-v0.x.x.jar
```
打开浏览器,访问 [http://localhost:1991](http://localhost:1991) 即可,系统首次启动之后会自动创建 admin 用户,账号/密码(*admin/123456*),登录系统之后可以通过用户管理界面来修改密码。
### mysql 启动方式
使用参数启动
1. 首先创建 mysql 数据库,然后执行初始化脚本,[下载脚本](https://gitee.com/surveyking/surveyking/raw/master/server/rdbms/src/main/resources/scripts/init-mysql.sql)。
2. 执行 `java -jar surveyking-v0.x.x.jar --server.port=1991 --spring.datasource.url=jdbc:mysql://localhost:3306/surveyking --spring.datasource.username=root --spring.datasource.password=123456`(只有首次启动系统需要添加后面的参数)
参数说明(按照实际需要自行修改):
- `--server.port=1991` 系统端口
- `--spring.datasource.url=jdbc:mysql://localhost:3306/surveyking` 数据库连接的 url
- `--spring.datasource.username=root` 数据库账号
- `--spring.datasource.password=123456` 数据库密码
也可以尝试使用命令行的方式初始化数据库(会自动执行数据库初始脚本)
```bash
# 按照提示初始化数据库
java -jar surveyking-v0.x.x.jar i
# 初始化完成之后运行即可
java -jar surveyking-v0.x.x.jar
```
### 使用 nginx 部署前端
下载 [该目录下面的静态资源文件](https://gitee.com/surveyking/surveyking/tree/master/server/api/src/main/resources/static),直接部署到 nginx 即可。
然后配置 proxy 代理到后端 api 服务。
## 在线体验
演示地址: [https://surveyking.cn](https://surveyking.cn)
点击 *试一试*,无需注册登录
## 联系作者
本项目后端代码完全开源,前端代码开源版本正在开发,即将发布。如果觉得对您有帮助,可以点击右上角的 star。
如果遇到任何问题或者建议,欢迎加群讨论。
QQ群:338461197
## 致谢
[formily](https://github.com/alibaba/formily)
## 开源协议
SurveyKing is open source software licensed as
[MIT.](https://github.com/javahuang/SurveyKing/blob/master/LICENSE)