Compare commits

...

16 Commits

Author SHA1 Message Date
sudoooooo
ff0b2487bb
Feature/workflow (#136)
* feat: test

* feat: test2

* feat: test2
2024-05-17 11:11:51 +08:00
sudoooooo
c4e8b8e466 feat: 增加lint 2024-05-17 11:07:45 +08:00
sudoooooo
47c8a797a5 feat: 增加lint 2024-05-17 11:06:07 +08:00
sudoooooo
23e69988e1 feat: 增加lint 2024-05-17 11:04:17 +08:00
sudoooooo
56b0ba2a09 feat: test 2024-05-16 20:40:54 +08:00
sudoooooo
a5630f0f63 feat: test 2024-05-16 20:03:30 +08:00
sudoooooo
2ca95d5703 feat: test 2024-05-16 19:58:36 +08:00
sudoooooo
52c70198d9 feat: test 2024-05-16 19:49:59 +08:00
sudoooooo
26becfe3d4 feat: test 2024-05-16 19:35:43 +08:00
sudoooooo
1eb0fa31b5 feat: test 2024-05-16 18:09:29 +08:00
sudoooooo
5188d3d795 feat: test 2024-05-16 16:42:28 +08:00
sudoooooo
49635fcf5a feat: test 2024-05-16 16:35:44 +08:00
sudoooooo
3345960351 feat: test 2024-05-16 15:39:27 +08:00
sudoooooo
04766db716 feat: test 2024-05-16 15:22:39 +08:00
sudoooooo
bf9a423064 feat: workflow 2024-05-16 15:20:48 +08:00
sudoooooo
c46176e39e feat: lint 2024-05-16 10:21:39 +08:00
6 changed files with 164 additions and 25 deletions

39
.github/workflows/codecov.yml vendored Normal file
View 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
View 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
View 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

View File

@ -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端Vue2Vue3版本24年上半年推出+ ElementUI
Server端Nestjs + MongoDB
Web 端Vue2Vue3 版本 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)

View File

@ -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"
}
}

View File

@ -37,6 +37,7 @@ export default {
},
watch: {
skinConf(value) {
console.log(11111111)
this.setSkin(value)
}
},