温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片!
课题介绍
高校各类科创竞赛种类繁多、通知分散,学生很难及时获取竞赛通知、组队信息,老师也不方便统一管理竞赛报名、项目申报、作品审核等信息,信息传递效率低。本课题设计并实现基于 SpringBoot3 的科创竞赛信息平台,面向高校学生、指导老师、管理员提供竞赛发布、组队招募、项目申报、作品提交、评审管理一体化服务。
本系统的研究意义在于集中汇聚各类科创竞赛资源,打通竞赛通知发布、学生组队、在线报名、作品上传、评审打分的业务链路,降低学生搜集竞赛信息的成本,方便老师指导学生参赛,帮助高校规范化管理科创竞赛,提升科创竞赛组织管理效率。
系统主要研究内容包含竞赛信息管理、竞赛报名、组队招募、项目申报、作品提交、在线评审、获奖公示、留言咨询、数据统计等模块,实现科创竞赛全流程线上管理。
技术介绍
后端采用 SpringBoot3 框架开发,依托 SpringBoot 自动配置简化项目搭建,SpringMVC 负责接口请求接收与响应,MyBatis-Plus 作为持久层框架,简化 MySQL 数据库的增删改查操作,提升开发效率。
前端采用 Vue3 + Element Plus,Axios 完成前后端接口交互,支持文件上传、富文本编辑、分页查询、评审打分;数据库 MySQL 存储竞赛信息、报名记录、组队信息、项目作品、评审记录、用户信息等业务数据。
项目采用前后端分离架构,后端提供 RESTful 风格接口,支持作品文件上传、状态流转、评审打分;统一封装返回结果类,规范接口返回格式,利用 ECharts 实现参赛人数、竞赛类别等数据可视化统计,适配高校科创竞赛管理场景。
系统截图












文档截图

系统分析
系统参与者分为管理员、指导老师、学生三类角色。管理员负责竞赛分类维护、竞赛信息审核、用户管理、获奖公示发布、查看整体统计数据;指导老师可以发布竞赛、审核学生报名项目、在线评审作品、给出评审意见;学生可以浏览竞赛列表、查看竞赛详情、发布组队招募、组队报名、提交项目作品、查看评审结果与获奖公示。
功能性需求:用户注册登录、竞赛信息发布与审核、竞赛报名、组队招募、项目申报、作品上传、在线评审打分、获奖公示、留言咨询、参赛数据统计;非功能性需求:权限隔离,学生只能管理自己的项目和组队信息;文件上传稳定;竞赛报名时间限制校验;评审记录可留存追溯;页面操作简洁。
业务流程:管理员或者老师发布竞赛信息,设置报名起止时间;学生浏览竞赛,查看竞赛要求,可以发布组队招募或者加入已有队伍;队伍提交项目申报材料,等待老师审核;申报通过后上传参赛作品;评审老师在线查看作品,打分填写评语;评审结束后管理员发布获奖公示,学生查看结果。
系统设计
架构设计:前后端分离架构,Vue3 前端负责页面交互、文件上传、评审操作;SpringBoot3 后端处理业务逻辑、报名校验、评审流程,MyBatis-Plus 操作 MySQL 完成数据持久化。
数据库核心表设计:用户表 user(id,username,password,role,name,phone,create_time,status);竞赛表 competition(id,title,content,start_time,end_time,audit_status,create_time);组队表 team(id,competition_id,team_name,leader_id,require_desc,create_time);报名表 enroll(id,team_id,competition_id,project_name,status,create_time);作品表 work(id,enroll_id,file_url,desc,submit_time);评审表 review(id,work_id,teacher_id,score,comment,create_time);公示表 publicity(id,title,content,publish_time)。
功能模块划分:用户权限模块、竞赛管理模块、组队招募模块、竞赛报名模块、作品提交模块、在线评审模块、获奖公示模块、留言咨询模块、数据统计模块。
核心代码
@RestController
@RequestMapping("/competition")
public class CompetitionController {
@Autowired
private CompetitionService competitionService;
@Autowired
private EnrollService enrollService;
@Autowired
private ReviewService reviewService;
// 查询竞赛列表
@GetMapping("/list")
public Result<Page<Competition>> getCompetitionList(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
@RequestParam(required = false) String title) {
Page<Competition> page = new Page<>(pageNum, pageSize);
LambdaQueryWrapper<Competition> wrapper = Wrappers.lambdaQuery();
wrapper.eq(Competition::getAuditStatus,"已通过");
if(StrUtil.isNotBlank(title)){
wrapper.like(Competition::getTitle,title);
}
wrapper.orderByDesc(Competition::getCreateTime);
Page<Competition> competitionPage = competitionService.page(page, wrapper);
return Result.success(competitionPage);
}
// 提交竞赛报名
@PostMapping("/enroll")
public Result<?> submitEnroll(@RequestBody Enroll enroll) {
enroll.setStatus("待审核");
boolean save = enrollService.save(enroll);
return save ? Result.success("报名提交成功,请等待老师审核") : Result.error("报名提交失败");
}
// 作品评审打分
@PostMapping("/review")
public Result<?> addReview(@RequestBody Review review) {
boolean save = reviewService.save(review);
return save ? Result.success("评审完成") : Result.error("评审提交失败");
}
}
系统测试
本系统采用黑盒功能测试,围绕用户登录、竞赛发布审核、组队招募、竞赛报名、作品提交、在线评审、获奖公示等核心业务编写测试用例,验证各个模块功能是否符合需求,校验报名时间限制、权限控制、文件上传、评审打分等逻辑。
测试结果:全部核心功能测试用例执行通过,不同角色权限隔离正常,竞赛发布审核流程正常,学生组队报名、作品上传功能可用,老师可以正常评审打分,获奖公示展示正常,异常输入场景系统给出友好提示,无严重 BUG,系统达到预期设计目标。
结论
本课题完成了基于 SpringBoot3 的科创竞赛信息平台的设计与实现,实现竞赛信息发布、组队招募、在线报名、作品提交、评审打分、获奖公示等功能,满足高校科创竞赛信息发布、项目申报、线上评审的业务需求,方便学生参赛、老师组织评审。系统采用前后端分离架构,代码结构清晰,扩展性良好。
当前系统仅实现基础竞赛管理流程,后续可以增加消息通知、项目进度跟踪、证书在线下载、竞赛推荐等功能,进一步完善平台服务能力。