云计算百科
云计算领域专业知识百科平台

基于SpringBoot大学生创新创业竞赛报名系统-附源码

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片!

摘要

本系统以 SpringBoot 为后端框架,MySQL 作为数据库,面向学生、指导老师、学院审核员、平台管理员四类用户,用于高校大创、互联网 + 等创新创业竞赛线上报名与流程管理。以往竞赛报名多依靠文档收集、微信群提交材料,信息杂乱、版本混乱、审核进度难以跟踪。本系统实现竞赛发布、项目组队、在线填报申报书、材料上传、分级审核、项目修改、立项公示、获奖登记、数据汇总导出等功能。学生可创建项目、邀请队友、选择指导教师、提交申报材料;指导老师查看项目并给出意见;学院审核人员对本院项目进行初审,驳回不符合要求的项目;管理员维护竞赛批次、设置申报时间、管理评审专家、导出项目清单与统计报表。系统规范竞赛申报流程,实现申报、审核、公示全流程线上化,减轻教务人员汇总统计压力,方便学校统一管理各类创新创业竞赛项目。

技术栈

后端使用 SpringBoot + MyBatis-Plus + MySQL,Redis 缓存竞赛开放状态、热门项目信息,JWT 完成用户身份与权限校验;前端采用 Vue3 + Element Plus,ECharts 展示各学院申报数量、项目类型分布统计;文件存储用于申报书、计划书、佐证材料上传;EasyExcel 实现学生、项目信息批量导入导出;全局异常处理,操作日志留存审核记录;支持申报时间拦截,不在报名时段无法提交项目。系统分为学生端、教师审核端、学院审核端、管理员后台。

系统设计

系统采用分层架构,划分为竞赛管理、项目申报、组队管理、分级审核、公示管理、统计导出六大模块。竞赛模块由管理员创建竞赛批次,设置报名起止时间、竞赛类型、申报要求;项目申报模块支持学生新建项目、填写项目名称、类别、简介,添加组员与指导老师,上传申报材料;组队模块支持队长发送邀请,队员确认加入,队长拥有项目编辑提交权限;审核流程:提交项目→指导老师审核→学院初审→管理员汇总公示,审核状态支持通过、驳回并填写修改意见;公示模块用于发布立项名单、获奖信息;统计模块按学院、项目类型、参赛年份进行数据统计。角色权限相互隔离,学生仅可操作本人参与项目,指导老师只能审核自己指导的项目,学院审核员只能处理本院项目,管理员拥有全部配置权限。

具体实现截图

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

核心代码

@RestController
@RequestMapping("/competition")
public class ProjectController {
@Autowired
private IProjectService projectService;
@Autowired
private IAuditRecordService auditRecordService;

// 提交竞赛申报项目
@PostMapping("/submit")
public Result submitProject(@RequestBody ProjectDTO dto) {
boolean flag = projectService.submitProject(dto);
return flag ? Result.success("项目申报成功,等待指导老师审核") : Result.error("不在报名时间内或项目信息不全");
}

// 审核项目
@PostMapping("/audit")
public Result auditProject(@RequestParam Long projectId, @RequestParam Integer auditStatus, String remark) {
boolean res = auditRecordService.audit(projectId, auditStatus, remark);
return res ? Result.success("审核操作完成") : Result.error("当前项目状态不允许审核");
}

// 查询我的项目列表
@GetMapping("/myProject")
public Result getMyProject(@RequestParam Long userId) {
List<ProjectVO> list = projectService.listMyProject(userId);
return Result.success(list);
}
}

数据库设计

student 学生表:学号、姓名、学院、专业、班级、手机号;teacher 教师表:工号、姓名、所属学院、职称;competition 竞赛表:竞赛名称、竞赛类型、报名开始时间、结束时间、申报要求、状态;project 项目表:项目编号、项目名称、项目类型、队长 id、指导老师 id、简介、申报书地址、项目状态;project_member 项目成员表:项目 id、学生 id、角色(队长 / 队员);audit_record 审核记录表:项目 id、审核人 id、审核阶段、审核状态、审核意见、审核时间;publicity 公示表:竞赛 id、公示标题、公示内容、发布时间;sys_user 用户表:账号、密码、角色、状态。对竞赛 id、队长 id、学号建立索引,每一次审核都留下记录,方便追溯修改历史。

系统测试

测试包含单元测试与黑盒功能测试。单元测试重点校验报名时间拦截、项目状态流转、组队邀请逻辑;黑盒模拟完整业务流程:管理员新建竞赛并开放报名,学生创建项目、添加组员、上传申报材料提交,指导老师审核,学院审核,通过后进入公示;项目被驳回时学生可修改材料重新提交。同时测试边界场景:报名截止后禁止提交项目、队员重复加入同一项目、越权审核其他学院项目、队长退出导致项目异常等。经过测试,项目申报、组队、多级审核、材料上传、导出统计功能运行稳定,流程流转准确,满足高校创新创业竞赛线上报名管理需求。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 基于SpringBoot大学生创新创业竞赛报名系统-附源码
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!