# aiexam **Repository Path**: jaffehe/aiexam ## Basic Information - **Project Name**: aiexam - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-16 - **Last Updated**: 2026-10-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI 协作能力摸底考试系统(Spring Boot 单体) 一个前后端一体的单体应用,用于在团队内开展 AI 协作能力摸底,答题数据落库,并提供管理后台查看结果。 ## 技术栈 - **后端**:Java 17 + Spring Boot 3.2.5 + MyBatis - **数据库**:MySQL 8(单张表 `exam_result`) - **前端**:原生 HTML + CSS + JavaScript,无任何构建依赖,手机浏览器直接打开 - **构建**:Maven ## 目录结构 ``` ai-exam-system/ ├── pom.xml ├── README.md └── src/main/ ├── java/com/tenwa/exam/ │ ├── ExamApplication.java │ ├── controller/ExamResultController.java │ ├── service/ExamResultService.java │ ├── mapper/ExamResultMapper.java │ ├── entity/ExamResult.java │ └── dto/SubmitRequest.java └── resources/ ├── application.yml # 公共配置 + 默认 profile ├── application-h2.yml # H2 配置 ├── application-mysql.yml # MySQL 配置 ├── db/schema.sql # MySQL 建表 ├── db/schema-h2.sql # H2 建表(自动执行) ├── mapper/ExamResultMapper.xml └── static/ ├── exam.html # 答题页 └── results.html # 结果看板 ``` ## 数据库切换(H2 / MySQL) 系统同时内置两种数据库,通过 Spring Profile 切换: | Profile | 要安装吗 | 数据位置 | 建表 | |---|---|---|---| | **h2(默认)** | 不用装,零安装 | 运行目录下 `./data/tenwa_exam.mv.db` | 启动自动执行 `schema-h2.sql` | | **mysql** | 需安装 MySQL | 独立数据库 `tenwa_exam` | 手动执行 `schema.sql` | **切换方式(任选其一):** 1. 改 `application.yml` 里的 `spring.profiles.active: h2` 或 `mysql`; 2. 启动命令加参数: ```bash mvn spring-boot:run -Dspring-boot.run.profiles=mysql java -jar target/ai-exam-system.jar --spring.profiles.active=mysql ``` 3. IDEA 运行配置里设置 Active profiles。 H2 还自带 Web 控制台,方便排查:启动后访问 , JDBC URL 填 `jdbc:h2:file:./data/tenwa_exam`,用户名 `sa`,密码留空。 > 建议:本地试用 / 内部小规模摸底用 H2;正式部署、多实例或需要 DBA 统一运维时用 MySQL。 ## 快速开始 ### 1. 启动(默认 H2,零安装) **方式一:Maven 命令** ```bash mvn spring-boot:run ``` **方式二:IDEA 直接运行** 运行 `com.tenwa.exam.ExamApplication`。 首次启动自动建表,数据写到 `./data/` 目录。 ### 2.(可选)改用 MySQL ```bash # 先建库建表 mysql -uroot -p < src/main/resources/db/schema.sql # 再按需改 application-mysql.yml 的账号密码,然后以 mysql profile 启动 mvn spring-boot:run -Dspring-boot.run.profiles=mysql ``` ### 3. 访问 - 答题页: - 结果看板: 把答题链接发到微信群(或部署后用服务器 IP),手机浏览器直接打开即可。 ## 接口一览 | 方法 | 路径 | 说明 | |---|---|---| | POST | `/api/exam/submit` | 提交答卷,落库 | | GET | `/api/exam/list` | 结果列表,支持 `name` / `role` / `grade` 筛选 | | GET | `/api/exam/{id}` | 查看单条记录 | | DELETE | `/api/exam/{id}` | 删除记录 | ## 数据说明 单表 `exam_result`,核心字段: - 基本信息:`name / role / score / total_score / grade` - 防乱填:`time_used_sec / time_used_min / fast_answer_count / suspicious` - 主观反馈:`heat_score / difficulties / supports / other_feedback` - 逐题明细:`answers`(JSON 字符串,含每题对错、耗时、选择) - 时间:`created_at` ## 防抄袭设计 - 记录每道题的进入时间和首次作答时间; - 进入题目后 2 秒内提交的,标记为"疑似乱填"; - 疑似乱填 ≥3 题,或总耗时 <3 分钟,记录标记 `suspicious=1`,结果看板红色提示"需复测"。 ## 打包部署 ```bash mvn clean package -DskipTests java -jar target/ai-exam-system.jar ```