This repository has been archived on 2026-04-05 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
master
考试信息管理系统
基于 Go (Gin) + MySQL + Vue 3 + Ant Design Pro 开发的考试信息管理系统。
技术栈
后端
- 框架: Gin v1.9.1
- ORM: GORM v1.25.5
- 数据库: MySQL 8.0+
- 配置管理: Viper v1.18.2
- JWT 认证: jwt-go v5.2.0
- 密码加密: bcrypt
前端
- 框架: Vue 3.4
- UI 组件库: Ant Design Vue 4.1
- 状态管理: Pinia 2.1
- 路由: Vue Router 4.2
- HTTP 客户端: Axios 1.6
- 构建工具: Vite 5.0
功能模块
1. 用户管理
- 用户注册与登录
- JWT Token 认证
- 用户信息管理
- 角色权限控制(管理员/普通用户)
2. 考试管理
- 发布考试(支持设置时间、地点、费用、人数限制等)
- 考试列表查询
- 考试详情查看
- 考试信息编辑与删除
- 考试状态管理(未开始/进行中/已结束)
3. 考试报名
- 在线报名功能
- 报名信息查询
- 报名状态跟踪(待审核/已通过/已拒绝/已取消)
- 报名审核(管理员)
- 报名信息管理
4. 考试通知
- 发布考试通知
- 通知分类(普通/重要/紧急)
- 通知列表查询
- 通知详情查看
- 通知编辑与删除
5. 准考证管理
- 自动生成准考证号
- 考场座位编排
- 准考证打印下载
6. 成绩管理
- 成绩录入(单条/批量)
- 成绩查询
- 成绩排名
- 成绩发布
- 及格/不及格判定
项目结构
Exam_registration/
├── cmd/ # 应用入口
│ └── main.go
├── internal/ # 内部包
│ ├── handler/ # HTTP 处理器
│ ├── model/ # 数据模型
│ ├── dao/ # 数据访问层
│ ├── service/ # 业务逻辑层
│ ├── middleware/ # 中间件
│ └── routes/ # 路由配置
├── pkg/ # 公共包
│ ├── response/ # 统一响应格式
│ ├── utils/ # 工具函数
│ └── config/ # 配置加载
├── config/ # 配置文件
│ └── config.yaml
├── frontend/ # 前端项目
│ ├── src/
│ │ ├── api/ # API 接口
│ │ ├── assets/ # 静态资源
│ │ ├── components/ # 组件
│ │ ├── layouts/ # 布局
│ │ ├── router/ # 路由
│ │ ├── store/ # 状态管理
│ │ ├── utils/ # 工具函数
│ │ └── views/ # 页面
│ ├── package.json
│ └── vite.config.js
├── uploads/ # 上传文件目录
├── go.mod
└── README.md
快速开始
环境要求
- Go 1.21+
- MySQL 8.0+
- Node.js 18+
后端启动
- 安装依赖
go mod tidy
-
配置数据库 修改
config/config.yaml中的数据库连接信息 -
创建数据库
CREATE DATABASE exam_registration CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 启动服务
go run cmd/main.go
服务将在 http://localhost:8080 启动
前端启动
- 进入前端目录
cd frontend
- 安装依赖
npm install
- 启动开发服务器
npm run dev
前端将在 http://localhost:3000 启动
API 接口
认证相关
- POST
/api/login- 用户登录 - POST
/api/register- 用户注册
考试相关
- GET
/api/exams- 获取考试列表 - GET
/api/exams/:id- 获取考试详情 - POST
/api/exams- 创建考试(需管理员权限) - PUT
/api/exams/:id- 更新考试(需管理员权限) - DELETE
/api/exams/:id- 删除考试(需管理员权限)
报名相关
- POST
/api/registrations- 创建报名 - GET
/api/registrations- 获取报名列表 - PUT
/api/registrations/:id- 更新报名信息 - DELETE
/api/registrations/:id- 取消报名 - PUT
/api/registrations/:id/audit- 审核报名(需管理员权限)
通知相关
- GET
/api/notices- 获取通知列表 - GET
/api/notices/:id- 获取通知详情 - POST
/api/notices- 创建通知(需管理员权限) - PUT
/api/notices/:id- 更新通知(需管理员权限) - DELETE
/api/notices/:id- 删除通知(需管理员权限)
成绩相关
- POST
/api/scores- 录入成绩 - POST
/api/scores/batch- 批量录入成绩 - GET
/api/scores/exam/:exam_id- 查询个人成绩 - GET
/api/scores- 获取成绩列表 - PUT
/api/scores/:id/publish- 发布成绩(需管理员权限) - DELETE
/api/scores/:id- 删除成绩(需管理员权限)
数据库设计
主要数据表
-
user - 用户表
- 包含用户基本信息、角色权限等
-
exam - 考试表
- 记录考试基本信息、时间安排、容量限制等
-
exam_registration - 报名表
- 关联用户和考试,记录报名状态和支付情况
-
exam_notice - 考试通知表
- 存储考试相关通知
-
exam_score - 考试成绩表
- 记录考生成绩和排名
所有表使用 utf8mb4 字符集,启用软删除(deleted_at 字段)
安全特性
- JWT Token 认证
- 密码 bcrypt 加密存储
- CORS 跨域配置
- SQL 注入防护(GORM 参数化查询)
- 角色权限控制
开发计划
- 准考证 PDF 生成与下载
- Excel 批量导入成绩
- 邮件通知功能
- 短信通知功能
- 数据统计图表展示
- 移动端适配
License
MIT License
Description
Languages
Vue
55.1%
Go
33.6%
JavaScript
6.7%
PowerShell
2.5%
Batchfile
1.5%
Other
0.6%