项目概
- 主要目的和价值
本项目旨在构建一个面向Android移动编程课程的在线学习系统,借助知识图谱技术实现课程内容的结构化管理与智能推荐,为学习者提供系统化、个性化的学习体验。通过集成多媒体教学资源与习题练习,促进学习效果,提升学习效率。 - 解决的核心问题
传统编程课程往往缺乏系统的知识关联和智能推荐,本项目通过知识图谱技术,关联不同章节、习题、考试及用户错误反馈,实现精准的知识点推荐与个性化学习路径规划,解决学习碎片化、资源不连贯难以有效掌握的问题。 - 目标用户群体
- Android移动编程学习者
- 教育机构及在线教育平台教师与管理员
- 课程内容设计者与教学资源管理者
技术架构
- 主要技术栈
- Python 3.9
- Django 3.2(Web框架)
- Neo4j图数据库(知识图谱存储)
- CKEditor(富文本编辑器)
- SQLite关系数据库(传统数据存储)
- 前端技术:HTML5, CSS, JavaScript(含jQuery、Bootstrap等)
- 项目框架和依赖
项目基于Django框架,使用虚拟环境管理依赖(.venv中的多个库如py2neo、openai、jieba、simpleui等,用于图数据库操作、AI辅助、中文分词及UI优化等)。引入了ckeditor及其上传组件支持富文本与多媒体文件的管理。 - 架构设计模式
- MVC(Model-View-Controller)框架结构,模型定义数据结构,视图层负责页面呈现与交互,控制器处理业务逻辑及请求响应。
- 采用图数据库(Neo4j)和关系数据库混合存储,实现结构化和图形化数据管理。
- 利用中间件和装饰器(如
login_required
)保障安全与权限控制。 - 数据库设计
- 关系型数据:用户信息(
UserProfile
模型自定义用户)、章节、习题、习题类型、考试及错题记录等。 - 图数据库:通过py2neo操作知识图谱,建立章节、习题、考试等节点关系,支持复杂语义查询与推荐算法。
功能模块
- 用户管理(accounts)
- 用户注册、登录、登出
- 忘记密码与密码修改
- 用户信息查看与修改(包括头像上传)
- 管理端用户管理与权限配置
- 教学内容管理(teaching)
- 章节内容管理,包括章节名称、介绍、富文本内容、PPT及视频资源上传
- 习题类型与习题管理(单选、多选、填空)
- 习题与错题管理,连结章节,支持练习和复习
- 考试管理,包括考试记录和详细做题信息
- 知识图谱查询与推荐
- 基于Neo4j,支持知识图谱中开始节点、关系、结束节点的查询
- 根据用户学习记录和错题,推荐习题和章节
- 智能陪练问答模块,实现知识问答
- 前端交互与展示
- 课程章节浏览、搜索功能
- 试题页面与错题展示
- 用户个人信息页面
- 登录、注册及异常信息提示页面
核心特性
- 知识图谱驱动的课程内容组织
利用Neo4j知识图谱技术,将章节、习题、考试数据通过语义关系进行关联,实现知识点的精细组织和智能导航。 - 智能推荐与个性化学习
根据用户答题错误和学习历程,自动推荐相关习题和章节,提升学习针对性和效果。 - 多媒体资源集成
整合PPT与视频教学资源,为每个章节提供详尽的学习材料,兼顾文本与视听体验。 - 高级文字编辑支持
通过ckeditor及其上传插件,支持富文本及多媒体内容编辑,满足章节和习题内容丰富性。 - 安全性与用户管理优化
扩展 Django自带AbstractUser
模型,增加头像及密码处理,管理后台提升用户管理体验,密码通过哈希加密存储。
项目结构
xy25_android_platform/
├── accounts/ # 用户管理模块
│ ├── admin.py # 用户管理后台注册及定制
│ ├── models.py # 用户模型扩展(头像、自定义密码字段)
│ ├── views.py # 用户视图:登录、信息修改等
│ ├── urls.py # 用户相关路由配置
│ ├── forms.py # 表单定义
│ └── migrations/ # 数据库迁移文件
├── teaching/ # 教学内容模块
│ ├── models.py # 章节、习题、考试数据模型
│ ├── views.py # 教学相关视图处理,包括知识图谱查询
│ ├── admin.py # 教学内容管理后台配置
│ ├── urls.py # 教学相关路由
│ └── migrations/ # 数据库迁移文件
├── datas/ # 课程数据文件(视频,PPT,文本)
├── media/ # 用户上传及资源媒体文件
│ ├── avatar/ # 用户头像存储
│ ├── mp4/ # 视频资源
│ └── ppt/ # PPT资源
├── static/ # 静态文件(CSS/JS/图片/插件)
├── templates/ # 前端模板文件 (html)
├── xy_wrong/ # 项目配置相关
│ ├── settings.py # 项目配置文件
│ ├── urls.py # 全局路由配置
│ ├── wsgi.py
│ ├── asgi.py
│ └── admin_config.py # 管理相关定制配置
├── manage.py # 管理工具入口
├── requirements.txt # 依赖库清单
└── .venv/ # Python虚拟环境
- 关键文件说明
accounts/models.py
:扩展用户模型,增加头像、密码明文字段mpassword
,保持Django默认认证兼容。accounts/admin.py
:定制用户管理后台,重写保存逻辑以保存哈希密码,取消Django默认Group模型注册。accounts/views.py
:实现用户登录、注册、个人信息修改、忘记密码等功能,包含头像文件保存逻辑。teaching/models.py
:定义章节、习题类型、习题、错题点数等数据模型,使用CKEditor富文本字段存储章节详情。teaching/admin.py
:注册章节与习题的后台管理,使用TabularInline方式管理习题与错题。teaching/views.py
:包含章节列表分页、基于知识图谱的推荐系统、考试提交和错题管理等业务逻辑;集成了OpenAI及py2neo用于智能问答和图谱查询。templates/
中包括用户相关页面、课程资源展示、试题页、错题页面及知识图谱查询页面等。
部署和运行
- 环境要求
- 操作系统:支持Linux、macOS、Windows的Python运行环境
- Python版本:3.9
- 数据库:图数据库Neo4j(推荐使用本地HTTP API,默认地址
http://localhost:7474
,及默认用户密码neo4j
/123456
);关系数据库可根据settings.py
配置选择。 - 依赖库:Django 3.2.x, py2neo, OpenAI SDK, jieba, CKEditor及其上传插件等。
- 安装步骤
- 克隆项目代码到本地。
- 创建并激活Python虚拟环境
.venv
。 - 使用
pip install -r requirements.txt
安装所有依赖。 - 配置
xy_wrong/settings.py
,调整数据库连接、静态与媒体文件路径等必要参数。 - 初始化数据库:
python manage.py migrate
执行数据库迁移。 - 创建超级用户:
python manage.py createsuperuser
。 - 启动Neo4j服务,确保图数据库链接正常。
- 配置说明
xy_wrong/settings.py
中管理各种环境变量及路径设置,包括数据库配置、静态文件和媒体文件路径、第三方API密钥等。accounts/admin.py
修改了用户密码保存逻辑,确保密码以加密形式存储。- 前端静态资源和富文本编辑器已集成,合理配置MEDIA_URL与STATIC_URL。
- 启动方式
- 开发环境运行:
bash python manage.py runserver
- 生产部署可使用uwsgi、gunicorn等WSGI服务器配合Nginx进行服务托管。
开发说明
- 开发环境搭建
- 安装Python 3.9及pip。
- 创建虚拟环境(推荐使用
python3.9 -m venv .venv
)。 - 安装依赖库。
- 安装并配置Neo4j社区版,确保服务运行正常。
- 可使用VSCode、PyCharm等IDE,通过
.idea/
文件夹存储项目配置。 - 代码规范
- 遵循PEP 8 Python编码规范。
- Django模型中字段命名统一采用小写与下划线分隔,保证数据库设计规范。
- 视图函数尽量封装异常处理,保证系统稳定性。
- 管理后台采用
ModelAdmin
及TabularInline
增强数据管理体验。 - 前端模板通过Django模板语言实现动态渲染。 1100
![图片[1]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154039-1024x476.png)
![图片[2]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154109-1024x473.png)
![图片[3]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154115-1024x477.png)
![图片[4]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154118-1024x475.png)
![图片[5]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154123-1024x476.png)
![图片[6]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154128-1024x478.png)
![图片[7]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154128-1-1024x478.png)
![图片[8]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154132-1024x476.png)
![图片[9]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154137-1024x476.png)
![图片[10]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154140-1024x479.png)
![图片[11]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154144-1024x477.png)
![图片[12]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154148-1024x472.png)
![图片[13]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154151-1024x484.png)
![图片[14]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154159-1024x404.png)
![图片[15]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154202-1024x470.png)
![图片[16]-基于知识图谱的Android移动编程课程学习系统](https://qalangtao.com/wp-content/uploads/2025/06/微信图片_20250611154205-1024x473.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END