a824f9eca8
* feat: 服务端新增eslint并且修复所有的lint问题 * feat: 优化部署启动命令 |
||
---|---|---|
server | ||
web | ||
.gitignore | ||
CONTRIBUTING.md | ||
docker-compose.yaml | ||
docker-run.sh | ||
Dockerfile | ||
LICENSE | ||
README.md |
XiaoJuSurvey是一套轻量、安全的问卷系统,提供面向个人和企业的一站式产品级解决方案,快速满足各类线上调研场景。
系统已沉淀40+种题型,累积精选模板100+,适用于市场调研、客户满意度调研、在线考试、投票、报道、测评等众多场景。数据能力上,经过上亿量级打磨,沉淀了分题统计、交叉分析、多渠道分析等在线报表能力,快速满足专业化分析。
简介
本次开源主要围绕问卷生命周期提供了完整的产品化能力:
-
问卷管理:创、编、投、收、数据分析
-
多样化题型:单行输入框、多行输入框、单项选择、多项选择、判断题、评分、投票
(更多题型将陆续开放,也欢迎您参与共建提交自定义题型)
-
用户管理:登录、注册、权限管理
-
数据安全:传输加密、脱敏等
(个人和企业用户均可快速构建特定领域的调研类解决方案。)
项目优势
一、具备全面的综合性和专业性
-
领域标准保障概念互通,是全系统的基础和核心。基于实际业务经验,沉淀了两大类:
- 业务描述:问卷协议、题型协议
- 物料描述:题型物料协议,包含题型和设置器
-
设计语言是系统灵活性、一致性的基石,保障系统支撑的实际业务运转拥有极高的用户体验。包含两部分:
- 设计规范:灵活、降噪、统一
- 交互规范:遵循用户行为特征,遵循产品定位,遵循成熟的用户习惯
-
实际业务使用上包含问卷生成和投放使用,即对于系统的搭建端和渲染端。我们将题型场景化设计,以满足一份问卷从加工生产到投放应用的高度一致。
-
题型是问卷最核心的组成部分,而题型可配置化能力决定了上层业务可扩展的场景以及系统自身可复用的场景。 题型架构设计上,主打每一类题型拥有通用基础能力,每一种题型拥有原子化特性能力,并保障高度定制化。
-
数据加密传输、敏感信息精细化检测、投票防刷等能力,保障问卷发布、数据回收链路安全性。
二、轻量化设计,快速接入、灵活扩展
-
围绕问卷生命周期提供了完整的产品化能力,包含用户管理: 登录、注册、问卷权限,问卷管理: 创、编、投、收、数据分析,可快速构建特定领域的调研类解决方案。
-
问卷组成具有高灵活性,此业务特征带来问卷编辑能力的高复杂性设计。我们将问卷编辑划分为五大子领域,进行产品能力聚类,同时指导系统模块化设计和开发。基于模块编排和管理,能够开箱即用。
-
全系统设计原则基于协议标准化、功能模块化、管理配置化,并提供了一些列完整的文档和开发及扩展手册。
-
前后端分离,提供Docker化方案,提供了完善的部署指导手册。
快速启动
Node版本>=14.21.0, 查看环境准备指导
复制工程
git clone git@github.com:didi/xiaoju-survey.git
服务端启动
方案一、快速启动,无需安装数据库
便于快速预览工程,对于正式项目需要使用方案二。
1、安装依赖
cd server
npm install
2、启动
npm run local
🌀NOTE:
服务运行依赖 mongodb-memory-server:
1、数据保存在内存中,重启服务会更新数据。
2、启动内存服务器新实例时,如果找不到MongoDB二进制文件会自动下载,因此首次可能需要一些时间。
方案二、(推荐)
1、启动数据库
项目使用MongoDB:
没有安装可以查看 MongoDB安装指导
mongod --dbpath ~/data/db --logpath ~/data/log/mongodb/mongo.log --fork
验证启动
ps aux | grep -v grep | grep mongod
工程默认的mongo链接如下,需要修改可查看配置修改指导:
mongodb://localhost:27017
2、安装依赖
cd server
npm install
3、启动
npm run dev
前端启动
安装依赖
cd web
npm install
启动
npm run serve
访问
问卷管理端
http://localhost:8080/management
问卷投放端
创建并发布问卷。
http://localhost:8080/render/:surveyPath