# 教辅管理系统 **Repository Path**: yangxun39/education-deploy ## Basic Information - **Project Name**: 教辅管理系统 - **Description**: 教辅管理系统:专注于教育辅助管理的开源项目,提供学生信息、课程安排、收费管理等功能,旨在提升教育机构的管理水平和效率。 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-06-11 - **Last Updated**: 2026-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 教辅管理系统 ## 项目概述 教培机构一站式管理平台,覆盖学生管理、收费、考勤、退费、财务全流程。 ## 技术栈 | 层级 | 技术 | |------|------| | 后端 | Spring Boot 3.4 / JDK 21 | | 前端 | React 18 + Vite + Ant Design 5 | | 数据库 | MySQL 8.0(当前已启用) | | 构建 | Maven 3.x | ## 开发阶段排期 ### 第一期 MVP — P0(约 1 周) **目标:核心闭环跑通** | 序号 | 功能模块 | 主要工作 | |:---:|----------|----------| | 1 | 学生管理 | 新增/编辑/列表(含学段、多状态) | | 2 | 收费录入 | 按学段录入、优惠(折扣/定额)、教材费、单价自动计算 | | 3 | 考勤签到 | 按日期签到,自动扣课时、扣金额 | | 4 | **退费结算** | 剩余课时×单价退费,写入支出表 | | 5 | 首页看板 | 总收入/支出/利润统计 | > 数据库:MySQL 8.0(`education_db`),连接信息在 `application.yml` 中 ### 第二期 — P1(约 2~3 天) | 序号 | 功能模块 | 主要工作 | |:---:|----------|----------| | 1 | 教师管理 | 教师 CRUD、可教学时间、排课 | | 2 | Excel 导入 | xlsx 批量导入学生、重复检测 | | 3 | 成本录入 | 教学费/场地费/物资费逐条录入 | > 切换 MySQL,初始化 `education_db` 数据库 ### 第三期 — P1(约 3~5 天) | 序号 | 功能模块 | 主要工作 | |:---:|----------|----------| | 1 | 权限管理 | 管理员/教学组长/老师 三级角色 | | 2 | 财务报表 | 多维度收入/成本/利润报表 | | 3 | 操作日志 | 关键操作记录与追溯 | --- ## 快速启动 ### 后端(当前阶段) ```bash cd backend # 安装 Maven(如未安装) # https://maven.apache.org/download.cgi # 首次编译(自动下载依赖,约 2~5 分钟) mvn clean package -DskipTests # 启动(端口 8080) mvn spring-boot:run # 或直接运行 jar java -jar target/education-management-1.0.0.jar ``` 启动成功后: - API:`http://localhost:8080/api` - H2 控制台:`http://localhost:8080/h2-console`(用户名 `sa`,密码留空) ### 前端 ```bash cd frontend # 安装依赖(约 1 分钟) npm install # 开发模式(端口 3000) npm run dev ``` 浏览器打开 `http://localhost:3000` ### 切换数据库(如需) 当前已连接 MySQL。如需更换数据库,修改 `backend/src/main/resources/application.yml` 中的 datasource 配置。 --- ## 数据库表结构(MVP) | 表名 | 说明 | |------|------| | `t_student` | 学生信息 | | `t_teacher` | 教师信息 | | `t_charge_record` | 收费记录(含单价、已消耗) | | `t_attendance` | 考勤记录 | | `t_refund_record` | 退费记录 | | `t_cost_record` | 成本/支出记录 | | `t_pricing_rule` | 计价规则(管理员配置年级×新旧生×学段→收费标准) | --- ## API 概览(MVP) ### 学生 - `GET /api/students` — 列表(分页+搜索) - `GET /api/students/{id}` — 详情 - `POST /api/students` — 新增 - `PUT /api/students/{id}` — 更新 ### 收费 - `GET /api/charge/student/{studentId}` — 学生收费列表 - `POST /api/charge` — 录入收费 - `GET /api/charge/all-with-remaining` — 所有有剩余课时的记录 ### 考勤 - `GET /api/attendance` — 考勤列表 - `POST /api/attendance/checkin` — 签到 ### 退费 - `POST /api/refund` — 创建退费(自动写支出) - `GET /api/refund` — 退费记录 ### 财务 - `GET /api/finance/summary` — 收支汇总 ### 首页 - `GET /api/dashboard/stats` — 统计数据 --- ## 退费计算规则 ``` 应退金额 = 剩余课时数 × 课时单价 课时单价 = (实付金额 - 教材费) ÷ 实际上课次数 ``` 退费记录自动同步写入 `t_cost_record`(类型=REFUND),计入总成本。 --- ## 目录结构 ``` 教辅管理系统/ ├── backend/ # Spring Boot 后端 │ ├── pom.xml │ └── src/main/java/com/example/education/ │ ├── EducationApplication.java │ ├── entity/ # JPA 实体 │ ├── repository/ # 数据访问层 │ ├── service/ # 业务逻辑层 │ └── controller/ # REST 接口 ├── frontend/ # React 前端 │ ├── package.json │ ├── vite.config.js │ └── src/ │ ├── App.jsx # 路由配置 │ ├── pages/ # 页面组件 │ └── components/ # 公共组件 ├── requirements/ # 需求文档 │ └── 需求确认书.md └── README.md ``` --- *需求文档版本:V1.0(2026-04-12)*