# 自适应学习系统 **Repository Path**: beituo/kc-cogadap ## Basic Information - **Project Name**: 自适应学习系统 - **Description**: 融合知识图谱与认知诊断的自适应学习系统 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-01-07 - **Last Updated**: 2026-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 融合知识图谱与认知诊断的自适应课程学习系统
![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Java](https://img.shields.io/badge/Java-21-orange.svg) ![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.5.7-brightgreen.svg) ![Vue](https://img.shields.io/badge/Vue-3.4.21-4FC08D.svg) 一个基于知识图谱和认知诊断技术的自适应学习系统,通过分析学习者的认知状态,为其推荐个性化的学习路径。 [功能特性](#功能特性) • [技术栈](#技术栈) • [快速开始](#快速开始) • [项目结构](#项目结构) • [系统架构](#系统架构)
--- ## 📖 项目简介 融合知识图谱与认知诊断的自适应课程学习系统是一个智能化的在线学习平台,旨在通过知识图谱技术构建知识体系,结合认知诊断算法评估学习者的掌握程度,为学习者推荐个性化的学习路径,实现自适应学习。 ### 核心功能 - **知识图谱构建**:支持知识点和关系的可视化管理和展示 - **认知诊断**:基于答题记录评估学习者对各知识点的掌握程度 - **自适应路径推荐**:根据认知诊断结果和知识图谱结构推荐个性化学习路径 - **课程与章节管理**:支持课程创建、章节管理,章节可关联知识点和视频资源 - **学习资源管理**:为知识点关联学习资源,支持多种资源类型 - **学习行为追踪**:记录学习者的学习行为,为诊断提供数据支持 ## ✨ 功能特性 ### 用户端功能 - 📚 **知识图谱可视化**:查看知识点及其关系网络,支持节点拖拽和布局调整 - 📊 **认知诊断报告**:查看整体掌握度、知识点掌握度雷达图、详细诊断报告 - 🎯 **题目练习**:支持随机题目练习,答题后查看正确答案和解析 - 📖 **课程学习**:浏览课程列表,查看课程详情和章节内容,观看章节视频 - 📑 **章节学习**:按顺序学习课程章节,查看章节关联的知识点,跟踪学习进度 - 🗺️ **学习路径管理**:查看推荐的学习路径,更新学习状态,查看学习资源 - 👤 **个人中心**:查看和编辑个人信息 ### 管理端功能 - 📈 **数据统计**:查看系统统计数据、用户分布、学习情况统计 - 🗂️ **知识图谱管理**:管理知识点和关系,构建知识图谱结构 - 📚 **课程管理**:创建、编辑、删除课程,设置课程封面和描述,分配授课教师 - 📑 **章节管理**:为课程添加章节,设置章节顺序,上传章节视频,关联知识点 - 📝 **题库管理**:管理题目,支持多种题型(单选、多选、判断、填空) - 📦 **学习资源管理**:管理学习资源,支持视频、文档、文章、习题等类型 - 👥 **用户管理**:管理用户信息,分配用户角色(管理员、教师、学生) - ⚙️ **系统配置**:系统参数配置(仅管理员) ## 🛠️ 技术栈 ### 后端技术 - **框架**:Spring Boot 3.5.7 - **数据库**: - MySQL 8.0+(关系型数据存储) - Neo4j(图数据库,存储知识图谱) - **数据访问**: - MyBatis 3.0.3(MySQL 数据访问) - Spring Data Neo4j(Neo4j 数据访问) - **安全框架**:Spring Security + JWT - **Java 版本**:JDK 21 ### 前端技术 - **框架**:Vue 3(Composition API) - **构建工具**:Vite 5.1.4 - **UI 框架**:Element Plus 2.5.6 - **状态管理**:Pinia 2.1.7 - **路由管理**:Vue Router 4.3.0 - **HTTP 客户端**:Axios 1.6.7 - **图表库**:ECharts 5.4.3(知识图谱可视化) ## 🏗️ 系统架构 ``` ┌─────────────────────────────────────────────────────────┐ │ 前端层 (Vue 3) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 用户端 │ │ 管理端 │ │ 认证页面 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └──────────────────────┬──────────────────────────────────┘ │ HTTP/RESTful API ┌──────────────────────┴──────────────────────────────────┐ │ 后端层 (Spring Boot) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │Controller│→ │ Service │→ │ Mapper │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └──────┬───────────────────────────┬──────────────────────┘ │ │ ┌──────┴────────┐ ┌────────┴────────┐ │ MySQL │ │ Neo4j │ │ (关系数据) │ │ (图数据) │ └───────────────┘ └─────────────────┘ ``` ## 📋 环境要求 - **JDK**:21 或更高版本 - **Maven**:3.6+ - **Node.js**:16+ - **npm**:8+ 或 **yarn**:1.22+ - **MySQL**:8.0+ - **Neo4j**:5.0+ ## 🚀 快速开始 ### 1. 克隆项目 ```bash git clone https://gitee.com/your-username/KG-CogAdap.git cd KG-CogAdap ``` ### 2. 数据库准备 #### MySQL 数据库 ```sql -- 创建数据库 CREATE DATABASE kg_cogadap CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 执行建表脚本 -- 文件位置:src/main/resources/db/schema.sql -- 执行课程章节相关表脚本(如果schema.sql中未包含) -- 文件位置:src/main/resources/db/course_chapter_tables.sql ``` #### Neo4j 数据库 1. 启动 Neo4j 服务 2. 访问 http://localhost:7474 使用浏览器管理界面 3. 默认用户名:neo4j,密码:neo4j(首次登录需要修改) ### 3. 后端配置 1. 修改数据库配置(`src/main/resources/application.properties`): ```properties # MySQL配置 spring.datasource.url=jdbc:mysql://localhost:3306/kg_cogadap?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=your_password # Neo4j配置 spring.neo4j.uri=bolt://localhost:7687 spring.neo4j.authentication.username=neo4j spring.neo4j.authentication.password=your_password ``` 2. 修改 JWT 密钥(可选,建议修改): ```properties jwt.secret=your-secret-key-minimum-256-bits-required-for-security ``` 3. 初始化数据库: ```bash # 执行建表脚本 mysql -u root -p kg_cogadap < src/main/resources/db/schema.sql # 执行课程章节相关表脚本(如果schema.sql中未包含) mysql -u root -p kg_cogadap < src/main/resources/db/course_chapter_tables.sql # 可选:导入测试数据 mysql -u root -p kg_cogadap < src/main/resources/db/test-data.sql ``` 4. 启动后端服务: ```bash # 方式1:使用Maven mvn spring-boot:run # 方式2:使用IDE运行KgCogAdapApplication.java ``` 后端服务启动后访问:http://localhost:8080/api ### 4. 前端配置 1. 进入前端目录: ```bash cd frontend ``` 2. 安装依赖: ```bash npm install # 或 yarn install ``` 3. 启动开发服务器: ```bash npm run dev # 或 yarn dev ``` 前端服务启动后访问:http://localhost:5173 ### 5. 访问系统 - **前端地址**:http://localhost:5173 - **后端 API**:http://localhost:8080/api 默认测试账号(需要先导入测试数据): - 管理员:admin / admin123 - 教师:teacher / teacher123 - 学生:student / student123 ## 📁 项目结构 ``` KG-CogAdap/ ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口封装 │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 公共组件 │ │ ├── router/ # 路由配置 │ │ ├── store/ # 状态管理 │ │ ├── utils/ # 工具函数 │ │ └── views/ # 页面组件 │ │ ├── admin/ # 管理端页面 │ │ ├── auth/ # 认证页面 │ │ └── user/ # 用户端页面 │ ├── public/ # 公共资源 │ └── package.json # 依赖配置 │ ├── src/main/java/com/learn/ # 后端项目 │ ├── controller/ # 控制器层 │ ├── service/ # 服务层 │ │ └── impl/ # 服务实现类 │ ├── mapper/ # MyBatis Mapper │ ├── repository/ # JPA Repository │ ├── entity/ # 实体类 │ ├── dto/ # 数据传输对象 │ ├── config/ # 配置类 │ ├── security/ # 安全相关 │ └── common/ # 通用类 │ └── src/main/resources/ ├── mapper/ # MyBatis XML映射文件 ├── db/ # 数据库脚本 │ ├── schema.sql # 基础表结构 │ ├── course_chapter_tables.sql # 课程章节相关表 │ └── test-data.sql # 测试数据 └── application.properties # 应用配置 ``` ## 🔐 权限说明 系统采用基于角色的访问控制(RBAC),支持三种角色: - **STUDENT(学生)**:可以查看知识点、题目、学习路径、学习资源,可以浏览和学习课程、查看章节内容,可以提交答题记录,可以查看自己的诊断报告 - **TEACHER(教师)**:拥有学生所有权限,可以管理知识点、题目、学习资源,可以查看学生的学习统计 - **ADMIN(管理员)**:拥有所有权限,可以管理课程和章节,可以管理用户、查看系统统计、进行系统配置 ## 📝 API 文档 ### 主要接口 - **认证接口**:`/api/auth/login`、`/api/auth/register`、`/api/auth/refresh` - **课程管理**:`/api/courses`(获取课程列表、课程详情、创建/更新/删除课程) - **章节管理**:`/api/chapters`(获取章节详情、创建/更新/删除章节、关联/取消关联知识点) - **知识点管理**:`/api/knowledge-point` - **题目管理**:`/api/question` - **答题记录**:`/api/answer-record` - **学习路径**:`/api/learning-path` - **学习资源**:`/api/learning-resource` - **用户管理**:`/api/user` - **统计信息**:`/api/statistics` ### 统一响应格式 ```json { "code": 1, "msg": "success", "data": {} } ``` ## 🧪 测试 ### 后端测试 ```bash mvn test ``` ### 前端测试 ```bash cd frontend npm run test ``` ## 📦 构建部署 ### 后端构建 ```bash mvn clean package ``` 生成的 jar 文件位于:`target/KG-CogAdap-0.0.1-SNAPSHOT.jar` ### 前端构建 ```bash cd frontend npm run build ``` 构建产物位于:`frontend/dist/` ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 👥 作者 - **xiyan** - _Initial work_ - [YourGitee](https://gitee.com/your-username) ## 🙏 致谢 - Spring Boot 团队 - Vue.js 团队 - Element Plus 团队 - ECharts 团队 - 所有贡献者 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 提交 Issue:[Gitee Issues](https://gitee.com/your-username/KG-CogAdap/issues) - 邮箱:040128xiyan@foxmal.com ---
**如果这个项目对你有帮助,请给一个 ⭐ Star!** Made with ❤️ by [Your Name]