Système d'examen en ligne
environnement de développement
Configurer l'environnement
programme | Version | illustrer |
---|
Jdk | 1.8.0 161 | Kit de développement Java |
MySQL | 5.5.27 | base de données relationnelle |
Rédis | 7.0.5 | base de données non relationnelle |
Apache-maven | 3.9.0 | Outils de gestion et de construction de projets Java |
Nvm | 1.10 | Gestionnaire de versions Node.js |
Nœud | 8.12.0 | Environnement d'exécution JavaScript Node.js |
outils de développement
outil | Version | illustrer |
---|
IDÉE | 2022.3.2 | IDE de développement back-end et front-end |
Git | 2.24.1 | Plateforme d'hébergement de code |
Google Chrome | 75.0.3770.100 | Navigateur, outils de débogage front-end |
Naviguer | 11.1.13 | Outil de connexion à la base de données |
Facteur | 7.1.0 | Outils de test d'interfaces |
VMware Workstation Pro | 14.1.3 | Machine virtuelle (non utilisée, vous l'utiliserez peut-être) |
PowerAMC | 15 | Outil de conception de base de données (non utilisé, vous l'utiliserez peut-être) |
SQLyog | 12.0.3 | Outil de connexion à la base de données (non utilisé, vous l'utiliserez peut-être) |
Visio | 2013 | Diagrammes de séquence, organigrammes et autres outils de dessin (s'ils ne sont pas utilisés, vous les utiliserez peut-être) |
Processus activé | —— | Outils de dessin tels que des diagrammes d'architecture (non utilisés, vous les utiliserez peut-être) |
XMind ZEN | 9.2.0 | Outil de cartographie mentale (non utilisé, vous l'utiliserez peut-être) |
RedisDesktop | 0.9.3.817 | outil de connexion client Redis (non utilisé, vous l'utiliserez peut-être) |
Normes de codage
- Approche standardisée : respectez strictement les conventions de codage d’Alibaba.
- Dénomination unifiée : l'introduction permet d'obtenir la meilleure compréhension possible du nom.
- Sous-traitance claire : La hiérarchie claire vous permet de localiser rapidement l'emplacement du code.
- Commentaires complets : un caractère descriptif élevé réduit considérablement la charge de travail de lecture de code du développeur.
- Spécifications de l'outil : utilisez des packages jar unifiés pour éviter les conflits de contenu.
- Code propre : hautement lisible et maintenable.
Structure du paquet
- exam -- 整个项目
| +- .idea -- 存放项目的IDE配置文件
| +- exam-admin -- 考试管理模块
| | +- .idea -- 存放考试管理模块的IDE配置文件
| | +- pom.xml -- Maven项目配置文件
| | +- src -- 存放源代码的目录
| | | +- main -- 主要的源代码目录
| | | | +- java -- Java源代码目录
| | | | | +- com.wzz -- 项目的根包名
| | | | | | +- config -- 配置文件目录
| | | | | | | +- AdminInterceptor.java -- 管理员拦截器,用于拦截管理员相关请求
| | | | | | | +- CorsConfig.java -- 跨域配置,用于允许跨域请求
| | | | | | | +- DruidConfig.java -- Druid数据源配置,用于配置数据库连接池
| | | | | | | +- MybatisPlusConfig.java -- MyBatis Plus配置,用于配置MyBatis Plus相关功能
| | | | | | | +- RedisConfig.java -- Redis配置,用于配置Redis连接和操作
| | | | | | | +- StudentInterceptor.java -- 学生拦截器,用于拦截学生相关请求
| | | | | | | +- SwaggerConfig.java -- Swagger配置,用于生成API文档
| | | | | | | +- TeacherInterceptor.java -- 教师拦截器,用于拦截教师相关请求
| | | | | | | +- WebAppConfigurer.java -- Web应用配置,用于配置Web应用相关设置
| | | | | | | +- controller -- 控制器
| | | | | | | | +- AdminController.java -- 管理员相关的控制器
| | | | | | | | +- CommonController.java -- 通用的控制器
| | | | | | | | +- StudentController.java -- 学生相关的控制器
| | | | | | | | +- TeacherController.java -- 教师相关的控制器
| | | | | | | | +- UtilController.java -- 实用工具相关的控制器
| | | | | | | +- entity -- 实体
| | | | | | | | +- Answer.java -- 答案实体类
| | | | | | | | +- Exam.java -- 考试实体类
| | | | | | | | +- ExamQuestion.java -- 考试题目实体类
| | | | | | | | +- ExamRecord.java -- 考试记录实体类
| | | | | | | | +- Question.java -- 题目实体类
| | | | | | | | +- QuestionBank.java -- 题库实体类
| | | | | | | | +- User.java -- 用户实体类
| | | | | | | | +- UserRole.java -- 用户角色实体
| | | | | | | +- ExamAdminApplication.java -- 应用程序的入口点,用于启动整个应用程序
| | | | | | | +- mapper -- 数据库映射接口目录
| | | | | | | | +- AnswerMapper.java -- 答案实体类的数据库映射接口,用于与数据库进行交互
| | | | | | | | +- ExamMapper.java -- 考试实体类的数据库映射接口,用于与数据库进行交互。
| | | | | | | | +- ExamQuestionMapper.java -- 考试题目实体类的数据库映射接口,用于与数据库进行交互。
| | | | | | | | +- ExamRecordMapper.java -- 考试记录实体类的数据库映射接口,用于与数据库进行交互。
| | | | | | | | +- QuestionBankMapper.java -- 题库实体类的数据库映射接口,用于与数据库进行交互。
| | | | | | | | +- QuestionMapper.java -- 题目实体类的数据库映射接口,用于与数据库进行交互。
| | | | | | | | +- UserMapper.java -- 用户实体类的数据库映射接口,用于与数据库进行交互。
| | | | | | | | +- UserRoleMapper.java -- 用户角色实体类的数据库映射接口,用于与数据库进行交互。
| | | | | | | +- service -- 服务接口目录
| | | | | | | | +- AnswerService.java -- 答案相关的服务接口,定义了答案相关的业务逻辑。
| | | | | | | | +- ExamQuestionService.java -- 考试题目相关的服务接口,定义了考试题目相关的业务逻辑。
| | | | | | | | +- ExamRecordService.java -- 考试记录相关的服务接口,定义了考试记录相关的业务逻辑。
| | | | | | | | +- ExamService.java -- 考试相关的服务接口,定义了考试相关的业务逻辑。
| | | | | | | | +- impl -- 服务接口实现类目录
| | | | | | | | | +- AnswerServiceImpl.java -- 答案相关的服务接口的实现类,实现了答案相关的业务逻辑。
| | | | | | | | | +- ExamQuestionServiceImpl.java -- 考试题目相关的服务接口的实现类,实现了考试题目相关的业务逻辑。
| | | | | | | | | +- ExamRecordServiceImpl.java -- 考试记录相关的服务接口的实现类,实现了考试记录相关的业务逻辑。
| | | | | | | | | +- ExamServiceImpl.java -- 考试相关的服务接口的实现类,实现了考试相关的业务逻辑。
| | | | | | | | | +- QuestionBankServiceImpl.java -- 题库相关的服务接口的实现类,实现了题库相关的业务逻辑。
| | | | | | | | | +- QuestionServiceImpl.java -- 题目相关的服务接口的实现类,实现了题目相关的业务逻辑。
| | | | | | | | | +- UserRoleServiceImpl.java -- 用户角色相关的服务接口的实现类,实现了用户角色相关的业务逻辑。
| | | | | | | | | +- UserServiceImpl.java -- 用户相关的服务接口的实现类,实现了用户相关的业务逻辑。
| | | | | | | | +- QuestionBankService.java -- 题库相关的服务接口,定义了题库相关的业务逻辑。
| | | | | | | | +- QuestionService.java -- 题目相关的服务接口,定义了题目相关的业务逻辑。
| | | | | | | | +- UserRoleService.java -- 用户角色相关的服务接口,定义了用户角色相关的业务逻辑
| | | | | | | | +- UserService.java -- 用户相关的服务接口,定义了用户相关的业务逻辑。
| | | | | | | +- Util -- 实用工具目录
| | | | | | | | +- CheckToken.java -- 检查令牌有效性的工具类。
| | | | | | | | +- createVerificationCode.java -- 生成验证码的工具类。
| | | | | | | | +- OSSUtil.java -- OSS 工具类。
| | | | | | | | +- RedisUtil.java -- Redis 工具类。
| | | | | | | | +- SaltEncryption.java -- 加密工具类。
| | | | | | | | +- TokenUtils.java -- 令牌工具类。
| | | | | | | +- vo -- 值对象目录
| | | | | | | | +- AddExamByBankVo.java -- 根据题库添加考试时的请求参数对象。
| | | | | | | | +- AddExamByQuestionVo.java -- 根据题目添加考试时的请求参数对象。
| | | | | | | | +- BankHaveQuestionSum.java -- 题库包含的题目数量信息对象。
| | | | | | | | +- CommonResult.java -- 通用响应结果对象。
| | | | | | | | +- ExamQueryVo.java -- 考试查询请求参数对象。
| | | | | | | | +- QuestionVo.java -- 题目信息对象。
| | | | | | | | +- TokenVo.java -- 令牌信息对象。
| | | | +- resources -- 资源文件目录
| | | +- test -- 测试代码目录
| | | | +- java -- Java 测试代码目录
| | | | | +- com
| | | | | | +- wzz -- 测试代码包名
| | | | | | | +- ExamAdminApplicationTests.java -- 应用程序测试类,用于测试应用程序的正确性。
| | +- target -- 构建输出目录
| +- exam-vue -- 项目前端
| | +- .browserslistrc -- 浏览器兼容性配置文件。
| | +- .editorconfig -- 编辑器配置文件。
| | +- .eslintrc.js -- ESLint 配置文件。
| | +- .gitignore -- Git 忽略文件列表。
| | +- babel.config.js -- Babel 配置文件。
| | +- debug.log -- 调试日志文件。
| | +- dist -- 前端构建输出目录
| | | +- css -- CSS 样式文件目录。
| | | +- favicon.ico -- 网站图标文件。
| | | +- fonts -- 字体文件目录。
| | | +- img -- 图片文件目录。
| | | +- index.html -- 前端应用程序主页面。
| | | +- js -- JavaScript 脚本文件目录。
| | +- node_modules -- Node.js 模块目录。
| | +- package-lock.json -- NPM 包依赖版本锁定文件。
| | +- package.json -- NPM 包管理配置文件。
| | +- public -- 前端公共资源目录
| | | +- favicon.ico -- 网站图标文件。
| | | +- index.html -- 前端应用程序主页面模板文件。
| | +- src -- 前端源代码目录
| | | +- api -- 前端 API 目录
| | | | +- api.js -- 前端 API 定义文件,用于与后端进行交互。
| | | +- App.vue -- Vue.js 应用程序的根组件。
| | | +- assets -- 前端资源目录
| | | | +- css -- CSS 样式文件目录。
| | | | +- imgs -- 图片文件目录。
| | | | +- logo.png -- 前端应用程序的 Logo 图片文件。
| | | +- components -- Vue.js 组件目录。
| | | +- main.js -- Vue.js 应用程序的入口文件。
| | | +- plugins -- Vue.js 插件目录
| | | | +- element.js -- Element UI 插件定义文件。
| | | +- Vue.js 路由目录
| | | | +- Vue.js 路由定义文件。
| | +- vue.config.js -- Vue CLI 配置文件。
| +- README.md -- 项目的说明文档。
| +- sql -- 数据库脚本目录
| | +- exam_system.sql -- 考试系统的数据库脚本。
| +- 图片
Pile technologique back-end
technologie | Version | illustrer |
---|
Parent de démarrage Spring Boot | 2.2.7.LIBÉRATION | Version de la dépendance parent Spring Boot |
Web de démarrage Spring Boot | - | Démarreur Web Spring Boot |
Connecteur MySQL/J | - | Pilote de base de données MySQL |
Log4j | 1.2.17 | Cadre de journalisation |
Aliyun SDK OSS | 2.8.2 | SDK de stockage d'objets Alibaba Cloud |
Lombok | - | Bibliothèque d'utilitaires Java |
JavaJWT | 3.8.2 | Bibliothèque d'implémentation de jetons Web JSON |
Springfox Swagger2 | 2.9.2 | Générateur de documentation sur l'API Swagger |
Interface utilisateur de Springfox Swagger | 2.9.2 | Page de l'interface utilisateur Swagger |
Druide | 1.1.22 | Pool de connexions à la base de données |
Redis de données de démarrage Spring Boot | - | Démarreur Redis |
MyBatis Plus | 3.0.5 | Outils d'amélioration MyBatis |
Test de démarrage Spring Boot | - | Démarreur de test de démarrage Spring |
Pile technologique frontale
technologie | Version | illustrer |
---|
axios | ^0.20.0 | Client de requête HTTP basé sur des promesses, disponible pour les navigateurs et node.js |
core-js | ^3.6.5 | Implémentation modulaire de la bibliothèque standard JavaScript |
graphiques | ^4.9.0 | Bibliothèque de graphiques et de visualisations puissante et interactive |
élément-ui | ^2.4.5 | Bibliothèque de composants d'interface utilisateur Vue.js 2.0 pour le Web |
nœud-sass | ^4.14.1 | Wrapper Node.js pour libsass |
chargeur sass | ^10.0.3 | Chargez les fichiers Sass/SCSS et compilez-les en CSS |
vue | ^2.6.11 | Un framework JavaScript progressif de plus en plus adopté pour créer une interface utilisateur sur le Web |
vue-routeur | ^3.2.0 | Le routeur officiel pour Vue.js |
@vue/cli-plugin-babel | ~4.5.0 | Plugin Babel pour Vue CLI |
@vue/cli-plugin-eslint | ~4.5.0 | Plugin ESlint pour Vue CLI |
@vue/cli-plugin-router | ~4.5.0 | Plugin Vue Router pour Vue CLI |
@vue/cli-service | ~4.5.0 | Services de proximité pour le développement et la construction |
@vue/eslint-config-standard | ^5.1.2 | Configuration partageable ESLint pour le style standard JavaScript |
babel-eslint | ^10.1.0 | Analyseur personnalisé pour ESLint |
composant-plugin-babel | ^1.1.1 | Plug-in Babel modulaire personnalisable pour importer des composants Element-UI à la demande |
eslint-plugin-importation | ^2.20.2 | Aide à la vérification des plugins ESLint correctement importés |
nœud-plugin-eslint | ^11.1.0 | Autres règles ESLint pour Node.js |
promesse du plugin eslint | ^4.2.1 | Meilleures pratiques pour appliquer les promesses JavaScript |
eslint-plugin-standard | ^4.0.0 | Plug-in ESLint standard de la communauté JavaScript |
eslint-plugin-vue | ^6.2.2 | Plug-in ESLint officiel de Vue.js |
vue-cli-plugin-element | ^1.0.1 | Plugin Vue CLI pour Element-UI |
vue-template-compilateur | ^2.6.11 | Un compilateur qui compile les modèles Vue.js en fonctions de rendu |
Tutoriel d'installation
- Exécutez le script de base de données dans Navicat pour générer la table de base de données correspondante
- Modifiez le nom de la base de données (Redis/Mysql) ou le mot de passe de la base de données dans le fichier src/main/resources/application.yml
- Exécutez mvn clean spring-boot:run dans le répertoire parent du fichier pom.xml pour démarrer le backend
- Pour démarrer le front-end, vous pouvez exécuter la commande suivante dans le répertoire parent de package.json ou cliquer directement dans IDEA pour l'exécuter. Il convient de mentionner que les deux dernières commandes sont la commande d'empaquetage et la commande de vérification et de réparation.
Compte de connexion
Nom d'utilisateur : admin Mot de passe : 12345
capture d'écran