init
This commit is contained in:
@@ -0,0 +1,375 @@
|
||||
# 📁 项目文件清单
|
||||
|
||||
## 后端文件(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)
|
||||
|
||||
```go
|
||||
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)
|
||||
|
||||
```javascript
|
||||
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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ 文件完整性检查
|
||||
|
||||
运行以下命令检查文件是否完整:
|
||||
|
||||
```bash
|
||||
# 检查后端文件
|
||||
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
|
||||
Reference in New Issue
Block a user