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.
Files
Exam_registration/FILE_MANIFEST.md
2026-03-20 21:41:00 +08:00

11 KiB
Raw Permalink Blame History

📁 项目文件清单

后端文件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 包含:

  1. user - 用户表(~50 行 SQL
  2. exam - 考试表(~50 行 SQL
  3. exam_registration - 报名表(~60 行 SQL
  4. exam_notice - 通知表(~40 行 SQL
  5. exam_score - 成绩表(~50 行 SQL
  6. 默认数据 - 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