Skip to content
This repository has been archived by the owner on Oct 29, 2021. It is now read-only.

Commit

Permalink
refactor: 添加未来优化思路
Browse files Browse the repository at this point in the history
  • Loading branch information
yuzhanglong committed Aug 17, 2020
1 parent 8c703af commit f14dd56
Showing 1 changed file with 39 additions and 3 deletions.
42 changes: 39 additions & 3 deletions README.md
@@ -1,7 +1,36 @@
# EasyQuestionnaire-backend
# 旧的部署方法不推荐了!!!因为略显麻烦,且一不小心容易出错,强烈建议使用docker,轻松、快速、幸福地部署本项目,满满的幸福感~,请查看项目目录下的flask部署总结笔记查看具体方法~

#### 最近在折腾别的项目,然后发现本项目的代码有些烂,期末考试考完之后(大概6月20日)准备重构本项目问卷提交、数据分析的业务逻辑
### 2020-8-17更新

#### 一直没有时间重构这个项目(当前版本可以正常使用,但是已经有了一些优化的思路), 等过一段时间空了再来处理吧,我大概描述一下我准备去做的一个优化方案,供参考:

### 服务端:

- 服务端还是采用**mongodb**这个**nosql**数据库(其实说它是个关系型数据库也不为过~),当然,**mysql**当然也是一个不错的选择,各有各的好处。

- 问卷提交的过程处理:

1. **数据处理**: 如果使用**mongodb**(例如本项目),数据的插入是非常方便的,但是**如果严谨些**,需要考虑数据格式验证的问题,如果使用mysql,结合json格式的字段,那么处理起来也不会太难。

2. **数据统计**: **当前本项目**的数据统计是直接通过调取接口 -- 查表 -- 进行计算的,**个人用用的小项目还可以**,但是如果数据量一大(例如某个问卷的**问题很多**),那么就会出现大量查表计算的情况,这个可能比较耗时,我们可以:

- 采用redis缓存,每次用户填写完表单,服务端返回给用户**200**之后,后台**重新计算表单统计信息**,同步存入**redis****db**,这样问卷发布者调取数据分析接口之后**只需要**从redis**获取统计数据**即可,**速度非常快**

- 另外, 我们可以不用redis,而是另建立一张数据统计表来处理上述问题吗?具体思路是每次用户完成提交后,后台更新**数据统计表**的信息,这样就不用查多个表进行大量计算,只需要查数据统计表就可以了 。这可能不是一个好的选择 ,因为我们需要保证**数据一致性**,试想:问卷发布者删除/修改一个题目/选项顺序,那么这张数据统计表就必须更新了,此时再来更新数据统计表就会出现麻烦了。

### 前端:

- 前端可以在**当前的基础上**封装一个**表单编辑器**组件,**约定好数据结构**,这个编辑器不仅仅能够支持问卷,还可以支持考试、业务表单办理等功能。
- 准备拥抱vue3、typescript

----

### 2020-6-5 更新

#### 旧的部署方法不推荐了!!!因为略显麻烦,且一不小心容易出错,强烈建议使用docker,轻松、快速部署本项目,满满的幸福感~,请查看项目目录下的flask部署总结笔记查看具体方法~

-----


#### 此项目是问卷调查平台的后端项目 基于Python的flask框架

Expand All @@ -12,11 +41,13 @@
#### 前端项目请移步:

##### (web端) https://github.com/yuzhanglong/EasyQuestionnaire-web

##### (小程序端) https://github.com/yuzhanglong/EasyQuestionnaire-MiniProgram



## 项目结构

```
questionnaire-back
├─ .gitignore
Expand Down Expand Up @@ -81,6 +112,7 @@ questionnaire-back
## 安装(开发环境)

### 进入安装目录

```
cd /安装目录
```
Expand All @@ -92,21 +124,25 @@ git clone https://github.com/yuzhanglong/EasyQuestionnaire-backend.git
```

### 进入程序目录

```
cd /程序目录
```

### 创建虚拟环境

```
virtualenv venv
```

### 进入虚拟环境

```
source venv/bin/activate
```

### 安装依赖

```
pip install -r requirements.txt
```
Expand Down Expand Up @@ -137,4 +173,4 @@ pip install -r requirements.txt

##### 4.问卷发布功能(基本的发布/停止发布功能 设置问卷密码 限制ip或者设备重复访问)

##### 5.问卷数据分析 对某个问卷收集的数据进行数据可视化分析
##### 5.问卷数据分析 对某个问卷收集的数据进行数据可视化分析

0 comments on commit f14dd56

Please sign in to comment.