Sistem ujian online
lingkungan pengembangan
Konfigurasikan lingkungan
program | Versi | menjelaskan |
---|
Jdk | 1.8.0 161 | Kit Pengembangan Java |
MySQL | 5.5.27 | basis data relasional |
ulang | 7.0.5 | database non-relasional |
Apache-maven | 3.9.0 | Manajemen proyek Java dan alat pembangunan |
Nvm | 1.10 | Manajer versi Node.js |
simpul | 8.12.0 | Lingkungan waktu proses JavaScript Node.js |
alat pengembangan
alat | Versi | menjelaskan |
---|
IDE | 2022.3.2 | IDE pengembangan back-end dan front-end |
Git | 2.24.1 | Platform hosting kode |
Google Chrome | 75.0.3770.100 | Browser, alat debugging front-end |
Navicat | 11.1.13 | Alat koneksi basis data |
Tukang pos | 7.1.0 | Alat pengujian antarmuka |
VMware Workstation Pro | 14.1.3 | Mesin virtual (tidak digunakan, mungkin Anda akan menggunakannya) |
Desainer Daya | 15 | Alat desain basis data (tidak digunakan, mungkin Anda akan menggunakannya) |
SQLyog | 12.0.3 | Alat koneksi database (tidak digunakan, mungkin Anda akan menggunakannya) |
Visio | 2013 | Sequence diagram, flow chart dan alat gambar lainnya (jika tidak digunakan, mungkin Anda akan menggunakannya) |
Proses Aktif | —— | Alat menggambar seperti diagram arsitektur (tidak digunakan, mungkin Anda akan menggunakannya) |
XPikiran ZEN | 9.2.0 | Alat pemetaan pikiran (tidak digunakan, mungkin Anda akan menggunakannya) |
RedisDesktop | 0.9.3.817 | alat koneksi klien redis (tidak digunakan, mungkin Anda akan menggunakannya) |
Standar pengkodean
- Pendekatan standar: Patuhi secara ketat konvensi pengkodean Alibaba.
- Penamaan terpadu: Pendahuluan menghasilkan pemahaman nama yang terbaik.
- Hapus subkontrak: Hierarki yang jelas memungkinkan Anda menemukan lokasi kode dengan cepat.
- Komentar lengkap: Deskriptifitas tinggi sangat mengurangi beban kerja pembacaan kode pengembang.
- Spesifikasi alat: Gunakan paket jar terpadu untuk menghindari konflik konten.
- Kode bersih: sangat mudah dibaca dan dipelihara.
Struktur paket
- 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 -- 考试系统的数据库脚本。
| +- 图片
Tumpukan teknologi backend
teknologi | Versi | menjelaskan |
---|
Induk Pemula Boot Musim Semi | 2.2.7.RELEASE | Versi ketergantungan induk Spring Boot |
Web Pemula Boot Musim Semi | - | Pemula Web Boot Musim Semi |
Konektor MySQL/J | - | Pengandar basis data MySQL |
Log4j | 1.2.17 | Kerangka pencatatan |
Aliyun SDK OSS | 2.8.2 | SDK Penyimpanan Objek Alibaba Cloud |
Lombok | - | Perpustakaan utilitas Java |
JWT Jawa | 3.8.2 | Pustaka implementasi JSON Web Token |
Kesombongan Springfox2 | 2.9.2 | Generator dokumentasi Swagger API |
UI Kesombongan Springfox | 2.9.2 | Halaman UI angkuh |
Druid | 1.1.22 | Kumpulan koneksi basis data |
Redis Data Pemula Boot Musim Semi | - | Redis Pemula |
MyBatis Plus | 3.0.5 | Alat peningkatan MyBatis |
Tes Pemula Boot Musim Semi | - | Pemula Tes Boot Musim Semi |
Tumpukan teknologi front-end
teknologi | Versi | menjelaskan |
---|
aksio | ^0.20.0 | Klien permintaan HTTP berbasis janji, tersedia untuk browser dan node.js |
inti-js | ^3.6.5 | Implementasi modular dari perpustakaan standar JavaScript |
grafik | ^4.9.0 | Pustaka grafik dan visualisasi yang kuat dan interaktif |
elemen-ui | ^2.4.5 | Pustaka komponen UI Vue.js 2.0 untuk web |
simpul-sass | ^4.14.1 | Pembungkus Node.js untuk libsass |
sass-loader | ^10.0.3 | Muat file Sass/SCSS dan kompilasi ke dalam CSS |
vue | ^2.6.11 | Kerangka kerja JavaScript progresif semakin banyak diadopsi untuk membangun UI di web |
vue-router | ^3.2.0 | Router resmi untuk Vue.js |
@vue/cli-plugin-babel | ~4.5.0 | Plugin Babel untuk Vue CLI |
@vue/cli-plugin-eslint | ~4.5.0 | Plugin ESlint untuk Vue CLI |
@vue/cli-plugin-router | ~4.5.0 | Plugin Vue Router untuk Vue CLI |
@vue/cli-service | ~4.5.0 | Layanan lokal untuk pengembangan dan pembangunan |
@vue/eslint-config-standard | ^5.1.2 | Konfigurasi ESLint yang dapat dibagikan untuk Gaya Standar JavaScript |
babel-eslint | ^10.1.0 | Pengurai khusus untuk ESLint |
komponen-plugin-babel | ^1.1.1 | Plug-in babel modular yang dapat disesuaikan untuk mengimpor komponen Element-UI sesuai permintaan |
eslint-plugin-impor | ^2.20.2 | Membantu memverifikasi plugin ESLint yang diimpor dengan benar |
eslint-plugin-node | ^11.1.0 | Aturan ESLint lainnya untuk Node.js |
eslint-plugin-janji | ^4.2.1 | Praktik terbaik untuk menegakkan janji JavaScript |
eslint-plugin-standar | ^4.0.0 | Plugin ESLint standar komunitas JavaScript |
eslint-plugin-vue | ^6.2.2 | Plugin ESLint resmi Vue.js |
vue-cli-plugin-elemen | ^1.0.1 | Plugin Vue CLI untuk Elemen-UI |
vue-template-compiler | ^2.6.11 | Kompiler yang mengkompilasi template Vue.js ke dalam fungsi rendering |
Tutorial instalasi
- Jalankan skrip database di navicat untuk menghasilkan tabel database yang sesuai
- Ubah nama database (Redis/Mysql) atau kata sandi database di file src/main/resources/application.yml
- Jalankan mvn clean spring-boot:run di direktori induk file pom.xml untuk memulai backend
- Untuk memulai front end, Anda dapat menjalankan perintah berikut di direktori induk package.json atau klik langsung di IDEA untuk menjalankannya. Perlu disebutkan bahwa dua perintah terakhir adalah perintah pengemasan dan perintah pemeriksaan dan perbaikan.
- Seperti yang ditunjukkan di bawah ini
Masuk akun
Nama pengguna: admin Kata sandi: 12345
tangkapan layar