logo
0
0
WeChat Login
feat: 重构前端架构并完善认证流程

在线考试系统

🚀 快速启动

./start.sh

🌐 访问地址

启动成功后访问以下地址:

服务地址说明
📱 前端应用http://localhost:3000用户界面
🧪 后端APIhttp://localhost:8080RESTful API
💚 健康检查http://localhost:8080/health服务状态
📊 指标监控http://localhost:8080/metricsPrometheus 指标

🔐 默认账号

系统已创建以下测试账号:

角色用户名密码密钥
考生testuserpassword123kotres-gyxfa3-vywmyQ
考官examineradmin123mazmyk-gubbit-pohFo1

⚠️ 生产环境请修改默认密码和密钥

🛑 停止服务

docker compose down

🔧 常见问题

端口冲突

如果提示端口被占用:

# 查看占用进程 lsof -i :3000 # 前端端口 lsof -i :8080 # 后端端口 lsof -i :3306 # MySQL端口 lsof -i :6379 # Redis端口 # 强制结束进程 sudo kill -9 <PID>

镜像构建失败

清理后重新构建:

docker compose down --rmi all ./start.sh

数据库初始化失败

检查数据库配置和SQL文件:

# 查看MySQL日志 docker compose logs mysql # 重置数据库 docker compose down -v ./start.sh

前端无法访问后端

如果前端显示"后端服务未启动":

  1. 检查后端是否正常运行:curl http://localhost:8080/health
  2. 查看后端日志:docker compose logs backend
  3. 检查网络连接:docker network ls

登录失败

如果遇到登录问题:

  1. 确认使用正确的用户名和密码
  2. 检查后端日志:docker compose logs backend
  3. 清除浏览器缓存和 localStorage
  4. 使用默认测试账号验证系统状态

📋 技术栈

  • 前端: Vue 3 + TypeScript + Vite
  • 后端: Go 1.21 + Gin + GORM + MySQL + Redis
  • 容器化: Docker + Docker Compose
  • 代理: Nginx (生产环境)
  • 监控: Prometheus + Zap Logger
  • 认证: JWT (golang-jwt/jwt)
  • 缓存: Redis + go-redis

📁 项目结构

├── backend/ # Go 后端应用 │ ├── cmd/ # 应用入口 │ │ └── api/ # API 服务主程序 │ ├── internal/ # 内部代码 │ │ ├── api/ # HTTP 处理器 │ │ ├── domain/ # 领域模型 │ │ ├── middleware/# 中间件 │ │ ├── pkg/ # 内部包 │ │ ├── repo/ # 数据仓库 │ │ └── service/ # 业务逻辑 │ ├── configs/ # 配置文件 │ ├── Dockerfile # 后端镜像构建 │ └── go.mod # Go 模块定义 ├── frontend/ # Vue 前端应用 ├── mysql/ # MySQL 数据库脚本 │ ├── init.sql # 初始化脚本 │ ├── schema.sql # 数据库结构 │ └── seed.sql # 种子数据 ├── redis/ # Redis 配置 ├── docker-compose.yml # 容器编排 ├── start.sh # 启动脚本 └── README.md # 项目说明