11 KiB
11 KiB
📁 项目文件清单
后端文件(Go + Gin)
核心目录结构
Exam_registration/
│
├── cmd/ # 应用程序入口
│ └── main.go # 主程序,启动服务器
│
├── internal/ # 内部包(私有代码)
│ │
│ ├── handler/ # HTTP 处理器层(Controller)
│ │ ├── user_handler.go # 用户相关接口处理
│ │ ├── exam_handler.go # 考试相关接口处理
│ │ ├── registration_handler.go # 报名相关接口处理
│ │ ├── notice_handler.go # 通知相关接口处理
│ │ └── score_handler.go # 成绩相关接口处理
│ │
│ ├── model/ # 数据模型层
│ │ └── models.go # 数据库表结构定义(5 个核心表)
│ │
│ ├── service/ # 业务逻辑层
│ │ ├── user_service.go # 用户业务逻辑
│ │ ├── exam_service.go # 考试业务逻辑
│ │ ├── registration_service.go # 报名业务逻辑
│ │ ├── notice_service.go # 通知业务逻辑
│ │ └── score_service.go # 成绩业务逻辑
│ │
│ ├── dao/ # 数据访问层
│ │ └── mysql.go # MySQL 数据库初始化
│ │
│ ├── middleware/ # 中间件
│ │ └── auth.go # JWT 认证和 CORS 中间件
│ │
│ └── routes/ # 路由配置
│ └── routes.go # API 路由注册
│
├── pkg/ # 公共包(可复用代码)
│ │
│ ├── response/ # 统一响应格式
│ │ └── response.go # 成功/错误响应封装
│ │
│ ├── config/ # 配置加载
│ │ └── config.go # Viper 配置读取
│ │
│ └── utils/ # 工具函数
│ └── (可扩展)
│
├── config/ # 配置文件
│ └── config.yaml # YAML 配置文件
│
├── static/ # 静态资源
│ └── (存放上传的文件等)
│
├── uploads/ # 上传文件目录
│ └── (运行时生成)
│
├── database.sql # 数据库初始化脚本
├── go.mod # Go 模块依赖管理
└── .gitignore # Git 忽略文件
前端文件(Vue 3 + Ant Design Pro)
核心目录结构
frontend/
│
├── src/
│ │
│ ├── api/ # API 接口定义
│ │ ├── user.js # 用户相关 API
│ │ ├── exam.js # 考试相关 API
│ │ ├── registration.js # 报名相关 API
│ │ ├── notice.js # 通知相关 API
│ │ └── score.js # 成绩相关 API
│ │
│ ├── assets/ # 静态资源
│ │ ├── images/ # 图片资源
│ │ └── styles/ # 样式文件
│ │
│ ├── components/ # 通用组件
│ │ └── (可扩展自定义组件)
│ │
│ ├── layouts/ # 布局组件
│ │ └── BasicLayout.vue # 基础布局(带导航菜单)
│ │
│ ├── router/ # 路由配置
│ │ └── index.js # Vue Router 配置
│ │
│ ├── store/ # 状态管理
│ │ └── (使用 Pinia,可按需扩展)
│ │
│ ├── utils/ # 工具函数
│ │ └── request.js # Axios 请求封装
│ │
│ ├── views/ # 页面组件
│ │ │
│ │ ├── Login.vue # 登录页
│ │ ├── Register.vue # 注册页
│ │ ├── Dashboard.vue # 仪表盘首页
│ │ │
│ │ ├── exam/ # 考试管理页面
│ │ │ ├── ExamList.vue # 考试列表
│ │ │ └── ExamDetail.vue # 考试详情
│ │ │
│ │ ├── registration/ # 报名管理页面
│ │ │ ├── RegistrationList.vue # 报名列表(管理员)
│ │ │ └── MyRegistration.vue # 我的报名(用户)
│ │ │
│ │ ├── notice/ # 通知管理页面
│ │ │ └── NoticeList.vue # 通知列表
│ │ │
│ │ ├── score/ # 成绩管理页面
│ │ │ ├── ScoreQuery.vue # 成绩查询
│ │ │ └── ScoreManage.vue # 成绩录入
│ │ │
│ │ └── user/ # 用户中心页面
│ │ └── UserProfile.vue # 个人中心
│ │
│ ├── App.vue # 根组件
│ └── main.js # 入口文件
│
├── index.html # HTML 模板
├── package.json # 依赖配置
└── vite.config.js # Vite 构建配置
文档文件
Exam_registration/
│
├── README.md # 项目说明文档
├── DEPLOYMENT.md # 部署指南
├── PROJECT_SUMMARY.md # 项目完成总结
├── QUICKSTART.md # 快速上手指南
├── API_DOCUMENTATION.md # API 接口文档
└── FILE_MANIFEST.md # 本文件 - 文件清单
📊 文件统计
后端文件
- Go 源文件: 13 个
- 配置文件: 2 个(config.yaml, go.mod)
- SQL 脚本: 1 个
- 总代码行数: 约 2000+ 行
前端文件
- Vue 组件: 12 个
- JavaScript 文件: 7 个
- 配置文件: 2 个(package.json, vite.config.js)
- 总代码行数: 约 2500+ 行
文档
- Markdown 文档: 6 个
- 总文档字数: 约 2 万+ 字
🔍 关键文件说明
后端核心文件
1. cmd/main.go (约 40 行)
- 应用程序入口点
- 初始化配置、数据库、路由
- 启动 HTTP 服务器
2. internal/model/models.go (约 150 行)
- 定义 5 个核心数据表结构
- User, Exam, ExamRegistration, ExamNotice, ExamScore
- 包含 GORM 钩子和关联关系
3. internal/middleware/auth.go (约 80 行)
- JWT Token 验证中间件
- CORS 跨域处理
- 用户信息注入上下文
4. internal/routes/routes.go (约 60 行)
- 统一注册所有 API 路由
- 区分公开路由和受保护路由
- 组织 Handler 依赖
前端核心文件
1. src/main.js (约 15 行)
- Vue 应用入口
- 注册全局插件(Pinia, Router, Antd)
2. src/router/index.js (约 80 行)
- 定义所有路由规则
- 配置路由守卫
- 实现登录验证
3. src/utils/request.js (约 50 行)
- 封装 Axios 请求
- 统一添加 Token
- 处理响应错误
4. src/layouts/BasicLayout.vue (约 150 行)
- 主框架布局
- 导航菜单
- 用户信息展示
📦 依赖清单
Go 依赖(go.mod)
require (
github.com/gin-gonic/gin v1.9.1 // Web 框架
gorm.io/gorm v1.25.5 // ORM 框架
gorm.io/driver/mysql v1.5.2 // MySQL 驱动
github.com/spf13/viper v1.18.2 // 配置管理
github.com/golang-jwt/jwt/v5 v5.2.0 // JWT 认证
github.com/google/uuid v1.5.0 // UUID 生成
golang.org/x/crypto // 密码加密
)
NPM 依赖(package.json)
dependencies: {
"vue": "^3.4.0", // Vue 框架
"vue-router": "^4.2.5", // 路由
"pinia": "^2.1.7", // 状态管理
"ant-design-vue": "^4.1.0", // UI 组件库
"dayjs": "^1.11.10", // 日期处理
"axios": "^1.6.2" // HTTP 客户端
}
devDependencies: {
"@vitejs/plugin-vue": "^5.0.0", // Vite 插件
"vite": "^5.0.8" // 构建工具
}
🎯 功能模块对应文件
用户管理模块
- 后端:
user_handler.go,user_service.go - 前端:
Login.vue,Register.vue,UserProfile.vue - API:
api/user.js
考试管理模块
- 后端:
exam_handler.go,exam_service.go - 前端:
ExamList.vue,ExamDetail.vue - API:
api/exam.js
报名管理模块
- 后端:
registration_handler.go,registration_service.go - 前端:
MyRegistration.vue,RegistrationList.vue - API:
api/registration.js
通知管理模块
- 后端:
notice_handler.go,notice_service.go - 前端:
NoticeList.vue - API:
api/notice.js
成绩管理模块
- 后端:
score_handler.go,score_service.go - 前端:
ScoreQuery.vue,ScoreManage.vue - API:
api/score.js
🗂️ 数据库表文件
database.sql 包含:
- user - 用户表(~50 行 SQL)
- exam - 考试表(~50 行 SQL)
- exam_registration - 报名表(~60 行 SQL)
- exam_notice - 通知表(~40 行 SQL)
- exam_score - 成绩表(~50 行 SQL)
- 默认数据 - admin 账号(1 条 INSERT)
📝 下一步可扩展文件
建议添加的文件
后端扩展
internal/
├── middleware/
│ ├── logger.go # 日志中间件
│ └── rate_limiter.go # 限流中间件
├── utils/
│ ├── excel.go # Excel 处理
│ ├── pdf.go # PDF 生成
│ └── email.go # 邮件发送
└── jobs/
└── scheduler.go # 定时任务
前端扩展
src/
├── components/
│ ├── TicketPrint.vue # 准考证打印
│ └── ChartView.vue # 图表组件
├── hooks/
│ ├── useTable.js # 表格 Hook
│ └── useForm.js # 表单 Hook
└── stores/
├── user.js # 用户 Store
└── exam.js # 考试 Store
✅ 文件完整性检查
运行以下命令检查文件是否完整:
# 检查后端文件
ls cmd/main.go
ls internal/handler/*.go
ls internal/service/*.go
ls internal/model/models.go
ls config/config.yaml
# 检查前端文件
ls frontend/src/main.js
ls frontend/src/views/*/*.vue
ls frontend/src/api/*.js
ls frontend/package.json
# 检查文档
ls README.md
ls DEPLOYMENT.md
ls QUICKSTART.md
🎉 总结
本项目包含:
- ✅ 13 个后端 Go 文件 - 完整的 RESTful API
- ✅ 19 个前端 Vue 文件 - 丰富的用户界面
- ✅ 6 个详细文档 - 完善的使用说明
- ✅ 1 个 SQL 脚本 - 数据库自动初始化
- ✅ 完整的依赖配置 - 开箱即用
总计约 50+ 个文件,4500+ 行代码,2 万+ 字文档
所有文件已按照最佳实践组织,结构清晰,易于维护和扩展!
文件版本: v1.0
最后更新: 2024-03-20