高校竞赛活动信息平台
演示视频
https://www.bilibili.com/video/BV1psBYBfEsP/
角色
管理员、教师、学生
技术
Spring Boot、MySQL、MyBatis-Plus、Redis、Spring Security、JWT、Netty-SocketIO、Java 8
核心功能
本系统是一个高校竞赛活动信息平台,旨在为高校师生提供一个集竞赛和活动信息发布、报名、组队、过程管理、用户认证和数据统计于一体的一站式服务平台。核心价值在于规范化、信息化地管理校园内的各类竞赛和活动,提升师生参与的便捷性和管理效率。
功能介绍
管理员
- 用户管理:管理系统中的所有用户(学生、教师),包括查看、修改、封禁等操作。
- 活动管理:审核、发布、修改和下架各类校园活动,管理活动文件和报名情况。
- 竞赛管理:审核、发布、修改和下架各类学科竞赛,管理竞赛文件和报名情况。
- 内容管理:发布和管理系统新闻、公告等信息。
- 数据统计:查看系统运行数据,如用户数量、活动/竞赛参与情况等。
教师
- 身份认证:以教师身份注册并登录系统。
- 活动/竞赛发起:作为活动或竞赛的发起人,在平台发布和管理自己组织的活动和竞赛。
- 团队管理:管理自己发起的活动或竞赛中的团队报名和成员信息。
- 个人信息管理:维护和更新个人资料、头像等信息。
学生
- 注册登录:注册成为系统用户并登录。
- 信息浏览:浏览和搜索最新的竞赛和活动信息。
- 报名参与:报名参加感兴趣的活动或竞赛,支持个人报名和组队报名。
- 团队管理:创建、加入或退出团队,管理团队成员和信息(针对组队类项目)。
- 消息通知:接收系统消息、活动/竞赛通知等。
- 个人信息管理:维护和更新个人资料、头像、个性签名等信息。
数据字典
活动 (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 |
加入时间 |
部分截图




























