# 数据结构知识图谱 **Repository Path**: dipper_room/data-structure-knowledge-graph ## Basic Information - **Project Name**: 数据结构知识图谱 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-20 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 《数据结构》课程智慧学习平台 面向《数据结构》课程的智慧学习平台,采用前后端分离架构,围绕知识图谱组织学习路径,并逐步扩展练习、统计与 AI 辅助能力。 ## 技术栈 - 前端:Vue 3 + Vite + Element Plus + Pinia + Vue Router - 后端:FastAPI + Pydantic + Neo4j Driver - 数据库:Neo4j 5(Docker 部署) ## 项目架构 ```text data-structure-knowledge-graph/ ├─ frontend/ # 前端工程 │ ├─ src/api/ # 接口层 │ ├─ src/views/ # 页面视图 │ ├─ src/components/ # 组件库 │ ├─ src/router/ # 路由 │ └─ src/stores/ # 状态管理 ├─ backend/ # 后端工程 │ ├─ app/api/v1/ # API 路由 │ ├─ app/services/ # 业务逻辑 │ ├─ app/schemas/ # 数据模型 │ ├─ app/core/ # 核心能力(安全/依赖/异常) │ └─ scripts/ # 初始化脚本 ├─ docs/ # 项目文档 └─ docker-compose.yml # Neo4j 本地编排 ``` ## 当前实现情况 ### 1) 已完成 - 前后端基础脚手架完成,服务可启动。 - 前端已接入 Element Plus,并完成导航、首页与页面骨架统一样式。 - 后端已注册 `kg/user/learn/exercise/statistics/ai` 六类路由。 - Neo4j 初始化脚本已可用,支持: - 创建模块约束与索引 - 初始化 6 个课程大模块(集合、线性表、树、图、查找、排序) - `--reset` 重置图数据 ### 2) 进行中 / 占位 - 后端 `services` 目前仍以占位返回为主(尚未完整打通 Neo4j 查询和写入)。 - 练习题、学习记录、统计分析、AI 接口已暴露,但业务逻辑尚未完全落库。 - 前端多数业务页已统一页面外观,但功能内容仍在分阶段补全。 ### 3) 当前可用能力(建议先用于联调) - `GET /health`:健康检查 - 统一路由骨架可跑通,前后端接口联调链路可验证 - Neo4j 模块级初始化可验证知识图谱顶层结构 ## 本地开发快速开始 ### 1) 启动 Neo4j 在仓库根目录执行: ```bash docker compose up -d neo4j ``` - Neo4j Browser: `http://localhost:7474` - Bolt: `bolt://localhost:7687` - 默认账号:`neo4j / your_password` ### 2) 配置环境变量 复制环境模板为 `.env`(建议在仓库根目录执行): - PowerShell: ```powershell Copy-Item .env.template .env ``` - Bash: ```bash cp .env.template .env ``` 根据本机环境修改 `.env` 中的 Neo4j 密码、跨域等配置。 ### 3) 启动后端 ```bash cd backend pip install -r requirements.txt uvicorn app.main:app --reload ``` 访问:`http://localhost:8000`,文档:`http://localhost:8000/docs` ### 4) 初始化知识图谱模块 ```bash cd backend python scripts/init_kg_data.py ``` 若需重置后重建: ```bash python scripts/init_kg_data.py --reset ``` ### 5) 启动前端 ```bash cd frontend npm install npm run dev ``` 访问:`http://localhost:5175` ## 开发须知 ### 1) 分支与提交流程 - 推荐分支:`runnable`(发布)、`master`(集成)。 - 提交信息建议使用:`feat/fix/refactor/docs/test/chore` 前缀。 - 大改接口或数据结构时,请同步更新 `docs/` 文档。 ### 2) 后端协作约定 - 路由层负责参数校验与错误处理,业务逻辑放在 `services/`。 - 统一使用 `schemas/` 约束输入输出,避免裸 `dict` 长期扩散。 - 新增模块前,先更新模型常量与初始化规则,再落代码。 ### 3) 前端协作约定 - 保持 Element Plus 组件风格一致,优先复用全局样式基座。 - 页面统一使用“页头 + 内容卡片”结构,减少各页视觉漂移。 - API 调用统一走 `src/api` 与 `src/utils/request.js`。 ### 4) 质量与验证 - 每次功能开发至少完成: - 本地启动验证(前后端) - 关键接口手动联调 - 相关文档更新(新增后端依赖时,及时更新 requirements.txt,否则别人拉代码后会缺包) ## 关键文档 - 总体功能设计:`docs/01_功能设计文档.md` - 数据库设计:`docs/02_数据库设计文档.md` - 知识图谱规范:`docs/kg/知识图谱数据规范.md` - 协作与分支规范:`docs/project/项目协作与分支规范.md`