# student-grade-system **Repository Path**: Round-7/student-grade-system ## Basic Information - **Project Name**: student-grade-system - **Description**: 基于 Spring Boot + React 的学生成绩管理系统,实现了学生、教师、管理员三种角色的功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-10 - **Last Updated**: 2025-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学生成绩管理系统 基于 Spring Boot + React 的学生成绩管理系统,实现了学生、教师、管理员三种角色的功能。 ## 系统功能 ### 学生端 - 登录系统 - 查看课程信息 - 查看个人成绩 - 按课程名查询个人成绩 ### 教师端 - 登录系统 - 录入/修改成绩 - 按班级号、学生学号、课程名查询成绩 - 批量导入成绩(Excel 导入) - 导出成绩单(Excel 格式) ### 管理员端 - 用户管理:对用户进行增删改查、分配权限 - 班级管理:设置班级名称、年级、专业,增删改查班级,设置班级学生 - 课程管理:设置课程名称、学分、学时,增删改查课程,设置班级课程的授课教师 - 成绩审核:成绩查询(能按照班级号、学生学号、课程名查询成绩)、异常成绩标记与复核 - 数据可视化:班级成绩统计、成绩分布图 ## 技术栈 ### 后端 - Spring Boot 3 - Spring Security + JWT - MyBatis - MySQL ### 前端 - React 19 - TypeScript - Vite - React Router - Zustand (状态管理) - Tailwind CSS - shadcn/ui (UI 组件库) - Chart.js (图表库) ## 项目结构 ``` 学生成绩管理系统/ ├── backend/ │ ├── src/main/java/ │ │ ├── config/ # 配置类 │ │ ├── controller/ # 控制器 │ │ ├── dto/ # 数据传输对象 │ │ ├── entity/ # 数据库实体 │ │ ├── exception/ # 自定义异常 │ │ ├── filter/ # 过滤器 │ │ ├── mapper/ # MyBatis映射接口 │ │ ├── service/ # 服务层 │ │ ├── util/ # 工具类 │ │ ├── vo/ # 视图对象 │ │ └── Application.java # 启动类 │ ├── src/main/resources/ │ │ ├── application.yml # 配置文件 │ │ └── mybatis/ # MyBatis映射文件 │ └── sql/ │ └── schema.sql # 数据库结构脚本 └── frontend/ ├── src/ │ ├── api/ # API请求封装 │ ├── components/ # 公共组件 │ ├── hooks/ # 自定义hooks │ ├── pages/ # 页面组件 │ ├── routes/ # 路由配置 │ ├── stores/ # 状态管理 │ ├── styles/ # 样式文件 │ ├── types/ # TypeScript类型定义 │ ├── utils/ # 工具函数 │ ├── App.tsx # 主组件 │ └── main.tsx # 入口文件 ├── public/ # 静态资源 ├── index.html # HTML模板 ├── tailwind.config.js # Tailwind配置 ├── tsconfig.json # TypeScript配置 └── vite.config.ts # Vite配置 ``` ## 数据库设计 系统包含以下主要表: - users: 用户表 (id, username, password, role, enabled) - students: 学生表 (id, student_number, name) - teachers: 教师表 (id, teacher_number, name) - classes: 班级表 (id, name, grade, major) - courses: 课程表 (id, name, credit, hours) - student_class: 学生班级关联表 - teacher_course_class: 教师课程班级关联表 - grades: 成绩表 (id, student_id, course_id, class_id, teacher_id, score, is_flagged, recorded_at) ## 如何运行 ### 后端 1. 确保已安装 JDK 17 和 MySQL 2. 创建数据库并执行 `backend/sql/schema.sql` 创建表结构 3. 修改 `application.yml` 中的数据库连接信息 4. 进入 backend 目录 5. 运行 `mvn spring-boot:run` 启动后端服务 ### 前端 1. 确保已安装 Node.js 18+ 2. 进入 frontend 目录 3. 运行 `npm install` 安装依赖 4. 运行 `npm run dev` 启动开发服务器 5. 访问 `http://localhost:5173` ## 默认账号 - 管理员:admin / admin123 - 教师:teacher / teacher123 - 学生:student / student123 ## 项目亮点 - 完善的权限控制系统 - 响应式设计,支持移动端和桌面端 - 批量导入导出功能,便于教师数据处理 - 成绩分析与可视化功能 - 异常成绩检测与标记