这是一个可运行的在线考试系统 MVP,包含 Spring Boot 3 后端与 Vue 3 前端。
- 后端:Spring Boot 3、Java 17 target、MyBatis-Plus、MySQL 8、Redis、Spring Security JWT、OpenAPI。
- 前端:Vue 3、TypeScript、Vite、Element Plus、Tailwind CSS、Pinia、Vue Router、Axios。
项目不使用环境变量。开发环境连接配置直接写在:
backend/src/main/resources/application-dev.yml
当前默认配置:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/online_exam?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false
username: root
password: ''
data:
redis:
host: 127.0.0.1
port: 6379
password: ''
database: 0如果你的 MySQL root 有密码,请直接把 password: '' 改成你的密码,例如:
password: '123456'先在 MySQL 中创建数据库:
CREATE DATABASE IF NOT EXISTS online_exam CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;后端启动时会自动执行:
backend/src/main/resources/db/schema.sqlbackend/src/main/resources/db/data.sql
Redis 不可用时,系统会记录告警并跳过缓存/防重复提交能力,核心流程仍可运行。
后端:
cd backend
mvn spring-boot:run前端:
cd frontend
npm install
npm run dev访问地址:
- 前端:http://localhost:5173
- 后端 API:http://localhost:8080/api
- OpenAPI:http://localhost:8080/api/swagger-ui.html
- 管理员:
admin / Exam@123456 - 教师:
teacher / Exam@123456 - 学生:
student / Exam@123456
后端启动时会自动检查并补齐 1000 道题:
数据库原理:500 道大学数学:500 道
题目覆盖单选、多选、判断、填空、简答,难度包含:
EASYMEDIUMHARD
这些题目会写入 questions 和 question_options,并带有学科、章节、题型、难度、分值和标签,后续可直接用于智能组卷。
cd backend
mvn test
cd ../frontend
npm run build