# 考试信息管理系统 - 快速上手指南 ## 🚀 5 分钟快速开始 ### 前置条件 请确保您的计算机已安装: - ✅ Go 1.21+ - ✅ MySQL 8.0+ - ✅ Node.js 18+ ### 第一步:克隆项目(如果还未获取) ```bash # 如果已经下载好,跳过此步 # 项目位置:E:\Exam_registration ``` --- ### 第二步:初始化数据库(2 分钟) #### 方法一:使用 SQL 脚本(推荐) 1. 打开命令行,登录 MySQL: ```bash mysql -u root -p ``` 2. 执行 SQL 脚本: ```sql source E:\Exam_registration\database.sql; ``` 3. 验证数据库创建成功: ```sql SHOW DATABASES; USE exam_registration; SHOW TABLES; ``` 应该看到 5 张表:`user`, `exam`, `exam_registration`, `exam_notice`, `exam_score` #### 方法二:手动创建 如果自动脚本失败,可以手动执行 `database.sql` 文件中的 SQL 语句。 --- ### 第三步:配置后端(1 分钟) 1. 打开配置文件:`config/config.yaml` 2. 修改数据库密码: ```yaml database: host: localhost port: 3306 user: root password: YOUR_PASSWORD # ⚠️ 改为你的 MySQL 密码 dbname: exam_registration ``` 3. 保存文件 --- ### 第四步:启动后端服务(1 分钟) ```bash # 进入项目目录 cd E:\Exam_registration # 下载依赖(首次需要) go mod tidy # 启动服务 go run cmd/main.go ``` 看到以下输出表示成功: ``` Server started on port 8080 ``` **测试后端**: 打开浏览器访问 http://localhost:8080,能看到页面说明后端正常。 --- ### 第五步:启动前端(2 分钟) 打开新的命令行窗口: ```bash # 进入前端目录 cd E:\Exam_registration\frontend # 安装依赖(首次需要,约 1-2 分钟) npm install # 启动开发服务器 npm run dev ``` 看到以下输出表示成功: ``` VITE v5.0.8 ready in 1234 ms ➜ Local: http://localhost:3000/ ➜ Network: use --host to expose ``` **测试前端**: 打开浏览器访问 http://localhost:3000 --- ### 第六步:登录系统 使用默认管理员账号登录: - **用户名**: `admin` - **密码**: `admin123` 登录后可以看到系统首页! --- ## 🎯 快速功能演示 ### 1️⃣ 发布考试(管理员) 1. 点击导航栏「考试管理」 2. 点击「发布考试」按钮 3. 填写考试信息: - 考试名称:2024 年春季英语等级考试 - 考试代码:ENG-2024-001 - 考试时间:选择未来某个时间 - 其他信息按需填写 4. 点击确定 ✅ 考试发布成功! --- ### 2️⃣ 报名考试(普通用户) 1. 注册新账号或退出管理员账号 2. 浏览考试列表 3. 点击感兴趣的考试查看详情 4. 点击「立即报名」 5. 等待管理员审核 ✅ 报名成功! --- ### 3️⃣ 审核报名(管理员) 1. 使用 admin 账号登录 2. 点击「报名管理」→「报名列表」 3. 找到待审核的报名记录 4. 点击「通过」或「拒绝」 5. 填写审核意见 ✅ 审核完成!系统自动生成准考证号 --- ### 4️⃣ 录入成绩(管理员) 1. 点击「成绩管理」→「成绩录入」 2. 选择对应的考试 3. 点击「批量录入」 4. 输入 JSON 格式的成绩数据: ```json [ {"user_id": 2, "score": 85}, {"user_id": 3, "score": 92} ] ``` 5. 点击确定 ✅ 成绩录入成功! --- ### 5️⃣ 查询成绩(用户) 1. 用户登录自己的账号 2. 点击「成绩查询」 3. 查看自己的分数和排名 ✅ 成绩查询成功! --- ## 🔧 常见问题排查 ### ❌ 问题 1:后端启动失败 **错误**: `无法连接数据库` **解决方案**: 1. 检查 MySQL 服务是否运行 2. 确认 `config/config.yaml` 中的密码正确 3. 确认数据库 `exam_registration` 已创建 ```bash # 检查 MySQL 服务状态(Windows) net start | findstr MySQL # 启动 MySQL 服务 net start MySQL80 ``` --- ### ❌ 问题 2:前端启动失败 **错误**: `npm: command not found` **解决方案**: 1. 确认已安装 Node.js 2. 将 Node.js 添加到系统 PATH 3. 重新打开命令行 ```bash # 检查 Node.js 版本 node --version npm --version ``` --- ### ❌ 问题 3:跨域错误 **错误**:`Access-Control-Allow-Origin` **解决方案**: 1. 确认后端已启动 CORS 中间件(代码中已包含) 2. 确认前端请求的 baseURL 是 `/api` 3. 检查 `vite.config.js` 中的代理配置 --- ### ❌ 问题 4:登录失败 **错误**: `用户名或密码错误` **解决方案**: 1. 确认用户名是 `admin` 2. 确认密码是 `admin123` 3. 如果忘记密码,可以在数据库中重置: ```sql -- 重置 admin 密码为 admin123 UPDATE user SET password = '$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy' WHERE username = 'admin'; ``` --- ## 📱 移动端访问 系统支持响应式布局,可在手机上访问: 1. 确保手机和电脑在同一局域网 2. 启动前端时添加 `--host` 参数: ```bash npm run dev -- --host ``` 3. 使用手机浏览器访问:`http://你的电脑 IP:3000` --- ## 🎓 进阶使用 ### 添加更多管理员 ```sql INSERT INTO user (username, password, email, role, status) VALUES ('newadmin', '$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy', 'admin2@example.com', 'admin', 1); ``` ### 批量导入考生 编写脚本或使用 Excel 转 CSV 后批量插入数据库。 ### 自定义配置 编辑 `config/config.yaml`: ```yaml server: port: 8080 # 修改端口 jwt: expire: 86400 # Token 有效期(秒) database: max_idle_conns: 20 # 连接池大小 ``` --- ## 📚 下一步学习 1. 阅读 `API_DOCUMENTATION.md` 了解完整接口文档 2. 阅读 `PROJECT_SUMMARY.md` 了解所有功能 3. 阅读 `DEPLOYMENT.md` 学习生产环境部署 4. 查看源代码学习实现细节 --- ## 💡 小贴士 - **开发模式**: 后端支持热重载,修改代码后自动重启 - **调试技巧**: 使用浏览器的开发者工具查看网络请求 - **数据清理**: 测试数据可随时在数据库中清空重来 - **备份习惯**: 定期备份数据库,防止数据丢失 --- ## 🎉 恭喜! 您已经成功搭建并运行了考试信息管理系统! 现在您可以: - ✅ 发布和管理考试 - ✅ 处理报名申请 - ✅ 录入和查询成绩 - ✅ 发布考试通知 - ✅ 管理用户信息 **开始您的考试管理之旅吧!** 🚀 --- **需要帮助?** - 查看项目文档 - 检查日志输出 - 联系技术支持