237 lines
4.8 KiB
Markdown
237 lines
4.8 KiB
Markdown
# 考试信息管理系统 - 部署指南
|
||
|
||
## 环境准备
|
||
|
||
### 1. 安装 Go 语言环境
|
||
|
||
**Windows 系统:**
|
||
1. 访问 https://golang.org/dl/
|
||
2. 下载并安装最新版本的 Go(推荐 1.21+)
|
||
3. 验证安装:`go version`
|
||
|
||
### 2. 安装 MySQL 数据库
|
||
|
||
**Windows 系统:**
|
||
1. 访问 https://dev.mysql.com/downloads/mysql/
|
||
2. 下载并安装 MySQL 8.0+
|
||
3. 记录 root 用户密码
|
||
|
||
### 3. 安装 Node.js
|
||
|
||
**Windows 系统:**
|
||
1. 访问 https://nodejs.org/
|
||
2. 下载并安装 LTS 版本(Node.js 18+)
|
||
3. 验证安装:
|
||
```bash
|
||
node --version
|
||
npm --version
|
||
```
|
||
|
||
## 数据库配置
|
||
|
||
### 1. 创建数据库
|
||
|
||
登录 MySQL 后执行以下命令:
|
||
|
||
```sql
|
||
-- 方法一:使用提供的 SQL 脚本
|
||
source database.sql;
|
||
|
||
-- 方法二:手动创建
|
||
CREATE DATABASE exam_registration CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
```
|
||
|
||
### 2. 修改配置文件
|
||
|
||
编辑 `config/config.yaml`,修改数据库连接信息:
|
||
|
||
```yaml
|
||
database:
|
||
host: localhost # 数据库地址
|
||
port: 3306 # 数据库端口
|
||
user: root # 数据库用户名
|
||
password: your_password # 数据库密码(修改为你的密码)
|
||
dbname: exam_registration
|
||
```
|
||
|
||
## 后端部署
|
||
|
||
### 1. 初始化 Go 模块
|
||
|
||
```bash
|
||
cd e:\Exam_registration
|
||
go mod tidy
|
||
```
|
||
|
||
如果遇到依赖下载问题,可以设置国内镜像:
|
||
|
||
```bash
|
||
go env -w GOPROXY=https://goproxy.cn,direct
|
||
go mod tidy
|
||
```
|
||
|
||
### 2. 编译运行
|
||
|
||
**开发模式运行:**
|
||
|
||
```bash
|
||
go run cmd/main.go
|
||
```
|
||
|
||
**生产环境编译:**
|
||
|
||
```bash
|
||
go build -o exam-registration.exe cmd/main.go
|
||
./exam-registration.exe
|
||
```
|
||
|
||
服务启动成功后,访问:http://localhost:8080
|
||
|
||
### 3. API 测试
|
||
|
||
使用 Postman 或 curl 测试 API:
|
||
|
||
```bash
|
||
# 测试登录接口
|
||
curl -X POST http://localhost:8080/api/login \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"username":"admin","password":"admin123"}'
|
||
```
|
||
|
||
## 前端部署
|
||
|
||
### 1. 安装依赖
|
||
|
||
```bash
|
||
cd frontend
|
||
npm install
|
||
```
|
||
|
||
如果下载缓慢,可以使用淘宝镜像:
|
||
|
||
```bash
|
||
npm config set registry https://registry.npmmirror.com
|
||
npm install
|
||
```
|
||
|
||
### 2. 启动开发服务器
|
||
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
启动成功后,访问:http://localhost:3000
|
||
|
||
### 3. 生产环境构建
|
||
|
||
```bash
|
||
npm run build
|
||
```
|
||
|
||
构建产物在 `frontend/dist` 目录
|
||
|
||
## 默认账号
|
||
|
||
- **管理员账号**:
|
||
- 用户名:`admin`
|
||
- 密码:`admin123`
|
||
|
||
- **普通用户**: 通过注册功能创建
|
||
|
||
## 常见问题
|
||
|
||
### 1. 后端启动失败
|
||
|
||
**问题:无法连接数据库**
|
||
- 检查 MySQL 服务是否启动
|
||
- 确认数据库用户名密码正确
|
||
- 确认数据库已创建
|
||
|
||
**问题:端口被占用**
|
||
- 修改 `config/config.yaml` 中的端口号
|
||
- 或者关闭占用 8080 端口的程序
|
||
|
||
### 2. 前端启动失败
|
||
|
||
**问题:依赖安装失败**
|
||
- 清理 npm 缓存:`npm cache clean --force`
|
||
- 删除 node_modules 重新安装
|
||
- 使用淘宝镜像
|
||
|
||
**问题:代理配置问题**
|
||
- 检查 `vite.config.js` 中的代理配置
|
||
- 确保后端服务已启动
|
||
|
||
### 3. CORS 错误
|
||
|
||
如果出现跨域错误,检查:
|
||
- 后端是否正确配置 CORS 中间件
|
||
- 前端请求的 baseURL 是否正确
|
||
|
||
## 功能测试流程
|
||
|
||
### 管理员操作流程
|
||
|
||
1. 使用 admin 账号登录
|
||
2. 发布考试(设置考试时间、地点、费用等)
|
||
3. 发布考试通知
|
||
4. 审核报名申请
|
||
5. 录入考试成绩
|
||
6. 发布成绩
|
||
|
||
### 普通用户操作流程
|
||
|
||
1. 注册账号并登录
|
||
2. 浏览考试列表
|
||
3. 报名参加考试
|
||
4. 查看报名状态
|
||
5. 查看准考证信息
|
||
6. 查询考试成绩
|
||
|
||
## 系统架构说明
|
||
|
||
```
|
||
┌─────────────┐ ┌──────────────┐
|
||
│ 前端 │◄───────►│ 后端 │
|
||
│ Vue 3 + │ HTTP │ Go + Gin │
|
||
│ Ant Design │ JSON │ │
|
||
└─────────────┘ └──────────────┘
|
||
│
|
||
▼
|
||
┌──────────────┐
|
||
│ MySQL │
|
||
│ Database │
|
||
└──────────────┘
|
||
```
|
||
|
||
## 下一步开发建议
|
||
|
||
1. **完善准考证功能**
|
||
- 实现 PDF 生成
|
||
- 添加考场座位自动编排算法
|
||
|
||
2. **增强成绩管理**
|
||
- Excel 批量导入导出
|
||
- 成绩统计分析图表
|
||
|
||
3. **通知功能增强**
|
||
- 邮件通知
|
||
- 短信通知
|
||
|
||
4. **权限优化**
|
||
- 更细粒度的权限控制
|
||
- 角色管理界面
|
||
|
||
5. **性能优化**
|
||
- 添加 Redis 缓存
|
||
- 数据库查询优化
|
||
- 前端懒加载
|
||
|
||
## 技术支持
|
||
|
||
如有问题,请查看:
|
||
- Go 官方文档:https://golang.org/doc/
|
||
- Gin 框架文档:https://gin-gonic.com/
|
||
- Vue 3 文档:https://vuejs.org/
|
||
- Ant Design Vue 文档:https://antdv.com/
|