产品介绍

云帆考试系统是一款基于SpringBoot+Vue前后端分离架构的在线学习考试系统,系统采用Java语言开发,系统模块设计清晰、文档完善、功能稳定,无论是作为成品使用或者二次开发,都是极佳的选择。

技术栈

SpringBoot MyBatis Vue2 MySQL Redis Shiro UNI-APP

服务端

服务端基于SpringBoot开发,模块划分清晰,目录结构如下:

├── pom.xml                        最外层的pom项目文件
├── yf-ability                     公共能力模块
├── yf-core                        基础模块
├── yf-job                         定时任务模块
├── yf-modules                     业务模块外层
│  ├── pom.xml                     业务模块内层pom项目文件
│  ├── yf-module-battle            知识竞赛模块
│  ├── yf-module-book              错题本模块
│  ├── yf-module-cert              证书模块
│  ├── yf-module-course            课程模块
│  ├── yf-module-exam              在线考试模块
│  ├── yf-module-openapi           开放接口模块
│  ├── yf-module-pay               在线支付模块
│  ├── yf-module-repo              题库模块
│  ├── yf-module-stat              数据统计模块
│  ├── yf-module-system            系统模块/用户权限/组织架构等
│  └── yf-module-train             错题训练模块
└── yf-web                         前端接口业务调用模块

核心项目:yf-core

定义了基础的接口通信规范协议、注解类、工具类、枚举数据等等

基础能力:yf-ability

基础能力模块,里面包含图形验证码、短信验证码、文件上传、导入导出、人脸识别、文档转换等一些基础能力

定时任务:yf-job

定时任务模块、用于处理系统中的定时任务、如:证书发放、文档转换、数据处理、强制交卷等业务逻辑处理,用于处理各个系统不同模块的业务解耦,这里同时也充当了类似消息列队的功能;

模块列表:yf-modules

系统的各个分业务模块项目,请参考以上文件结构中的说明,其中yf-module-system为系统核心项目,处理用户角色权限菜单等核心逻辑

接口项目:yf-web

此项目引用全部子项目,以接口的方式为前端提供服务,类似于微服务中的网关项目

前端VUE项目

VUE前端项目用于实现PC学员端及管理员后台功能(学员端和管理端是放在一起的),用户登录后,根据角色来自动跳转到学员端或者管理端;项目基于Vue2.0+Element UI搭建

文件结构

.
├── babel.config.js
├── package.json                       项目配置文件
├── public                             静态文件目录
│   ├── favicon.ico              站标/浏览器地址栏前面的图标
│   ├── index.html               首页地址
│   ├── pdf                      PDF阅读器
│   ├── player                   视频播放器
│   └── tinymce                  文本编辑器离线版
├── src                                源码目录
│   ├── App.vue                  入口文件
│   ├── api                      接口目录,所有与后端通信的接口都在这
│   ├── assets                   静态资源目录,一些静态文件图片等
│   ├── components               组件目录,我们封装了大量的组件
│   ├── directive                指令目录
│   ├── filters                  过滤器
│   ├── icons                    图标
│   ├── layout                   布局文件
│   ├── main.js                  核心JS文件
│   ├── permission.js            权限过滤
│   ├── router                   路由
│   ├── settings.js              静态设置
│   ├── store                    本地缓存
│   ├── styles                   样式表
│   ├── utils                    工具类
│   └── views                    视图前端文件
└── vue.config.js                      Vue配置

参考网站

Element: https://element.eleme.cn/#/zh-CN/component/quickstartopen in new window
vue-element-admin: https://panjiachen.gitee.io/vue-element-admin-site/zh/open in new window
VUE 基础: https://cn.vuejs.org/v2/guideopen in new window

移动端UNI-APP项目

移动端基于UNI-APP + Vue2.0开发,一个项目支持发布到不同的平台、如:H5、小程序、APP等

文件结构

.
├── App.vue                    入口页面
├── api                        接口目录,所有与后端通信的接口都在这       
│   ├── ability                基础能力接口
│   ├── battle                 知识竞赛接口
│   ├── book.js                错题本接口
│   ├── cert.js                证书接口
│   ├── course                 课程接口
│   ├── course.js              
│   ├── exam.js                考试接口
│   ├── notice.js              系统公告接口
│   ├── order                  订单接口
│   ├── paper                  试卷接口
│   ├── paper.js
│   ├── points.js              积分接口
│   ├── qu                     试题接口
│   ├── qu.js    
│   ├── repo                   题库接口
│   ├── sys                    系统接口
│   └── user.js                用户接口
├── common                     通用工具
│   ├── config.js              配置文件/请求接口配置,打包发布需修改此文件
│   ├── file-utils.js          文件工具类
│   ├── filters.js             显示过滤器
│   ├── graceChecker.js        表单验证
│   ├── html-parser.js         HTML展示处理
│   ├── permission.js          权限工具
│   ├── request.js             接口请求封装
│   ├── upload.js              文件上传
│   ├── utils.js               其他工具
│   └── validate.js            数据校验
├── components                 通用组件
│   ├── cmd-progress           进度展示组件
│   ├── pay-dialog             支付组件
│   ├── u-parse                富文本展示组件
│   ├── uni-status-bar         状态栏显示
│   ├── yf-carsousel           首页轮播图
│   ├── yf-empty-view          无数据展示
│   ├── yf-file-upload         文件上传组件
│   ├── yf-more-list           下拉列表组件
│   ├── yf-photo-take          拍照组件
│   ├── yf-sec-format          时间展示组件
│   └── yf-voice-recorder      录音组件
├── hybrid                     静态文件
│   ├── html                   PDF阅读器
│   └── player                 视频播放器
├── main.js                    main.js
├── manifest.json              主配置文件
├── package.json               package.json 
├── pages                      页面
│   ├── battle                 知识竞赛页面
│   ├── course                 课程页面
│   ├── exam                   考试页面
│   ├── index                  首页页面
│   ├── login                  登录注册页面
│   ├── notice                 系统公告页面
│   ├── paper                  试卷页面
│   ├── pay                    支付页面
│   ├── qu                     试题页面
│   ├── repo                   题库训练页面
│   ├── sys                    系统页面
│   ├── user                   用户页面
│   ├── video                  视频播放
│   └── webview                webview
├── pages.json                 UNI-APP页面描述文件
├── static                     静态文件
├── store                      存储缓存
├── style                      样式文件
├── uni.scss                   UNI-APP样式文件
└── unpackage                  编译后的文件

参考网站

UNI-APP 官方: https://uniapp.dcloud.net.cn/open in new window

文件结构可能随着产品迭代发生一些细小变化,但整体结构不会有太大变化