# grade-system
**Repository Path**: codevibe/grade-system
## Basic Information
- **Project Name**: grade-system
- **Description**: EduCore 教务管理系统
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-07-08
- **Last Updated**: 2025-07-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# EduCore 教务管理系统
## 项目概述
本系统是一个基于 **Spring Boot + Vue** 构建的前后端分离的 EduCore 教务管理系统。后端使用 **Java 17+** 编写,采用 **Spring Boot** 框架;前端使用 **Vue 3 + Vite** 开发,UI 支持响应式布局;数据库使用 **MySQL**。
系统实现了完整的用户管理、成绩管理、通知公告、操作日志记录等功能,并引入了以下增强特性:
- JWT 鉴权机制
- 审计日志记录(通过注解与切面实现)
- 文件上传支持(头像、Excel 成绩导入等)
- 多角色权限控制(管理员、教师、学生)
---
## 目录
- [项目概述](#项目概述)
- [项目结构](#项目结构)
- [后端 (`springboot`)](#后端-springboot)
- [前端 (`vue`)](#前端-vue)
- [技术栈](#技术栈)
- [功能列表](#功能列表)
- [数据库设计](#数据库设计)
- [开发部署指南](#开发部署指南)
## 项目结构
### 后端 (`springboot`)
#### 主要模块
| 包名 | 功能描述 |
|-----------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `annotation` | 自定义注解,如 [[@AuditLogRecord](file://C:\Users\Administrator\Desktop\grade-system\springboot\src\main\java\com\example\annotation\AuditLogRecord.java#L15-L20)](file://C:\Users\Administrator\Desktop\grade-system\springboot\src\main\java\com\example\annotation\AuditLogRecord.java) 用于标记需要记录日志的方法 |
| `aspect` | 切面类,如 [[AuditLogAspect](file://C:\Users\Administrator\Desktop\grade-system\springboot\src\main\java\com\example\aspect\AuditLogAspect.java#L25-L74)](file://C:\Users\Administrator\Desktop\grade-system\springboot\src\main\java\com\example\aspect\AuditLogAspect.java) 实现操作日志记录逻辑 |
| `common` | 通用配置类,包括跨域配置、拦截器、统一返回封装等 |
| `config` | 系统配置类,如安全配置、Redis 配置、Jackson 序列化配置等 |
| `controller` | 控制器类,处理 HTTP 请求,包含管理员、用户、文件上传等接口 |
| `dto` | 数据传输对象,用于接收请求参数 |
| `entity` | 实体类,与数据库表一一映射 |
| `enums` | 枚举类,如角色枚举、结果状态码等 |
| `exception` | 异常处理类,统一处理系统异常 |
| [mapper](file://C:\Users\Administrator\Desktop\grade-system\springboot\src\main\java\com\example\service\impl\CourseServiceImpl.java#L13-L14) | MyBatis 映射接口,用于数据库操作 |
| `security` | 安全相关类,如 JWT 过滤器、鉴权逻辑 |
| `service` | 业务逻辑接口及其实现类 |
| `strategy` | 策略模式实现的扩展逻辑 |
| `utils` | 工具类,如 [[TokenUtils](file://C:\Users\Administrator\Desktop\grade-system\springboot\src\main\java\com\example\utils\TokenUtils.java#L21-L80)](file://C:\Users\Administrator\Desktop\grade-system\springboot\src\main\java\com\example\utils\TokenUtils.java) 处理 JWT 令牌 |
| `SpringbootApplication.java` | Spring Boot 启动类 |
#### 配置文件
- `application.yml`:Spring Boot 主配置文件
- `pom.xml`:Maven 依赖配置文件
#### SQL 脚本
- `sql/learnscore.sql`:数据库初始化脚本
---
### 前端 (`vue`)
#### 主要模块
| 目录 | 功能描述 |
|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `src/api` | API 接口封装,如 `user.js` 定义用户相关的请求 |
| `src/assets/css` | 全局样式文件和 SCSS 变量 |
| `src/router/index.js` | Vue 路由配置 |
| `src/utils/request.js` | 封装 Axios 请求 |
| `src/views/` | 页面组件目录,包括:
- `Login.vue` 登录页
- `Register.vue` 注册页
- `Home.vue` 主页
- `User.vue` 用户管理
- `Admin.vue` 管理员管理
- `UpdatePassword.vue` 修改密码
- `Person.vue` 个人信息
- `Manager.vue` 管理界面
- `404.vue` 错误页面 |
| `App.vue` | 根组件 |
| `main.js` | Vue 入口文件 |
| `index.html` | HTML 模板 |
| `package.json` | npm 包配置 |
| `vite.config.js` | Vite 构建配置 |
---
## 技术栈
### 后端
- **Java 17+**
- **Spring Boot 2.x**
- **MyBatis / MyBatis Plus**
- **JWT(JSON Web Token)**
- **MySQL**
- **Redis**
- **Lombok**
### 前端
- **Vue 3**
- **Vite**
- **Axios**
- **Element Plus**(UI 框架)
- **SCSS / CSS Modules**
---
## 功能列表
| 功能模块 | 描述 |
|------|------------------------|
| 用户登录 | 使用 JWT 进行身份验证,支持多角色登录 |
| 成绩管理 | 支持查看、添加、修改、删除学生成绩 |
| 通知公告 | 管理员可以发布通知,用户可查看 |
| 日志记录 | 所有操作记录在审计日志中,可通过注解灵活控制 |
| 文件上传 | 支持头像上传、批量 Excel 导入成绩 |
| 权限控制 | 不同角色(如管理员、教师、学生)拥有不同权限 |
---
## 数据库设计
数据库名称:`grade_system`
主要表:
- `user`:用户信息表
- `admin`:管理员信息表
- `account`:账号信息表
- `notification`:通知公告表
- `audit_log`:审计日志表
详细字段请参考 `sql/learnscore.sql`。
---
## 开发部署指南
### 后端部署
1. 安装 JDK 17+
2. 安装 Maven
3. 安装 MySQL
4. 导入 `sql/learnscore.sql` 到数据库
5. 修改 `application.yml` 中的数据库连接信息
6. 执行 `mvn spring-boot:run` 启动服务
### 前端部署
1. 安装 Node.js 18+
2. 进入 `vue` 目录
3. 执行 `npm install`
4. 执行 `npm run dev` 启动开发服务器