基于SpringBoot+Vue.js的高校竞赛活动信息平台

高校竞赛活动信息平台

演示视频

https://www.bilibili.com/video/BV1psBYBfEsP/

角色

管理员、教师、学生

技术

Spring Boot、MySQL、MyBatis-Plus、Redis、Spring Security、JWT、Netty-SocketIO、Java 8

核心功能

本系统是一个高校竞赛活动信息平台,旨在为高校师生提供一个集竞赛和活动信息发布、报名、组队、过程管理、用户认证和数据统计于一体的一站式服务平台。核心价值在于规范化、信息化地管理校园内的各类竞赛和活动,提升师生参与的便捷性和管理效率。

功能介绍

管理员

  1. 用户管理:管理系统中的所有用户(学生、教师),包括查看、修改、封禁等操作。
  2. 活动管理:审核、发布、修改和下架各类校园活动,管理活动文件和报名情况。
  3. 竞赛管理:审核、发布、修改和下架各类学科竞赛,管理竞赛文件和报名情况。
  4. 内容管理:发布和管理系统新闻、公告等信息。
  5. 数据统计:查看系统运行数据,如用户数量、活动/竞赛参与情况等。

教师

  1. 身份认证:以教师身份注册并登录系统。
  2. 活动/竞赛发起:作为活动或竞赛的发起人,在平台发布和管理自己组织的活动和竞赛。
  3. 团队管理:管理自己发起的活动或竞赛中的团队报名和成员信息。
  4. 个人信息管理:维护和更新个人资料、头像等信息。

学生

  1. 注册登录:注册成为系统用户并登录。
  2. 信息浏览:浏览和搜索最新的竞赛和活动信息。
  3. 报名参与:报名参加感兴趣的活动或竞赛,支持个人报名和组队报名。
  4. 团队管理:创建、加入或退出团队,管理团队成员和信息(针对组队类项目)。
  5. 消息通知:接收系统消息、活动/竞赛通知等。
  6. 个人信息管理:维护和更新个人资料、头像、个性签名等信息。

数据字典

活动 (activity)

字段名 类型 备注
activity_id int 活动id
activity_name varchar(255) 活动名称
activity_intro varchar(255) 活动简介
activity_cover varchar(255) 活动封面
activity_type tinyint 类型 0团建 1聚会 2运动 3社团 4户外 5游戏
activity_joined_is_open tinyint 活动报名是否开启,0关闭,1开启
activity_status tinyint 状态,0已结束,1进行中
activity_stage text 步骤(JSON化的步骤对象的数组)
activity_information_list text 内容(JSON化的内容对象的数组)
is_team_up tinyint 是否需要组队参加 0个人 1组队
sign_up_min_team_member_num int 队伍最少人数
sign_up_max_team_member_num int 队伍最多人数
activity_audience tinyint 受众,0面向全校,1面向学院、2面向专业、3面向个人
activity_audience_name varchar(255) 具体受众
activity_joined_num int 已报名数量
activity_stage_now tinyint 当前步骤
activity_initiator_id int 发起人id
is_online tinyint 是否线上 0线下 1线上
activity_place varchar(255) 地点
activity_begin_time timestamp 开始时间
activity_end_time timestamp 结束时间
activity_points int 活动加分
activity_publish_date timestamp 活动发布时间

活动文件 (activity_file)

字段名 类型 备注
activity_file_id int 活动文件id
activity_id int 活动id
file_name varchar(255) 文件名
file_url varchar(255) 文件url
file_type tinyint 文件类型 0报名表 1获奖名单 2入选名单 3其他
file_upload_date timestamp 文件上传时间

公告 (announcement)

字段名 类型 备注
announcement_id int 公告id
announcement_title varchar(255) 公告标题
announcement_content text 公告内容
announcement_publish_date timestamp 公告发布时间

文章 (article)

字段名 类型 备注
article_id int 文章id
article_title varchar(255) 文章标题
article_content text 文章内容
article_cover varchar(255) 文章封面
article_author_id int 文章作者id
article_publish_date timestamp 文章发布时间
article_view_num int 文章浏览量
article_comment_num int 文章评论数
article_like_num int 文章点赞数
article_status tinyint 状态 0草稿 1已发布

文章评论 (article_comment)

字段名 类型 备注
article_comment_id int 文章评论id
article_id int 文章id
user_id int 评论用户id
comment_content varchar(255) 评论内容
comment_date timestamp 评论时间
parent_comment_id int 父评论id(用于回复)

竞赛 (competition)

字段名 类型 备注
competition_id int 竞赛id
competition_name varchar(255) 竞赛名称
competition_intro varchar(255) 竞赛简介
competition_cover varchar(255) 竞赛封面
competition_type tinyint 类型 0学科竞赛 1创新创业 2技能竞赛 3其他
competition_joined_is_open tinyint 竞赛报名是否开启,0关闭,1开启
competition_status tinyint 状态,0已结束,1进行中
competition_stage text 步骤(JSON化的步骤对象的数组)
competition_information_list text 内容(JSON化的内容对象的数组)
is_team_up tinyint 是否需要组队参加 0个人 1组队
sign_up_min_team_member_num int 队伍最少人数
sign_up_max_team_member_num int 队伍最多人数
competition_audience tinyint 受众,0面向全校,1面向学院、2面向专业、3面向个人
competition_audience_name varchar(255) 具体受众
competition_joined_num int 已报名数量
competition_stage_now tinyint 当前步骤
competition_initiator_id int 发起人id
is_online tinyint 是否线上 0线下 1线上
competition_place varchar(255) 地点
competition_begin_time timestamp 开始时间
competition_end_time timestamp 结束时间
competition_points int 竞赛加分
competition_publish_date timestamp 竞赛发布时间

竞赛文件 (competition_file)

字段名 类型 备注
competition_file_id int 竞赛文件id
competition_id int 竞赛id
file_name varchar(255) 文件名
file_url varchar(255) 文件url
file_type tinyint 文件类型 0报名表 1获奖名单 2入选名单 3其他
file_upload_date timestamp 文件上传时间

菜单 (menu)

字段名 类型 备注
menu_id int 菜单id
menu_name varchar(255) 菜单名称
menu_url varchar(255) 菜单url
menu_icon varchar(255) 菜单图标
menu_type tinyint 菜单类型 0活动 1竞赛

消息 (message)

字段名 类型 备注
message_id int 消息id
message_sender_id int 消息发送者id
message_receiver_id int 消息接收者id
message_content text 消息内容
message_send_date timestamp 消息发送时间
message_status tinyint 消息状态 0未读 1已读

新闻 (news)

字段名 类型 备注
news_id int 新闻id
news_title varchar(255) 新闻标题
news_content text 新闻内容
news_cover varchar(255) 新闻封面
news_publish_date timestamp 新闻发布时间
news_view_num int 新闻浏览量

团队 (team)

字段名 类型 备注
team_id int 团队id
team_logo varchar(255) 团队logo
team_name varchar(255) 团队名称
team_intro varchar(255) 团队简介
team_create_date timestamp 团队创建时间
team_captain_id int 团队队长id
team_captain_name varchar(255) 团队队长名称
team_captain_intro varchar(255) 团队队长简介
team_max_member_num int 团队最大人数
team_now_member_num int 团队当前人数
team_points double 团队积分
team_tags varchar(255) 团队标签(JSON数组)
is_open tinyint 是否开放 0不开放 1开放
team_college varchar(255) 学院(可为空,即跨学院)
team_specialty varchar(255) 专业(可为空,即跨专业)
team_invite_code varchar(255) 邀请码

团队活动关联 (team_activity)

字段名 类型 备注
team_id int 团队id
activity_id int 活动id
status tinyint 状态

团队竞赛关联 (team_competition)

字段名 类型 备注
team_id int 团队id
competition_id int 竞赛id
status tinyint 状态

用户 (user)

字段名 类型 备注
id int 用户id
phone varchar(11) 手机号
user_name varchar(50) 昵称
user_head varchar(255) 头像
sex tinyint 性别,0女,1男
intro varchar(50) 个性签名
password varchar(255) 密码
real_name varchar(10) 真实姓名
identity tinyint 身份,0学生,1教师,2管理员
num varchar(255) 学号或工号
college varchar(10) 学院
specialty varchar(20) 专业
clazz varchar(20) 班级
email varchar(50) 电子邮箱
reg_date timestamp 注册时间
status tinyint 账号状态 0注销 1正常 2封禁

用户活动关联 (user_activity)

字段名 类型 备注
user_id int 用户id
activity_id int 活动id
status tinyint 状态

用户竞赛关联 (user_competition)

字段名 类型 备注
user_id int 用户id
competition_id int 竞赛id
status tinyint 状态

用户团队关联 (user_team)

字段名 类型 备注
user_id int 用户id
team_id int 团队id
status tinyint 状态 0申请中 1已加入 2已退出 3已拒绝
is_captain tinyint 是否是队长 0否 1是
join_date timestamp 加入时间

部分截图





























相关推荐
我是小邵2 小时前
【踩坑实录】一次 H5 页面在 PC 端的滚动条与轮播图修复全过程(Vue + Vant)
前端·javascript·vue.js
踏浪无痕2 小时前
JobFlow调度的难题:超时、补偿与漏调
后端·面试·架构
Postkarte不想说话2 小时前
ElasticSearch操作系统环境设置
后端
i听风逝夜2 小时前
Gradle秒级打包部署SpringBoot项目,行云流水
后端
梦6503 小时前
Vue 实现动态路由
前端·javascript·vue.js
hgz07103 小时前
慢SQL分析与优化实战
mysql
AI大模型3 小时前
24页 大语言模型(LLM)入门指南:从核心定义、训练三步法到 Llama 3.1 实操部署
程序员·llm·agent
丶乘风破浪丶3 小时前
Vue项目中判断相同请求的实现方案:从原理到实战
前端·javascript·vue.js