摘要
随着高等教育信息化的快速发展,学科竞赛作为培养学生创新能力和实践能力的重要途径,其管理方式逐渐从传统人工模式转向数字化、智能化。高校学科竞赛平台的建设旨在解决传统竞赛管理中信息不对称、流程繁琐、效率低下等问题。通过构建统一的线上平台,实现竞赛信息的集中发布、在线报名、作品提交、评审打分等功能,显著提升竞赛管理的透明度和效率。该平台的应用能够为高校师生提供便捷的竞赛参与渠道,同时为管理者提供数据支持和决策依据。
本平台采用 SpringBoot 作为后端框架,结合 Vue.js 前端框架,实现了前后端分离的现代化 Web 应用开发。后端使用 MySQL 数据库存储数据,通过 MyBatis-Plus 进行高效的数据操作,同时集成 Swagger 生成接口文档,便于开发协作。前端采用 Element UI 组件库,确保界面美观且交互友好。平台核心功能包括用户管理、竞赛发布、报名审核、作品提交、在线评审和成绩统计等模块,支持多角色(学生、教师、管理员)协同操作。系统通过 JWT 实现安全的身份认证与授权,保障数据隐私和操作安全。
数据表设计
竞赛信息数据表
竞赛信息数据表用于存储竞赛的基本信息,包括竞赛名称、发布时间、状态等属性。竞赛类型通过分类标识区分,封面图片以 URL 形式存储。结构表如表 3-1 所示。
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| contest_id | BIGINT | 竞赛 ID,主键 |
| contest_name | VARCHAR(100) | 竞赛名称 |
| contest_desc | TEXT | 竞赛详细描述 |
| start_time | DATETIME | 报名开始时间 |
| end_time | DATETIME | 报名截止时间 |
| cover_img | VARCHAR(255) | 封面图片 URL |
| contest_status | TINYINT | 状态(0 未开始/1 进行中/2 已结束) |
| create_by | VARCHAR(50) | 创建人 |
| create_time | DATETIME | 创建时间(自动生成) |
用户报名数据表
用户报名数据表记录学生参与竞赛的申请信息,包括报名时间、审核状态等。学生 ID 与竞赛 ID 关联,确保数据一致性。结构表如表 3-2 所示。
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| apply_id | BIGINT | 报名 ID,主键 |
| student_id | BIGINT | 学生 ID |
| contest_id | BIGINT | 关联竞赛 ID |
| apply_time | DATETIME | 报名时间(自动生成) |
| audit_status | TINYINT | 审核状态(0 待审核/1 通过/2 拒绝) |
| audit_comment | VARCHAR(200) | 审核意见 |
作品提交数据表
作品提交数据表存储学生提交的竞赛作品及相关信息,包括文件路径、提交时间等。评审分数通过浮点数字段记录。结构表如表 3-3 所示。


