# LearningSystem-bakend **Repository Path**: enhead/LearningSystem-bakend ## Basic Information - **Project Name**: LearningSystem-bakend - **Description**: LearningSystem 智能教育管理后端系统,整合三大模块: 1. 学习行为分析及基础业务端:基于多种爬虫和抓包工具的导入清洗教务数据;通过websocket进行实时课堂检测;基础业务查询 2. 知识图谱引擎:基于知识图谱的问答系统 3. 行为检测模块:基于yolov5模型的课堂行为检测 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2024-07-27 - **Last Updated**: 2025-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java ## README # LearningSystem 后端项目 > 完整项目:https://gitee.com/enhead/learning-system > 此处只跑通后端 ## 子项目简介 LearningSystem-backend 是基于Spring Boot、Flask与YOLO目标检测模型构建的智能化教育管理后端系统,采用模块化设计整合三大子系统: 1)**智能学习情境分析及基础业务系统**通过Spring Boot实现学生教务数据采集、清洗与多维度可视化分析,结合实时WebSocket通信进行课堂行为监测; 2)**课程知识图谱系统**运用BERT-BiLSTM-CRF模型完成知识抽取与融合,使用Neo4j图数据库存储知识图谱,并通过Flask搭建的问答服务实现知识推理与外部知识库扩展; 3)**YOLO行为检测模块**针对课堂场景优化目标检测算法,实现学生行为动态追踪。 各模块通过RESTful API协同工作,为前端提供实时数据接口与智能决策支持,构建教育数字孪生体的后端技术。 ## 项目结构 ``` LearningSystem-bakend/ ├── intelligent-learning-situation-analysis/ # 智能学习情境分析及基础业务系统 │ ├── intelligent-common/ # 公共模块 │ │ ├── src/ # Java 源码目录 │ │ │ ├── constant/ # 常量定义 │ │ │ ├── context/ # 上下文管理 │ │ │ ├── exception/ # 异常处理 │ │ │ ├── json/ # JSON 处理 │ │ │ ├── properties/ # 配置属性 │ │ │ ├── result/ # 统一返回结果 │ │ │ └── utils/ # 工具类 │ │ └── resources/ # 配置文件与资源 │ │ │ ├── intelligent-pojo/ # 数据模型模块 │ │ ├── src/ # Java 源码目录 │ │ │ ├── dto/ # 数据传输对象 │ │ │ ├── entity/ # 实体类 │ │ │ └── vo/ # 视图对象 │ │ └── resources/ # 配置文件与资源 │ │ │ └── intelligent-server/ # 智能服务器 │ ├── src/ # Java 源码目录 │ │ ├── config/ # 配置类 │ │ ├── controller/ # 控制器 │ │ ├── filter/ # 过滤器 │ │ ├── interceptor/ # 拦截器 │ │ ├── mapper/ # MyBatis 映射器 │ │ └── service/ # 服务层 │ └── resources/ # 配置文件与资源 │ ├── mapper/ # MyBatis 映射文件 │ ├── static/ # 静态资源 │ ├── application.yml # 主配置文件 │ ├── application-dev.yml # 开发环境配置文件 │ ├── edgedriver_win64/ # Edge浏览器驱动 │ └── chromedriver-win64/ # Chrome浏览器驱动 │ ├── course-qa-system/ # 课程知识图谱问答系统 │ ├── app.py # 主程序入口 │ ├── config/ # 配置文件 │ │ └── database.py # 数据库配置(含有neo4j) │ ├── core/ # 核心功能模块 │ │ ├── chatbot_graph.py # 问答系统主类 │ │ ├── question_classifier.py # 问题分类器 │ │ ├── question_parser.py # 问题解析器 │ │ └── answer_search.py # 答案搜索器 │ ├── resource/ # 资源文件 │ │ ├── data/ # 数据文件 │ │ │ └── 特征词/ # 特征词文件 │ │ └── scripts/ # 脚本文件 │ │ ├── build_graph.py # 构建知识图谱 │ │ ├── build_relations.py # 构建关系 │ │ └── clear_database.py # 清空数据库(谨慎使用) │ ├── common/ # 公共工具 │ │ └── Result.py # 统一响应格式 │ ├── requirements.txt # 项目依赖 │ └── README.md # 项目说明 │ └── yolov5/ # 课堂行为分析系统(基于YOLOv5) ├── models/ # 模型结构定义 ├── utils/ # 工具函数 ├── weights/ # 训练好的模型权重(这里文件过大,需自行下载) └── detect.py # 行为检测主程序 ``` > 说明:这里权重文件过大了,上传不了;即使上传了,拉去代码也会有问题,所以这里不放了,只放了一些训练结果的数据 ## 环境要求 ### 1. 智能学习情境分析模块 - **基础环境** - Java 8+ - Maven 3.6+ - MySQL 5.7+ - **浏览器驱动**(基于`selenium`、以及各种抓包技术的教务导入需要) - Chrome **==(默认)注意需要跟自己的浏览器版本保持一致==** - Edge **==(默认)注意需要跟自己的浏览器版本保持一致==** ### 2. 课程知识图谱问答系统 - **Python环境** - Python 3.8+ - pip 20+ - **依赖包** - Flask 2.0+ - Neo4j 4.0+ - jieba 0.42+ - numpy 1.20+ - pandas 1.3+ - **数据库** - Neo4j(图形数据库) - 默认端口:7474(HTTP)、7687(Bolt) ### 3. YOLOv5行为检测模块 > 这里可能有误,我不是专业炼丹的,所以不一定对 > - **Python环境** - Python 3.8+ - CUDA 11.0+ - cuDNN 8.0+ - **深度学习框架** - PyTorch 1.8+ - OpenCV 4.5+ - YOLOv5 6.0+ [ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite](https://github.com/ultralytics/yolov5) ## 安装步骤 ### 克隆项目 ```bash git clone https://gitee.com/enhead/LearningSystem-bakend.git cd LearningSystem-bakend ``` ### 智能学习情境分析以及基础业务模块 #### 数据库配置 - 创建 MySQL 数据库:[数据库.sql] - 执行数据库初始化脚本 - 修改数据库配置(application.yml)[intelligent-learning-situation-analysis\intelligent-server\src\main\resources] #### 项目配置 > 位置:`intelligent-learning-situation-analysis\intelligent-server\src\main\resources` - 修改 `application.yml` 和 `application-dev.yml` 中的配置 - **服务器配置** - 端口号:8081 - 静态资源路径模式 - **数据库配置** - 使用Druid连接池 - MySQL数据库连接参数 - 时区设置为Asia/Shanghai - 注意SSL和字符编码设置 - **MyBatis配置** - Mapper文件位置 - 实体类包路径 - 驼峰命名转换 - 日志输出配置 - **JWT认证配置** - 密钥配置 - Token过期时间 - Token名称 - **第三方服务配置** - 阿里云OSS配置 - YOLOv5摄像头配置 - 百度智能云API配置 - 确保API密钥和访问令牌正确 - 检查OSS存储桶配置 - **浏览器驱动配置** - Chrome驱动路径 - Edge驱动路径 - 确保驱动版本与浏览器版本匹配 > 注意:通过修改`spring.profiles.active`可以切换环境(dev/prod),不同环境的配置参数可能不同 #### 安装依赖 ```bash # 进入项目目录 cd intelligent-learning-situation-analysis # 安装Maven依赖 mvn clean install ``` ### 课程知识图谱问答系统 #### 环境配置 - 安装Python 3.8+ - 配置Neo4j数据库(默认端口:7474/7687) #### 安装依赖 ```bash # 进入项目目录 cd course-qa-system # 安装Python依赖 pip install -r requirements.txt ``` #### 数据导入 1. 知识图谱数据导入 - 确保 Neo4j 数据库已启动并配置正确(默认端口:7474/7687) - 修改 `config/database.py` 中的数据库连接信息 - 按顺序执行以下命令导入数据: ```bash # 进入项目目录 cd course-qa-system # 清空数据库(谨慎使用) # python resource/scripts/clear_database.py # 构建知识图谱 python resource/scripts/build_graph.py ``` 2. 数据验证 - 使用 Neo4j Browser(http://localhost:7474)验证数据导入是否完整 - 检查实体节点是否完整(专业、课程、知识点等) - 验证关系是否正确建立(包含关系、前置后继关系等) #### 启动知识图谱问答服务 ```bash # 进入项目目录 cd course-qa-system # 启动问答服务 python app.py ``` > 注意:运行前请确保: > 1. Neo4j 数据库已启动并配置正确 > 2. 知识图谱数据已成功导入 > 3. 特征词文件位于 `resource/data/特征词/` 目录下 ### YOLOv5行为检测模块 #### 环境配置 - 安装Python 3.8+ - 安装CUDA 11.0+ #### 安装依赖 ```bash # 进入项目目录 cd yolov5 # 安装Python依赖 pip install -r requirements.txt ``` #### 模型配置 - 下载预训练模型权重(不包含在仓库中) - 配置检测参数 ### 启动服务 #### 启动智能学习情境分析服务 ```bash # 进入项目目录 cd intelligent-learning-situation-analysis/intelligent-server # 启动Spring Boot服务 mvn spring-boot:run ``` #### 启动知识图谱问答服务 ```bash # 进入项目目录 cd course-qa-system # 启动问答服务 python app.py ``` > 注意:运行前请确保: > 1. Neo4j 数据库已启动并配置正确 > 2. 知识图谱数据已成功导入 > 3. 特征词文件位于 `resource/data/特征词/` 目录下 #### 启动YOLOv5检测服务 ```bash # 进入项目目录 cd yolov5 # 启动检测服务 python detect.py ``` ## 注意事项 1. 大文件管理 - 模型权重文件(.pt)不包含在仓库中 - 需要单独下载模型文件 - 模型文件下载地址:[模型下载链接] 2. 配置文件 - 修改 application.yml 中的配置 - 确保数据库和 Redis 配置正确 3. 数据文件 - 课程知识图谱数据需要单独导入 - 确保数据文件格式正确 ## 联系方式 - 项目负责人:[enhead] - 邮箱:[2790440179@qq.com] - 项目地址:[https://gitee.com/enhead/learning-system.git] ## 许可证 > 待整,还没搞过这个 [许可证类型]