基于 SpringBoot + Vue3 的校园体育赛事管理系统,面向高校体育管理部门、教师和学生,实现赛事报名、赛程编排、成绩统计、资讯发布等功能。
- 框架: Spring Boot 3.2.0
- 持久层: MyBatis-Plus 3.5.5
- 安全: Spring Security 6 + JWT
- 数据库: MySQL 8.0
- 文档: Knife4j (Swagger)
- 工具: Lombok, Hutool
- 框架: Vue 3.4 + TypeScript
- UI组件: Element Plus 2.4
- 构建工具: Vite 5
- 状态管理: Pinia
- 图表: ECharts 5
- HTTP: Axios
- 管理员(ADMIN): 系统全部功能
- 教师(TEACHER): 成绩录入、赛程查看、报名审核
- 学生(STUDENT): 赛事浏览、报名、成绩查询
- 赛事管理: 赛事CRUD、发布/取消、状态管理
- 运动项目: 项目配置、分类管理
- 报名管理: 在线报名、审核流程
- 赛程编排: 赛程安排、场地分配
- 成绩管理: 成绩录入、排名计算、Excel导入导出
- 统计分析: ECharts可视化、数据报表
- 资讯发布: 公告/新闻管理
- JDK 17+
- Node.js 18+
- MySQL 8.0+
- Maven 3.8+
-- 创建数据库
CREATE DATABASE IF NOT EXISTS sports_events DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 导入表结构
mysql -u root -p sports_events < docs/04-DB/schema.sql
-- 导入测试数据
mysql -u root -p sports_events < backend/src/main/resources/db/data.sqlcd backend
# 修改数据库配置 (application.yml)
# spring.datasource.url, username, password
# 编译打包
mvn clean package -DskipTests
# 运行
java -jar target/sports-events-1.0.0.jar
# 或使用Maven直接运行
mvn spring-boot:run后端启动后访问:
cd frontend
# 安装依赖
npm install
# 开发模式运行
npm run dev
# 生产构建
npm run build前端启动后访问: http://localhost:5173
| 角色 | 用户名 | 密码 |
|---|---|---|
| 管理员 | admin | 123456 |
| 教师 | teacher | 123456 |
| 学生 | student | 123456 |
Sports-Events/
├── backend/ # 后端项目
│ ├── src/main/java/com/sports/
│ │ ├── common/ # 通用模块
│ │ │ ├── config/ # 配置类
│ │ │ ├── entity/ # 基础实体
│ │ │ ├── exception/ # 异常处理
│ │ │ └── result/ # 统一响应
│ │ ├── modules/ # 业务模块
│ │ │ ├── auth/ # 认证模块
│ │ │ ├── event/ # 赛事模块
│ │ │ ├── sportitem/ # 运动项目
│ │ │ ├── registration/ # 报名模块
│ │ │ ├── schedule/ # 赛程模块
│ │ │ ├── result/ # 成绩模块
│ │ │ ├── news/ # 资讯模块
│ │ │ ├── statistics/ # 统计模块
│ │ │ └── system/ # 系统模块
│ │ └── security/ # 安全模块
│ └── src/main/resources/
│ ├── application.yml # 应用配置
│ └── db/ # 数据库脚本
├── frontend/ # 前端项目
│ ├── src/
│ │ ├── api/ # API接口
│ │ ├── layout/ # 布局组件
│ │ ├── router/ # 路由配置
│ │ ├── stores/ # 状态管理
│ │ ├── styles/ # 全局样式
│ │ ├── types/ # 类型定义
│ │ ├── utils/ # 工具函数
│ │ └── views/ # 页面组件
│ └── vite.config.ts # Vite配置
└── docs/ # 项目文档
├── 00-Index.md # 文档索引
├── 01-Requirements/ # 需求文档
├── 02-Architecture/ # 架构设计
├── 03-API/ # API文档
├── 04-DB/ # 数据库设计
├── 05-Frontend/ # 前端设计
└── 07-Plan/ # 项目计划
POST /api/auth/login- 用户登录POST /api/auth/register- 用户注册GET /api/auth/info- 获取用户信息POST /api/auth/logout- 退出登录
GET /api/events- 赛事列表POST /api/events- 创建赛事GET /api/events/{id}- 赛事详情PUT /api/events/{id}- 更新赛事DELETE /api/events/{id}- 删除赛事POST /api/events/{id}/publish- 发布赛事
GET /api/registrations- 报名列表POST /api/registrations- 提交报名POST /api/registrations/{id}/approve- 审核通过POST /api/registrations/{id}/reject- 审核拒绝
GET /api/results- 成绩列表POST /api/results- 录入成绩GET /api/results/export- 导出成绩POST /api/results/import- 导入成绩
详细API文档请参考: docs/03-API/api.md
- 登录系统 → 创建赛事 → 添加运动项目 → 发布赛事
- 审核报名 → 编排赛程 → 录入成绩
- 查看统计报表
- 注册/登录 → 浏览赛事 → 选择项目报名
- 查看报名状态 → 查看赛程安排
- 查看比赛成绩和排名
- 登录系统 → 查看赛程安排
- 录入/导入比赛成绩
- 审核学生报名(可选)
- 后端遵循阿里巴巴Java开发规范
- 前端遵循Vue3 Composition API风格
- 统一使用UTF-8编码
- feat: 新功能
- fix: 修复bug
- docs: 文档更新
- style: 代码格式
- refactor: 重构
- test: 测试相关
MIT License