1.逻辑架构
逻辑架构由三层模型(表示层、业务层、持久化层)构成
1.1.表示层
客户端使用 Web 作为表示层,提供 问卷系统, 小任务系统, 登陆注册系统
1.2.业务层
服务器充当业务层的角色,为表示层的各个子系统提供相应的服务模块
1.3.持久化层
MySQL 提供了数据的持久化服务
2.框架目录设计
2.1 前端目录
├─babel.config.js
├─package-lock.json
├─package.json
├─README.md
├─vue.config.js // vue配置文件
├─src
| ├─App.vue // 主组件
| ├─main.js // 项目入口
| ├─store
| | └index.js // vuex文件
| ├─router
| | └index.js // vue-router配置文件
| ├─components // 所有子组件
| | ├─Guide.vue // 主导航界面
| | ├─Home.vue // 根界面
| | ├─task // 小任务系统组件
| | | ├─NewTask.vue
| | | ├─TaskDetail.vue
| | | ├─TaskHome.vue
| | | └TaskList.vue
| | ├─questionnaire 问卷调查组件
| | | ├─AllQnList.vue // 全部问卷列表页面
| | | ├─EditQn.vue // 编辑问卷页面
| | | ├─FillQn.vue // 填写问卷页面
| | | ├─MyQnList.vue
| | | ├─NewQn.vue // 新建问卷页面
| | | └QnHome.vue // 问卷根页面
| | ├─account
| | | ├─Signin.vue // 登陆页面
| | | └Signup.vue // 注册页面
| ├─assets
| | ├─avatar.jpg
| | ├─favicon.ico
| | ├─home-carousel-1.jpg
| | ├─home-carousel-1.png
| | ├─home-carousel-2.jpg
| | ├─home-carousel-3.jpg
| | ├─home-carousel-4.jpg
| | ├─home-detail-1.jpg
| | ├─home-detail-2.jpg
| | └qncover.jpg
├─public
| ├─index.html // html文件
| ├─static
| | └favicon.ico
├─dist // 打包目录
| ├─index.html
| ├─static
| | ├─favicon.ico
| | ├─js
| | | ├─app.c7868cb2.js
| | | ├─app.c7868cb2.js.map
| | | ├─chunk-vendors.552d5829.js
| | | └chunk-vendors.552d5829.js.map
| | ├─img
| | | ├─avatar.f5009b8c.jpg
| | | ├─home-carousel-1.70735838.png
| | | ├─home-carousel-2.8b347fd3.jpg
| | | ├─home-carousel-3.d201e704.jpg
| | | ├─home-carousel-4.4d24e122.jpg
| | | ├─home-detail-1.bbc5b2ce.jpg
| | | └home-detail-2.541c6dfc.jpg
| | ├─css
| | | ├─app.1408651e.css
| | | └chunk-vendors.53600669.css
2.2 后端目录
├── api.md # api文档
├── db.sqlite3
├── dist # 静态文件夹
│ ├── index.html
│ └── static
│ ├── css
│ │ ├── app.88022460.css
│ │ └── chunk-vendors.3b2d6e5b.css
│ ├── favicon.ico
│ ├── img
│ │ ├── avatar.f5009b8c.jpg
│ │ ├── home-carousel-1.70735838.png
│ │ ├── home-carousel-2.8b347fd3.jpg
│ │ ├── home-carousel-3.d201e704.jpg
│ │ ├── home-carousel-4.4d24e122.jpg
│ │ ├── home-detail-1.bbc5b2ce.jpg
│ │ └── home-detail-2.541c6dfc.jpg
│ └── js
│ ├── app.135b342f.js
│ ├── app.135b342f.js.map
│ ├── chunk-vendors.55b965b0.js
│ └── chunk-vendors.55b965b0.js.map
├── makefile
├── manage.py # 管理Django 程序
├── mission # 任务模块
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── admin.cpython-37.pyc
│ │ ├── models.cpython-37.pyc
│ │ ├── urls.cpython-37.pyc
│ │ └── views.cpython-37.pyc
│ ├── admin.py
│ ├── apps.py # 模块主入口
│ ├── migrations # 数据库操作记录->相应表结构发生变化
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ └── __init__.cpython-37.pyc
│ ├── models.py #任务模块的小模块
│ ├── tests.py #任务模块的测试模块
│ ├── urls.py#任务模块的路由定义
│ └── views.py #任务模块的视图函数
├── mypro
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── settings.cpython-37.pyc
│ │ ├── urls.cpython-37.pyc
│ │ └── wsgi.cpython-37.pyc
│ ├── settings.py # 配置文件
│ ├── urls.py
│ └── wsgi.py
├── paper
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── admin.cpython-37.pyc
│ │ ├── models.cpython-37.pyc
│ │ ├── tests.cpython-37.pyc
│ │ ├── urls.cpython-37.pyc
│ │ └── views.cpython-37.pyc
│ ├── admin.py # 用于注册数据库中数据表
│ ├── apps.py # 配置当前APP
│ ├── migrations #数据库操作记录->相应表结构发生变化
│ │ ├── 0001_initial.py
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ └── __init__.cpython-37.pyc
│ ├── models.py # 文件系统的小模块
│ ├── tests.py # 测试模块
│ ├── urls.py # 路由定义
│ └── views.py # 视图定义
└── users
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-37.pyc
│ ├── admin.cpython-37.pyc
│ ├── models.cpython-37.pyc
│ ├── test.cpython-37.pyc
│ ├── tests.cpython-37.pyc
│ ├── urls.cpython-37.pyc
│ └── views.cpython-37.pyc
├── admin.py # 用于注册数据库中数据表
├── apps.py # 子程序入口
├── migrations # 数据库操作记录->相应表结构发生变化
│ ├── 0001_initial.py
│ ├── 0002_auto_20190623_0502.py
│ ├── 0003_auto_20190625_0448.py
│ ├── 0004_auto_20190625_1359.py
│ ├── __init__.py
│ └── __pycache__
│ ├── 0001_initial.cpython-37.pyc
│ ├── 0002_auto_20190623_0502.cpython-37.pyc
│ ├── 0003_auto_20190625_0448.cpython-37.pyc
│ ├── 0004_auto_20190625_1359.cpython-37.pyc
│ └── __init__.cpython-37.pyc
├── models.py # 用户模块
├── templates # 模版
│ └── users
│ └── index.html
├── tests.py # 测试模块
├── urls.py # 路由模块
└── views.py # 视图模块
3.与 ECB 关系
ECB中:
- Entity:代表系统数据,如:问卷、任务、用户等
- Boundary:与用户的接口,如:界面、网关、代理等
- Controller:在 Boundary 和 Entity 中衔接的媒介,编排来自 Boundary 的命令的执行
在本系统中,Boundary有两个部分:
- 客户端 Web 程序用户界面
- 服务端 Nginx 反向代理服务器
Controller 包含:
- 服务器框架目录设计中,
controller
目录下定义了所有的相关内容,它们接收来自上述 Boundary 的命令,并编排service
的执行 - 服务器框架目录设计中,
service
目录下定义了部分相关内容,它们接收也会对来自 Boundary 的命令进行相应的编排
Entity 包含:
- 服务器框架目录设计中,
model
目录下定义了所有服务器与 MySQL 相关的实体,承载系统数据, 如:问卷、任务、用户等
具体映射查看 7.5 Usecase design(用例设计)