如何用开源的Drupal来构建视频教学平台

 

Drupal的核心功能是内容管理、文件管理,可以强大的灵活定制各种数据结构、定义数据类型、数据分类、元数据,所以对于构建在线教育平台、在线视频教学平台来讲,是非常合适的,也是很容易灵活实现的。通过Drupal的灵活性和内容管理特性,如何高效又实现一个在线教育平台呢?我们总结了一下几个核心要点,需要来解决:

       (1)用户体系,实现管理员/发布者的管理。

       (2)权限体系,对内容管理权限的分配。

       (3)课程管理,对课程的管理,章节管理、小节管理。

       (4)视频管理,管理视频文件、上传、存储和播放视频。

       (5)课件管理,对课程的课件进行管理,文件的存储、分类和下载。

       (6)分类体系,对课程的课件进行分类管理。

       (7)学习日志,对学习进行日志记录,包括学习时长、是否完成等。

      

 

Drupal的实现方式

 

对于Drupal来讲,几乎能满足课程系统的所有功能,比如内容管理、文件管理、分类和权限等,我们把课程系统的对应的实现方式都列了出来,并且用最简单的描述,尽量来实现课程系统:

Drupal的核心体系:

       (1)用户体系,Drupal自带用户体系,无需新建user表。

       (2)权限体系,Drupal最优秀的权限模型,无需代码,即可完成最灵活的权限管理。

       (3)课程管理,内容管理是Drupal的核心,构建一个新的内容类型,可以自定义字段等,完全能非常灵活实现。

       (4)视频管理,可以用默认的Drupal的media来管理,当然也可以对接到云存储、块存储,比如OSS,亚马逊S3。

       (5)课件管理,Drupal默认的文件管理,关联课程即可。

       (6)分类体系,Drupal默认强大得分类提,可以完全实现对课程的课件进行分类管理。

       (7)学习日志,可以使用Drupal的日志系统,也可以新建日志追踪系统,记录学生的学习,进行统计和导出。

     

 

系统核心架构

 

根据Drupal的特性以及内容类型的构建,我们来梳理了一下整个在线教育系统的核心的架构图,底层是基于云平台、RDS,存储使用OSS的块存储,应用开发基于Drupal的模块,访问是Headless的前端构建,具体如下: 

 

 

存储管理架构图

 

除了Drupal默认的一些特性之外,还可以使用一些高级特性,比如Drupal的全文检索,集群化、自动化等,具体如下:

       (1)Search API:可以通过Solr/ES等系统完成任何数据的存储和检索。

       (2)Drupal和云存储:Drupal可以与任何的块存储、云存储集成。

       (3)Drupal集群:可以实现集群来实现学院、学科等集群的模式。

       (4)Drupal CI/CD:自动化+Docker,Drupal的容器方案。

 

下图是服务器和存储的架构图: