# 考试系统 **Repository Path**: dlmshk/ai-php-exam ## Basic Information - **Project Name**: 考试系统 - **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-05-18 - **Last Updated**: 2026-07-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI PHP Exam — 在线考试系统 AI PHP Exam 是一套面向学校、培训机构、企事业单位和竞赛活动的全流程在线考试平台,覆盖题库建设、智能组卷、在线考试、防作弊监控、自动阅卷、成绩分析、多考场同步和网盘作业等核心场景。 ## 功能特点 - **全流程考试管理**:从题库、试卷、考试发布到答题、交卷、阅卷、成绩归档形成完整闭环。 - **灵活组卷能力**:支持固定试卷、随机抽题、按题型/难度/题库规则组卷,并保留考试快照保证公平性。 - **多题型自动评分**:覆盖单选、多选、判断、填空、不定项等题型,填空题支持精确匹配、关键词匹配和按空计分。 - **断点续考与防作弊**:支持考试恢复、答题同步、异常行为记录、强制交卷和防作弊统计。 - **数据分析与排行榜**:提供成绩分布、错题统计、交叉分析、考试排名和多考场汇总视图。 - **多业务场景扩展**:内置练习中心、竞赛模式、随机抽题提问、网盘作业、小工具和迅睿 CMS 插件复刻实现。 - **运行形态清晰**:当前主线为 Go + Vue,保留 `/api/v1/*` 兼容接口,也提供 Xunrui 插件形态便于接入现有 CMS。 基于 **Go + Vue 3** 的在线考试系统,支持 SQLite 和 MySQL 双数据库模式。 ## 快速开始 ```bash # 1. 启动服务(首次运行自动创建 SQLite 数据库和默认管理员) ./exam-server # 2. 浏览器打开 # http://localhost:8080 # 3. 后台登录 # 用户名: admin 密码: admin123 ``` 默认管理员 `admin / admin123`,登录后可在「系统设置」中修改密码。 ## 数据库模式 在 `config.ini` 中切换: ```ini [database] driver = sqlite # 或 driver = mysql host = 127.0.0.1 port = 3306 name = ai_php_exam user = root password = your_password ``` ## 功能模块 - **题库管理** — 单选、多选、判断、填空、不定项题,支持 Excel/Word/文本导入 - **考试引擎** — 随机组卷、限时答题、断点续考、防作弊监控 - **自动评分** — 填空支持精确/关键词匹配、按空位计分 - **数据分析** — 成绩分布、统计项交叉分析、可视化图表 - **排行榜** — 按考试去重排名,支持多考场汇总 - **练习中心** — 用户自主导入题库,数据隔离,不影响正式考试 - **竞赛模式** — 关卡挑战、限时积分、速度/连对/难度加分 - **多考场同步** — 主服务 + 附属服务分片考试,自动回传成绩 - **字典管理** — 题型、难度、分类等基础数据自定义 ## 环境要求 | 组件 | 版本要求 | |------|----------| | Go | ≥ 1.21(仅开发/编译需要) | | Node.js | ≥ 18(仅开发前端需要) | | MySQL | ≥ 5.7(可选,生产模式) | ## 从源码构建 ```bash # 安装前端依赖 cd frontend npm install # 单独构建前端并同步 Go 内嵌目录(后续多个平台共用这份产物) cd ../go ./script/build-frontend.sh # 选择一个或多个平台编译 Go 二进制 ./script/build-linux-amd64.sh ``` 前端修改后只需重新执行一次 `./go/script/build-frontend.sh`,再按需执行各平台脚本;平台脚本不会重复执行 `npm run build`。 `go/internal/frontend` 是生成目录,不纳入版本控制。必须先执行 `go/script/build-frontend.sh` 生成内嵌前端,再执行平台打包脚本。 跨平台编译脚本: ```bash ./go/script/build-linux-amd64.sh # Linux x86_64 ./go/script/build-linux-arm64.sh # Linux ARM64(树莓派、ARM 服务器) ./go/script/build-windows-amd64.sh # Windows x86_64 ./go/script/build-darwin-arm64.sh # macOS Apple Silicon (M1/M2/M3/M4) ``` 产物在 `go/dist/` 目录下,自带 `config.ini` 模板。 ## 技术栈 | 层 | 技术 | |----|------| | 后端 | Go (Gin + sqlx) | | 前端 | Vue 3 + Element Plus + ECharts + Vite | | 数据库 | SQLite / MySQL 双驱动 | | 运行 | Go 服务内嵌前端静态文件 | ## 运行形态 当前主线运行形态为 Go + Vue 单二进制服务;PHP 侧新工作集中在 `xunrui/` 插件复刻实现,不再保留旧 CodeIgniter 后端目录。 ## 项目结构 ``` ├── frontend/ # Vue 3 前端 │ └── src/views/ # 页面组件 ├── go/ # Go 后端 │ ├── cmd/server/ # 入口 │ ├── internal/ │ │ ├── config/ # 配置管理 │ │ ├── models/ # 数据模型 │ │ ├── store/ # 数据库 + 迁移 │ │ ├── http/ # 路由 + Handler + 中间件 │ │ └── services/ # 缓存、认证等 │ └── script/ # 构建脚本 ├── xunrui/ # Xunrui CMS 插件复刻 └── docs/ # 设计文档 ``` ## License MIT