questionnaire - 一个极简的问卷系统

5,605 阅读2分钟
原文链接: github.com

一个极简的问卷系统,只需一些简单的配置就可以帮您解决问卷相关需求。
前端主要框架与库:VueElementVuexVue-Router
后端主要框架与库:expressmongodbmongoose

业务逻辑

  1. 用户需先在模板管理页面创建问卷模板,再在问卷管理页面,选中该模板创建新的问卷。
  2. 一个模板可对应多个(期)问卷,例:消费调查模板可对应,1月份消费调查问卷、2月份消费调查问卷、3月份消费调查问卷等,但同一模板下只允许一个(期)问卷为打开状态。
  3. 点击问卷管理页面的查看按钮,获得问卷填写链接,此链接发给所有需要做问卷调查的用户,如果已填写过此期问卷则不能重复填写。
  4. 问卷统计目前只能统计某一期的投票数据,暂不支持以模板为主体,统计该模板下多期综合投票数据。

主要功能

  1. 设置问卷模板。
    set

  2. 选择模板生成问卷。
    setQ

  3. 用户填写问卷。
    answer

  4. 统计问卷。
    statistics

使用与安装

  1. 下载代码 git clone https://github.com/no5no6/questionnaire.git

  2. 安装后端依赖,项目根目录下执行 npm install

  3. 安装前端依赖,项目questionnaire_web目录下执行 npm install

  4. 配置数据库,首先确认本机已经正确安装了mongodb并在本机正常启动。在本地创建 questionnaire 数据库,设置登录账号用户名为 ky1,密码为 123 (PS:如果需要更改数据库名称、用户名、密码,请打开questionnaire/models/index.js文件,找到对应位置 'mongodb://ky1:123@localhost:27017/questionnaire' 修改即可)。
    (1). 打开终端窗口(Terminal)。
    (2). 用命令行进入mongodb,输入并执行 mongo
    (3). 创建questionnaire数据库,输入并执行 use questionnaire
    (4). 创建用户,输入并执行

      db.createUser({
        user:'ky1',
        pwd:'123',
        roles:[{
          "role" : "readWrite",
          "db": "questionnaire"
        }]
      })
    
  5. 启动后端服务,项目根目录下执行 node questionnaire

  6. 启动前端服务,项目questionnaire_web目录下执行 npm run dev

  7. 打开浏览器,访问 localhost:8080/#/questionList

项目结构

├── db                 // 备份数据库脚本
├── models             // 数据库模型目录
├── public
│   └── web            // 前端打包后运行文件目录
│
├── questionnaire_web  // 前端目录
│   ├── src
│   │   ├── components // 组件目录
│   │   ├──router      // 路由目录(vue-router)
│   │   ├── store      // 模型目录(vuex)
│   │   ├── views      // 视图目录
│   │   └── main.js    // 前端入口文件
│   ├── index.html     // 首页
│   └── package.json   // 前端包管理文件
│
├── router             // 接口目录
├── package.json       // 后端包管理文件
└── questionnaire.js   // 项目主进程