Compare commits
16 Commits
main
...
feature/wo
Author | SHA1 | Date | |
---|---|---|---|
|
ff0b2487bb | ||
|
c4e8b8e466 | ||
|
47c8a797a5 | ||
|
23e69988e1 | ||
|
56b0ba2a09 | ||
|
a5630f0f63 | ||
|
2ca95d5703 | ||
|
52c70198d9 | ||
|
26becfe3d4 | ||
|
1eb0fa31b5 | ||
|
5188d3d795 | ||
|
49635fcf5a | ||
|
3345960351 | ||
|
04766db716 | ||
|
bf9a423064 | ||
|
c46176e39e |
39
.github/workflows/codecov.yml
vendored
Normal file
39
.github/workflows/codecov.yml
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
# Unit Test Coverage Report
|
||||
name: Test Coverage
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- feature/workflow
|
||||
- develop
|
||||
- main
|
||||
- releases/**
|
||||
- feature/**
|
||||
paths:
|
||||
- server/**
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Coverage
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Install dependencies
|
||||
run: cd server && npm install
|
||||
|
||||
- name: Run tests and collect coverage
|
||||
run: cd server && npm run test:cov
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v4
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
34
.github/workflows/server-lint.yml
vendored
Normal file
34
.github/workflows/server-lint.yml
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
# Lint
|
||||
name: Server Lint
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- feature/workflow
|
||||
- develop
|
||||
- main
|
||||
- releases/**
|
||||
- feature/**
|
||||
paths:
|
||||
- server/**
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Lint
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Install dependencies
|
||||
run: cd server && npm install
|
||||
|
||||
- name: Lint
|
||||
run: cd server && npm run lint
|
34
.github/workflows/web-lint.yml
vendored
Normal file
34
.github/workflows/web-lint.yml
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
# Lint
|
||||
name: Web Lint
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- feature/workflow
|
||||
- develop
|
||||
- main
|
||||
- releases/**
|
||||
- feature/**
|
||||
paths:
|
||||
- web/**
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Lint
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Install dependencies
|
||||
run: cd web && npm install
|
||||
|
||||
- name: Lint
|
||||
run: cd web && npm run lint
|
61
README.md
61
README.md
@ -25,9 +25,10 @@
|
||||
|
||||
  **XIAOJUSURVEY**是一套轻量、安全的**问卷系统**,提供面向个人和企业的一站式产品级解决方案,快速满足各类线上调研场景。
|
||||
|
||||
  系统已沉淀40+种题型,累积精选模板100+,适用于市场调研、客户满意度调研、在线考试、投票、报道、测评等众多场景。数据能力上,经过上亿量级打磨,沉淀了分题统计、交叉分析、多渠道分析等在线报表能力,快速满足专业化分析。
|
||||
  系统已沉淀 40+种题型,累积精选模板 100+,适用于市场调研、客户满意度调研、在线考试、投票、报道、测评等众多场景。数据能力上,经过上亿量级打磨,沉淀了分题统计、交叉分析、多渠道分析等在线报表能力,快速满足专业化分析。
|
||||
|
||||
# 简介
|
||||
|
||||
本次开源主要围绕问卷生命周期提供了完整的产品化能力:
|
||||
|
||||
- 问卷管理:创、编、投、收、数据分析
|
||||
@ -40,32 +41,35 @@
|
||||
|
||||
- 数据安全:传输加密、脱敏等
|
||||
|
||||
> 查阅[官方Feature](https://github.com/didi/xiaoju-survey/issues/45)
|
||||
> 查阅[官方 Feature](https://github.com/didi/xiaoju-survey/issues/45)
|
||||
|
||||
<img src="https://github.com/didi/xiaoju-survey/assets/16012672/dd427471-368d-49d9-bc44-13c34d84e3be" width="700" />
|
||||
|
||||
_**(个人和企业用户均可快速构建特定领域的调研类解决方案。)**_
|
||||
|
||||
# 技术
|
||||
Web端:Vue2(Vue3版本24年上半年推出)+ ElementUI
|
||||
|
||||
Server端:Nestjs + MongoDB
|
||||
Web 端:Vue2(Vue3 版本 24 年上半年推出)+ ElementUI
|
||||
|
||||
Server 端:Nestjs + MongoDB
|
||||
|
||||
架构:[架构解读](https://xiaojusurvey.didi.cn/docs/next/document/%E8%AE%BE%E8%AE%A1%E5%8E%9F%E7%90%86/%E6%9E%B6%E6%9E%84)
|
||||
|
||||
|
||||
# 项目优势
|
||||
|
||||
**一、具备全面的综合性和专业性**
|
||||
|
||||
- [制定了问卷标准化协议规范](https://xiaojusurvey.didi.cn/docs/next/agreement/%E3%80%8A%E9%97%AE%E5%8D%B7Meta%E5%8D%8F%E8%AE%AE%E3%80%8B)
|
||||
|
||||
领域标准保障概念互通,是全系统的基础和核心。基于实际业务经验,沉淀了两大类:
|
||||
|
||||
- 业务描述:问卷协议、题型协议
|
||||
- 物料描述:题型物料协议,包含题型和设置器
|
||||
|
||||
- [制定了问卷UI/UX规范](https://xiaojusurvey.didi.cn/docs/next/design/%E3%80%8A%E8%AE%BE%E8%AE%A1%E8%A7%84%E8%8C%83%E3%80%8B)
|
||||
- [制定了问卷 UI/UX 规范](https://xiaojusurvey.didi.cn/docs/next/design/%E3%80%8A%E8%AE%BE%E8%AE%A1%E8%A7%84%E8%8C%83%E3%80%8B)
|
||||
|
||||
设计语言是系统灵活性、一致性的基石,保障系统支撑的实际业务运转拥有极高的用户体验。包含两部分:
|
||||
|
||||
- 设计规范:灵活、降噪、统一
|
||||
- 交互规范:遵循用户行为特征,遵循产品定位,遵循成熟的用户习惯
|
||||
|
||||
@ -76,13 +80,14 @@ Server端:Nestjs + MongoDB
|
||||
- [题型物料化设计,自由定制扩展](https://xiaojusurvey.didi.cn/docs/next/document/%E8%AE%BE%E8%AE%A1%E5%8E%9F%E7%90%86/%E9%A2%98%E5%9E%8B%E7%89%A9%E6%96%99%E5%8C%96%E8%AE%BE%E8%AE%A1/%E5%9F%BA%E7%A1%80%E8%AE%BE%E8%AE%A1)
|
||||
|
||||
题型是问卷最核心的组成部分,而题型可配置化能力决定了上层业务可扩展的场景以及系统自身可复用的场景。
|
||||
题型架构设计上,主打每一类题型拥有通用基础能力,每一种题型拥有原子化特性能力,并保障高度定制化。
|
||||
题型架构设计上,主打每一类题型拥有通用基础能力,每一种题型拥有原子化特性能力,并保障高度定制化。
|
||||
|
||||
- [合规建设沉淀积累,安全能力拓展性高](https://xiaojusurvey.didi.cn/docs/next/document/%E5%AE%89%E5%85%A8%E8%AE%BE%E8%AE%A1/%E6%A6%82%E8%BF%B0)
|
||||
|
||||
数据加密传输、敏感信息精细化检测、投票防刷等能力,保障问卷发布、数据回收链路安全性。
|
||||
|
||||
**二、轻量化设计,快速接入、灵活扩展**
|
||||
|
||||
- [产品级开源方案,快速产出一套调研流程](https://xiaojusurvey.didi.cn/docs/next/document/%E4%BA%A7%E5%93%81%E6%89%8B%E5%86%8C/%E6%A6%82%E8%BF%B0)
|
||||
|
||||
围绕问卷生命周期提供了完整的产品化能力,包含用户管理: 登录、注册、问卷权限,问卷管理: 创、编、投、收、数据分析,可快速构建特定领域的调研类解决方案。
|
||||
@ -97,14 +102,15 @@ Server端:Nestjs + MongoDB
|
||||
|
||||
- [部署成本低,快速上线](https://xiaojusurvey.didi.cn/docs/next/document/%E5%B7%A5%E7%A8%8B%E9%83%A8%E7%BD%B2/Docker%E9%83%A8%E7%BD%B2)
|
||||
|
||||
前后端分离,提供Docker化方案,提供了完善的部署指导手册。
|
||||
前后端分离,提供 Docker 化方案,提供了完善的部署指导手册。
|
||||
|
||||
# 快速启动
|
||||
|
||||
Node版本 >= 16.x,
|
||||
Node 版本 >= 16.x,
|
||||
[查看环境准备指导](https://xiaojusurvey.didi.cn/docs/next/document/%E6%A6%82%E8%BF%B0/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B)
|
||||
|
||||
复制工程
|
||||
|
||||
```shell
|
||||
git clone git@github.com:didi/xiaoju-survey.git
|
||||
```
|
||||
@ -112,61 +118,72 @@ git clone git@github.com:didi/xiaoju-survey.git
|
||||
## 服务端启动
|
||||
|
||||
### 方案一、快速启动,无需安装数据库
|
||||
|
||||
> _便于快速预览工程,对于正式项目需要使用方案二。_
|
||||
|
||||
#### 1、安装依赖
|
||||
|
||||
```shell
|
||||
cd server
|
||||
npm install
|
||||
```
|
||||
|
||||
#### 2、启动
|
||||
|
||||
```shell
|
||||
npm run local
|
||||
```
|
||||
|
||||
> 服务运行依赖 [mongodb-memory-server](https://github.com/nodkz/mongodb-memory-server):
|
||||
>
|
||||
> 1、数据保存在内存中,重启服务会更新数据。<br />2、启动内存服务器新实例时,如果找不到MongoDB二进制文件会自动下载,因此首次可能需要一些时间。
|
||||
>
|
||||
> 1、数据保存在内存中,重启服务会更新数据。<br />2、启动内存服务器新实例时,如果找不到 MongoDB 二进制文件会自动下载,因此首次可能需要一些时间。
|
||||
|
||||
### 方案二、(生产推荐)
|
||||
|
||||
#### 1、启动数据库
|
||||
|
||||
> 项目使用MongoDB:[MongoDB安装指导](https://xiaojusurvey.didi.cn/docs/next/document/%E6%A6%82%E8%BF%B0/%E6%95%B0%E6%8D%AE%E5%BA%93#%E5%AE%89%E8%A3%85)
|
||||
> 项目使用 MongoDB:[MongoDB 安装指导](https://xiaojusurvey.didi.cn/docs/next/document/%E6%A6%82%E8%BF%B0/%E6%95%B0%E6%8D%AE%E5%BA%93#%E5%AE%89%E8%A3%85)
|
||||
|
||||
- 配置数据库,查看[MongoDB配置](https://xiaojusurvey.didi.cn/docs/next/document/%E6%A6%82%E8%BF%B0/%E6%95%B0%E6%8D%AE%E5%BA%93)
|
||||
|
||||
- 启动本地数据库,查看[MongoDB启动](https://xiaojusurvey.didi.cn/docs/next/document/%E6%A6%82%E8%BF%B0/%E6%95%B0%E6%8D%AE%E5%BA%93#%E4%BA%94%E5%90%AF%E5%8A%A8)
|
||||
- 配置数据库,查看[MongoDB 配置](https://xiaojusurvey.didi.cn/docs/next/document/%E6%A6%82%E8%BF%B0/%E6%95%B0%E6%8D%AE%E5%BA%93)
|
||||
|
||||
- 启动本地数据库,查看[MongoDB 启动](https://xiaojusurvey.didi.cn/docs/next/document/%E6%A6%82%E8%BF%B0/%E6%95%B0%E6%8D%AE%E5%BA%93#%E4%BA%94%E5%90%AF%E5%8A%A8)
|
||||
|
||||
#### 2、安装依赖
|
||||
|
||||
```shell
|
||||
cd server
|
||||
npm install
|
||||
```
|
||||
|
||||
#### 3、启动
|
||||
|
||||
```shell
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## 前端启动
|
||||
|
||||
### 安装依赖
|
||||
|
||||
```shell
|
||||
cd web
|
||||
npm install
|
||||
```
|
||||
|
||||
### 启动
|
||||
|
||||
```shell
|
||||
npm run serve
|
||||
```
|
||||
|
||||
## 访问
|
||||
|
||||
### 问卷管理端
|
||||
|
||||
[http://localhost:8080/management](http://localhost:8080)
|
||||
|
||||
### 问卷投放端
|
||||
|
||||
创建并发布问卷。
|
||||
|
||||
[http://localhost:8080/render/:surveyPath](http://localhost:8080/render/:surveyPath)
|
||||
@ -177,26 +194,28 @@ npm run serve
|
||||
|
||||
<img src="https://img-hxy021.didistatic.com/static/starimg/img/KXKvc7sjHz1700061188156.png" width="200" />
|
||||
|
||||
## QQ交流群
|
||||
## QQ 交流群
|
||||
|
||||
[<img src="https://img-hxy021.didistatic.com/static/starimg/img/iJUmLIHKV21700192846057.png" width="210" />](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=P61UJI_q8AzizyBLGOm-bUvzNrUnSQq-&authKey=yZFtL9biGB5yiIME3%2Bi%2Bf6XMOdTNiuf0pCIaviEEAIryySNzVy6LJ4xl7uHdEcrM&noverify=0&group_code=920623419)
|
||||
|
||||
## Star
|
||||
如果该项目对你有帮助,star一下 ❤️❤️❤️
|
||||
|
||||
如果该项目对你有帮助,star 一下 ❤️❤️❤️
|
||||
|
||||
[![Star History Chart](https://api.star-history.com/svg?repos=didi/xiaoju-survey&type=Date)](https://star-history.com/#didi/xiaoju-survey&Date)
|
||||
|
||||
## 记录
|
||||
|
||||
[谁在使用](https://github.com/didi/xiaoju-survey/issues/64)
|
||||
|
||||
## 贡献
|
||||
|
||||
[贡献者指南](https://xiaojusurvey.didi.cn/docs/next/share/%E7%94%9F%E6%80%81%E5%BB%BA%E8%AE%BE)
|
||||
|
||||
## Feature
|
||||
[官方Feature](https://github.com/didi/xiaoju-survey/issues/45)
|
||||
|
||||
[官方 Feature](https://github.com/didi/xiaoju-survey/issues/45)
|
||||
|
||||
## CHANGELOG
|
||||
[MAJOR CHANGELOG](https://github.com/didi/xiaoju-survey/issues/48)
|
||||
|
||||
## 分享
|
||||
[文章](https://github.com/didi/xiaoju-survey/issues)
|
||||
[MAJOR CHANGELOG](https://github.com/didi/xiaoju-survey/issues/48)
|
||||
|
@ -4,8 +4,8 @@
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"serve": "vite",
|
||||
"dev": "vite",
|
||||
"serve": "npm run dev",
|
||||
"dev": "vite --open",
|
||||
"build": "run-p type-check \"build-only {@}\" --",
|
||||
"preview": "vite preview",
|
||||
"build-only": "vite build",
|
||||
@ -43,6 +43,7 @@
|
||||
"@vue/tsconfig": "^0.5.1",
|
||||
"eslint": "^8.49.0",
|
||||
"eslint-plugin-vue": "^9.17.0",
|
||||
"husky": "^9.0.11",
|
||||
"npm-run-all2": "^6.1.1",
|
||||
"prettier": "^3.0.3",
|
||||
"sass": "^1.72.0",
|
||||
@ -54,8 +55,19 @@
|
||||
"vite-plugin-virtual-mpa": "^1.11.0",
|
||||
"vue-tsc": "^1.8.27"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged"
|
||||
}
|
||||
},
|
||||
"lint-staged": {
|
||||
"src/**/*.{.vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts}": [
|
||||
"prettier --write",
|
||||
"eslint --fix"
|
||||
]
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.21.0",
|
||||
"npm": ">=6.14.17"
|
||||
"node": ">=18.0.0",
|
||||
"npm": ">=8.6.0"
|
||||
}
|
||||
}
|
||||
|
@ -37,6 +37,7 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
skinConf(value) {
|
||||
console.log(11111111)
|
||||
this.setSkin(value)
|
||||
}
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user