竞赛小组服务平台项目设计
开发中……
需求分析
在竞赛小组成员选拔的过程中,需要统计小组成员的学习状况,但是使用人工每天统计各个同学的学习进度,耗时耗力,所以计划开发本系统进行辅助统计,在次基础上,本系统加入了资源管理、参赛情况统计等功能模块
功能分析
用户模块
- 普通用户
- 用户登录
- 用户注册
- 用户信息修改
- 报名参加不同的竞赛小组类别
- 管理员
- 查看所有的用户
- 分类查询用户信息
- 统计不同类别的人数
- 学习进度统计功能
- 增加竞赛小组开设的类别
- 删除类别
- 修改类别名称
学习进度统计模块
- 普通用户
- 上传学习进度及笔记资料(每天限定一次)
- 查看自己的上传记录
- 管理员
- 创建不同的类别
- 查看不同类别的成员的提交记录
- 统计各个用户的提交次数
- 批量下载上传的文件
资源管理
资源包括:各项比赛优秀的参赛作品,软件的安装包,平时自己网上看到的优秀文章、学习路线等
- 普通用户
- 上传资源
- 根据不同的条件查询资源
- 管理员
- 选出优秀的资源
- 删除资源
参赛情况统计模块
-
普通用户
上传自己的参赛记录
修改参赛记录信息 -
管理员
-
查看所有用户的参赛信息
-
根据不同的条件查看用户的参赛信息
-
修改用户的参赛信息
-
数据库表设计
类别表
-
id
-
名称
-
创建时间
- 修改时间
-
是否删除
-
建表语句
CREATE TABLE category
(
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '类别ID',
name VARCHAR(50) NOT NULL COMMENT '类别名称',
createdTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updatedTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
isDelete TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
PRIMARY KEY (id)
) COMMENT '类别表';
用户表
- id
- 姓名
- 头像
- 邮箱
- 学校
- 年级
- 班级
- 联系方式
- 权限等级
- 所属类别id
- 创建时间
- 修改时间
- 是否删除
create table users
(
id bigint auto_increment comment '用户id'
primary key,
name varchar(50) not null comment '用户名',
avatar varchar(255) null comment '用户头像',
email varchar(255) not null comment '用户邮箱',
tel varchar(50) null comment '用户联系方式',
permissionLevel int not null comment '权限等级',
categoryId bigint null comment '所属类别id',
createdTime timestamp default CURRENT_TIMESTAMP not null comment '创建时间',
updatedTime timestamp default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '修改时间',
isDelete tinyint(1) default 0 not null comment '是否删除',
password varchar(255) null comment '密码',
school varchar(20) null comment '学校',
grade varchar(5) null comment '年级 2022 2023',
lesson varchar(30) null comment '班级'
)
comment '用户表' charset = utf8mb4;
提交记录表
- id
- 学习内容
- 文件地址
- 创建时间
- 修改时间
- 是否删除
CREATE TABLE `studyRecords`
(
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '记录ID',
`learningContent` VARCHAR(255) NOT NULL COMMENT '学习内容',
`fileUrl` VARCHAR(1024) DEFAULT NULL COMMENT '文件地址',
createdTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updatedTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
isDelete TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
PRIMARY KEY (`id`)
) COMMENT ='学习记录表';
标签表
- id
- 标签名称
- 创建时间
- 修改时间
- 是否删除
create table label
(
id bigint primary key auto_increment comment 'id',
name varchar(255) comment '标签名称',
createdTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updatedTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
isDelete TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除'
) comment '标签表';
资源表
- id
- 主题
- 详细内容
- 标签列表
- 是否文件
- 文件地址
- 用户id
- 创建时间
- 修改时间
- 是否删除
create table resourse(
id bigint comment 'id',
title varchar(100) comment '资源题目',
content varchar(5000) comment '资源详细内容',
lablelist varchar(255) comment '标签列表',
statu tinyint comment '0-不是文件 1-是文件',
fileurllist varchar(1024) comment '文件地址列表',
userid bigint comment '上传资源的用户id',
createdTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updatedTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
isDelete TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除'
);
竞赛队伍成员表
- id
- 用户id
- 姓名
- 团队id
- 项目名称
- 西北
- 状态
- 创建时间
- 修改时间
- 是否删除
create table teampreson
(
id bigint primary key auto_increment comment 'id',
userid bigint comment '用户id',
username varchar(255) comment '姓名',
teamid bigint comment '队伍id',
teamname varchar(255) comment '项目名称',
department varchar(255) comment '系别',
statu int comment '0——竞赛小组成员 1——非竞赛小组成员',
createTime timestamp default CURRENT_TIMESTAMP comment '创建时间',
updateTime timestamp default CURRENT_TIMESTAMP comment '更新时间',
isDelete int default 0 comment '是否删除'
) comment '队伍成员表';
竞赛表
- id
- 竞赛名称
- 创建时间
- 修改时间
- 是否删除
create table commpition
(
id bigint primary key auto_increment comment 'id',
name varchar(255) not null comment '竞赛名称',
createTime timestamp default CURRENT_TIMESTAMP comment '创建时间',
updateTime timestamp default CURRENT_TIMESTAMP comment '更新时间',
isDelete int default 0 comment '是否删除'
) comment '竞赛表';
小组表
- id
- 队长id
- 竞赛id
- 项目名称
- 指导教师
- 项目进度
- 队长姓名
- 创建时间
- 修改时间
- 是否删除
create table team
(
id bigint primary key auto_increment comment 'id',
queue bigint not null comment '队长id',
name varchar(255) not null comment '项目名称',
queueName varchar(255) not null comment '队长姓名',
compitionId bigint not null comment '竞赛id',
createTime timestamp default CURRENT_TIMESTAMP comment '创建时间',
updateTime timestamp default CURRENT_TIMESTAMP comment '更新时间',
isDelete int default 0 comment '是否删除'
) comment '队伍成员表';
成员奖项记录表
- id
- 成员id
- 奖项名称
- 关联竞赛id
- 状态 (0——没有证明材料;1——有证明材料)
- 获奖图片
- 创建时间
- 修改时间
- 是否删除
create table awards(
id bigint primary key auto_increment comment 'id',
userid bigint comment '成员id',
awardname varchar(255) not null comment '奖项名称',
compitionId bigint not null comment '关联竞赛id',
statu int not null default 0 comment '0——没有证明材料;1——有证明材料)',
imageurl varchar(1024) comment '获奖图片',
createTime timestamp default CURRENT_TIMESTAMP comment '创建时间',
updateTime timestamp default CURRENT_TIMESTAMP comment '更新时间',
isDelete int default 0 comment '是否删除'
) comment '奖项表';
前端页面
- 普通用户
- 登录页面√
- 上传学习记录√
- 资源页面
- 资源详情页
- 团队申报页面
- 我的学习记录
- 我上传的资源
- 我的参赛团队
- 参赛团队详情页面
- 我的获奖记录
- 获奖记录上传页面
- 管理员
- 管理学习记录
- 管理资源
- 管理团队
- 管理获奖记录
开发周期
2023.4.7
- 完成本项目的功能设计√
- 进行数据库表的建立√
- 初始化后端项目√
- 完成竞赛小组开设类别的功能√
2023.4.10
- 开发完成用户模块的相关功能(7个接口)
- 普通用户
- 用户登录√
- 用户注册√
- 用户信息修改√
- 报名参加不同的竞赛小组类别√
- 管理员
- 查看所有的用户√
- 分类查询用户信息√
- 统计不同类别的人数√
2023.04.13
- 增加学习记录√
- 修改学习记录√
- 删除学习记录√
- 对createtime与uptetime添加自动填充√
- 查询学习记录
- 根据当前登录用户 √
- 管理员查询指定用户/分页查询 √
- 统计用户提交次数排行(时间区间)
- 请求参数:时间区间 starttime endtime
- 年级列表:或者的关系
- 请求参数:时间区间 starttime endtime
2023.4.14
- 完成资源标签与资源的数据库表的设计√
- 资源标签模块
- 增加资源标签√
- 修改资源标签√
- 删除资源标签√
- 查询所有的资源标签√
- 资源模块
- 增加资源√
- 修改资源√
- 删除资源√
- 分页查询资源√
- 完成接口的测试
- 增加资源标签√
- 修改资源标签√
- 删除资源标签√
- 查询所有的资源标签√
- 增加资源√
- 修改资源√
- 删除资源√
- 分页查询资源√
2023.04.16
- 竞赛表的建立√
- 小组表的建立√
- 成员参赛记录表的建立√
- 竞赛的增删改查√
- 小组的增删改查√
- 创建比赛小组√
- 向比赛小组中添加内部队员√
- 向比赛小组中添加外部队员√
- 将比赛小组删除队员√
- 删除比赛小组√
- 修改比赛小组信息√
- 根据比赛id查询参加的团队√
- 根据团队id查询队伍信息
2023.04.17
-
成员参赛记录的增删改查√
-
初始化前端项目√
-
登录页面√
-
主页
-
普通用户
- 上传学习进度
-
2023.04.18任务
-
资源页面
-
-
资源详情页
- 修改后端,新建资源表,在resourse表中只设置列表id√
- 显示标题,内容,资源名称,资源地址
-
上传资源的页面
-
团队申报页面
- 创建团队
- 加入内部队员
- 加入外部队员
2023.04.19
- 完成添加外部队员页面与后端的对接
- 用户信息的修改
- bug记录
- 当点击用户头像进行修改时,头像的url地址数据库修改完成后,存取进入缓存,但是前端无法获取到最新的缓存数据,点击修改按钮或者重新登录后才能获取到(最后解决)
- bug记录
- 密码修改的后端功能
- 发送邮件验证码
- 修改密码
2023.04.20
- 完成修改密码的功能
2023.04.21
-
我的资源页面
-
我的奖项页面
- 完成了没有登录不能访问页面的权限校验
2023.04.22
- 完成奖项的上传
- 我的团队页面
- 删除功能
2023.04.23
- 奖项登记页面
2023.04.24计划
- 查询我创建的团队
- 修改我的团队信息
暂时搁置…