MCPcopy
hub / github.com/didi/xiaoju-survey

github.com/didi/xiaoju-survey @v1.2.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.2.0 ↗
489 symbols 935 edges 161 files 0 documented · 0%
README
<img src="https://img-hxy021.didistatic.com/static/starimg/img/j8lBA6yy201698840712358.jpg"  width="300" align='center' />






<a href="https://github.com/didi/xiaoju-survey/graphs/contributors">
    <img src="https://img.shields.io/github/last-commit/didi/xiaoju-survey?color=red" alt="commit">
</a>
<a href="https://github.com/didi/xiaoju-survey/pulls">
    <img src="https://img.shields.io/badge/PRs-welcome-%23ffa600" alt="pr">
</a>
<a href="https://github.com/didi/xiaoju-survey/issues">
    <img src="https://img.shields.io/github/issues/didi/xiaoju-survey" alt="issues">
</a>
<a href="https://github.com/didi/xiaoju-survey/discussions">
    <img src="https://img.shields.io/badge/Discussions-%E8%AE%A8%E8%AE%BA-blue" alt="discussions-">
</a>
<a href="https://xiaojusurvey.didi.cn">
    <img src="https://img.shields.io/badge/help-%E6%96%87%E6%A1%A3-blue" alt="docs">
</a>

  XIAOJUSURVEY是一套轻量、安全的问卷系统,提供面向个人和企业的一站式产品级解决方案,快速满足各类线上调研场景。

  系统已沉淀40+种题型,累积精选模板100+,适用于市场调研、客户满意度调研、在线考试、投票、报道、测评等众多场景。数据能力上,经过上亿量级打磨,沉淀了分题统计、交叉分析、多渠道分析等在线报表能力,快速满足专业化分析。

简介

本次开源主要围绕问卷生命周期提供了完整的产品化能力:

  • 问卷管理:创、编、投、收、数据分析

  • 多样化题型:单行输入框、多行输入框、单项选择、多项选择、判断题、评分、投票

(更多题型将陆续开放。快速自定义题型)

  • 用户管理:登录、注册、权限管理

  • 数据安全:传输加密、脱敏等

查阅官方Feature

(个人和企业用户均可快速构建特定领域的调研类解决方案。)

技术

Web端:Vue2(Vue3版本24年上半年推出)+ ElementUI

Server端:Nestjs + MongoDB

架构:架构解读

项目优势

一、具备全面的综合性和专业性

领域标准保障概念互通,是全系统的基础和核心。基于实际业务经验,沉淀了两大类: - 业务描述:问卷协议、题型协议 - 物料描述:题型物料协议,包含题型和设置器

设计语言是系统灵活性、一致性的基石,保障系统支撑的实际业务运转拥有极高的用户体验。包含两部分: - 设计规范:灵活、降噪、统一 - 交互规范:遵循用户行为特征,遵循产品定位,遵循成熟的用户习惯

实际业务使用上包含问卷生成和投放使用,即对于系统的搭建端和渲染端。我们将题型场景化设计,以满足一份问卷从加工生产到投放应用的高度一致。

题型是问卷最核心的组成部分,而题型可配置化能力决定了上层业务可扩展的场景以及系统自身可复用的场景。 题型架构设计上,主打每一类题型拥有通用基础能力,每一种题型拥有原子化特性能力,并保障高度定制化。

数据加密传输、敏感信息精细化检测、投票防刷等能力,保障问卷发布、数据回收链路安全性。

二、轻量化设计,快速接入、灵活扩展 - 产品级开源方案,快速产出一套调研流程

围绕问卷生命周期提供了完整的产品化能力,包含用户管理: 登录、注册、问卷权限,问卷管理: 创、编、投、收、数据分析,可快速构建特定领域的调研类解决方案。

问卷组成具有高灵活性,此业务特征带来问卷编辑能力的高复杂性设计。我们将问卷编辑划分为五大子领域,进行产品能力聚类,同时指导系统模块化设计和开发。基于模块编排和管理,能够开箱即用。

全系统设计原则基于协议标准化、功能模块化、管理配置化,并提供了一些列完整的文档和开发及扩展手册。

前后端分离,提供Docker化方案,提供了完善的部署指导手册。

快速启动

Node版本 >= 16.x, 查看环境准备指导

复制工程

git clone git@github.com:didi/xiaoju-survey.git

服务端启动

方案一、快速启动,无需安装数据库

便于快速预览工程,对于正式项目需要使用方案二。

1、安装依赖

cd server
npm install

2、启动

npm run local

服务运行依赖 mongodb-memory-server

1、数据保存在内存中,重启服务会更新数据。

2、启动内存服务器新实例时,如果找不到MongoDB二进制文件会自动下载,因此首次可能需要一些时间。

方案二、(生产推荐)

1、启动数据库

项目使用MongoDB:MongoDB安装指导

启动和配置数据库,查看MongoDB启动

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

交流群

微信

QQ

Feature

官方Feature

CHANGELOG

MAJOR CHANGELOG

Extension points exported contracts — how you extend this code

XiaojuSurveyPlugin (Interface)
(no doc) [2 implementers]
server/src/securityPlugin/interface.ts
TitleConfig (Interface)
(no doc)
server/src/interfaces/survey.ts
BannerConfig (Interface)
(no doc)
server/src/interfaces/survey.ts
BannerConf (Interface)
(no doc)
server/src/interfaces/survey.ts
NPS (Interface)
(no doc)
server/src/interfaces/survey.ts

Core symbols most depended-on inside this repo

get
called by 43
server/src/modules/surveyResponse/services/counter.service.ts
use
called by 11
server/src/middlewares/logRequest.middleware.ts
checkSurveyAccess
called by 8
server/src/modules/survey/services/surveyMeta.service.ts
filterXSS
called by 7
web/src/common/xss.js
triggerHook
called by 5
server/src/securityPlugin/pluginManager.ts
get
called by 5
web/src/materials/questions/widgets/BaseRate/index.jsx
isString
called by 4
server/src/securityPlugin/responseSecurityPlugin/utils.ts
getSurveyConfBySurveyId
called by 4
server/src/modules/survey/services/surveyConf.service.ts

Shape

Function 217
Method 147
Class 106
Interface 15
Enum 4

Languages

TypeScript100%

Modules by API surface

server/src/interfaces/survey.ts14 symbols
web/src/render/store/mutations.js11 symbols
server/src/securityPlugin/responseSecurityPlugin/utils.ts10 symbols
server/src/modules/survey/services/surveyMeta.service.ts10 symbols
web/src/materials/questions/widgets/QuestionRuleContainer.jsx9 symbols
web/src/management/store/edit/mutations.js9 symbols
web/src/common/xss.js9 symbols
server/src/modules/survey/controllers/survey.controller.ts9 symbols
web/src/materials/questions/questionLoader.js8 symbols
web/src/management/store/edit/actions.js8 symbols
web/src/management/api/survey.js8 symbols
server/src/modules/survey/services/surveyConf.service.ts8 symbols

Dependencies from manifests, versioned

@babel/core7.12.16 · 1×
@babel/eslint-parser7.12.16 · 1×
@nestjs/cli10.0.0 · 1×
@nestjs/common10.0.0 · 1×
@nestjs/config3.1.1 · 1×
@nestjs/core10.0.0 · 1×
@nestjs/platform-express10.0.0 · 1×
@nestjs/schematics10.0.0 · 1×
@nestjs/serve-static4.0.0 · 1×
@nestjs/testing10.0.0 · 1×
@nestjs/typeorm10.0.1 · 1×
@types/express4.17.17 · 1×

Datastores touched

(mongodb)Database · 1 repos

For agents

$ claude mcp add xiaoju-survey \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact