Open edX Ginkgo.2 LMS演示 CMS演示
测试账号 honor@example.com 密码edx
Open edX Ginkgo.2 Insights演示
测试账号 honor@example.com 密码edx
Open edX官方文档及讨论区
edX Docs / atlassian / openedx-announce / openedx-ops / openedx-analytics / edx-code / slack / Meetup

eduStack公众号

联系我们

申请Open edX Ficus.3教育版
教育版是我们本地化定制的Open edX版本,达到了高度可用性,仅面向非盈利机构(学校、公益组织)开放。
本地镜像下载 Eucalyptus OVA
申请Open edX Ficus公有云镜像
目前我们提供阿里云(华北1)的Ficus镜像。
支持我们,使用以下主机来运行你的应用

开源教育技术QQ群347307364

仅供院校教师内部交流,请在此申请加入

Open edX中国用户组QQ群106781163

自由加入,交流Open edX部署、开发、运维。

开源教育技术讨论区

讨论区现已开放注册,我们将在讨论区分享更多开源教育技术经验。

Open edX Con2018摘要:Getting Started with Open edX Development

首先广告一下@种瓜 写的企业服务解读  https://blog.just4fun.site/edx-enterprise.html

本文将简单介绍这个演讲 https://openedx2018.sched.com/event/EUAV/getting-started-with-open-edx-development,这个演讲介绍了如何入门Open edX开发。两位演讲者是edX架构师Nimisha Asthagiri以及AppSembler的Nate Aune。这里是演讲的PDF文档 https://schd.ws/hosted_files/openedx2018/c7/Getting%20Started%20with%20Open%20edX%20Development.pdf 。

核心能力

全栈Web开发 (Python/Django/JS)

DevOps 经验 (Linux, Cloud hosting)

开源项目经验也有帮助

Open edX用到的技术

Django (web开发框架)

Python (脚本语言)

ReactJS/BackboneJS (前端语言)

MySQL (学生数据存储的数据库)

MongoDB (课程数据存储的数据库)

RabbitMQ (处理后端任务)

Ansible (配置管理)

Hadoop (分布式处理)

领域

架构图

这里提供了不同时期的架构图。其实架构并没有大的变化,表现的角度不同。

现场练习

启动/停止 LMS 和 CMS (Studio)

创建superuser

改变platform name

对theme做一个小修改

安装和启用第三方 XBlock

练习不覆盖的

Deploy an Open edX site to production Build a custom theme from scratch Create an XBlock from scratch Discuss every feature Open edX provides Localization and translations

扩展Open edX的成本

文档和社区

Official docs.edx.org

Building and Running Open edX

Installing, Configuring and Running Open edX Open

edX Developer Guide

edX’s Confluence Wiki

Open edX Youtube Channel

edX Architecture Onboarding

edx-code Mailing list

Slack community

Stackoverflow

edXchange

 

在PDF里有更多的具体操作文档。本文不再贴出。

Open edX 2018 Conference

Open edX 2018年会已经在加拿大蒙特利尔举办结束。本次会议带来了不少技术亮点。

我们会陆续进行一些技术分享的解读。社区里的其他朋友也会解读各自感兴趣的部分,然后汇总为一个报告,力图为大家展现当前的Open edX技术图景。

官方的会议文档列表  https://openedx.atlassian.net/wiki/spaces/COMM/pages/756384075/Open+edX+2018+Presentations

官方的会议日程  https://openedx2018.sched.com/

Open edX社区捐赠计划

社区计划开发高级Open edX课程,提供给捐赠社区的企业学习。目前规划的内容包括:

  • 分布式部署
  • 常见的部署后配置(个性化、安全、购物车等)
  • Xblocks开发
  • 其他实践技巧

捐赠企业将获得一个访问高级课程的账号。更多具体信息请联系我们 info@edustack.org。

捐赠企业

广州英荔教育科技有限公司

 

OpenET系列之一:CAS安装与配置


一、准备工作

CAS的Github:https://github.com/apereo
CAS官方网站:https://apereo.github.io/cas/5.2.x/
服务器信息:Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)
JDK版本:1.8.0_141
Tomcat版本:Tomcat8

二、CAS安装

准备好服务器环境后,从GitHub上下载cas-gradle-overlay,目前使用的是CAS-5.0.6版本,所以本文也以该版本为例进行说明。各个版本的CAS在功能上略有不同,大体的部署步骤基本相似,推荐使用5以上的稳定版本。本篇文章不涉及到对CAS的源码进行修改,采用Gradle-overlay的方式进行部署,启动Tomcat后即可直接使用。

进入下载好的CAS目录下,构建CAS

sudo ./gradlew clean build
该命令会从网络下载必要的组件,第一次时间较长,往后就会快很多。

{CAS-dir}/cas/build/libs/cas.war

即为构建好的war包,将该文件复制到

{Tomcat-dir}/webapps/

目录下,重启Tomcat,即可通过浏览器访问

localhost:8080/cas

如果将war包重命名为ROOT.war,则可以直接通过

localhost:8008

访问
注:{CAS-dir}即为下载的CAS目录,{Tomcat-dir}即为Tomcat的安装目录

三、https与数据库连接配置

在{Tomcat-dir}/目录下

sudo vim server.xml

将Tomcat配置上自己的https证书

在{CAS-dir}/目录下

sudo vim cas/build.gradle

dependencies {
compile “org.apereo.cas:cas-server-webapp:${project.’cas.version’}@war”
compile “org.apereo.cas:cas-server-support-jdbc:${project.’cas.version’}”
}

加入jdbc依赖。注意,该依赖包括了大部分数据库的driver,但是没有oracle数据库的,如果需要使用oracle数据库,需要单独下载驱动后放置在

{Tomcat-dir}/webapps/cas/WEB-INF/lib/

目录下

sudo vim {Tomcat-dir}/webapps/ROOT/WEB-INF/classes/application.properties

参考 https://apereo.github.io/cas/5.2.x/installation/Configuration-Properties.html#query-database-authentication
进行配置,包括数据库链接,用户名密码等等。
比较重要的属性有

cas.authn.jdbc.query[0].sql=SELECT 密码字段 FROM table WHERE 用户名字段=?
cas.authn.jdbc.query[0].healthQuery= cas.authn.jdbc.query[0].url=
cas.authn.jdbc.query[0].dialect= cas.authn.jdbc.query[0].user=
cas.authn.jdbc.query[0].password= cas.authn.jdbc.query[0].driverClass=

配置好后,注释掉最后一行

cas.authn.accept.users=casuser::Mellon

重启Tomcat,重新访问即可通过数据库内的用户名密码登录。

四、Service Management配置

我们采用Service Management管理需要通过CAS登录的应用服务,并且使用json方式存储这些服务的信息。
从GitHub上下载cas-management-overlay,在{CAS-Management}目录下执行

sudo vim pom.xml

添加依赖

<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-json-service-registry</artifactId>
<version>${cas.version}</version>
</dependency>

保存后执行

sudo ./build.sh run
生成的.war文件位于

{CAS-Management}/target

在{CAS-dir}/目录下

sudo vim cas/build.gradle
添加依赖

compile “org.apereo.cas:cas-server-support-json-service-registry:${project.‘cas.version’}”

将新生成的两个.war文件放入{Tomcat}/webapps目录下,通过

localhost:8080/cas-management

访问应用管理。其配置文件位于

/etc/cas/

目录下。

轻量级Open edX数据分析系统的设想

Open edX包含一个数据分析系统Insights。它包含三个组件:

  • Pipeline,用于将LMS的log文件归集到Hadoop进行计算,并把计算结果写入Mysql。
  • DataAPI,用于将Mysql中的分析结果输出给Insights使用。
  • Insights,用于展示分析结果。

目前是一个重量级的系统。针对的是edx.org这种千万级别的用户网站产生的数据。大量的log被输送到Hadoop进行离线计算用来展示。因此对于小规模的Open edX部署,数万人级别的用户,这样的计算太繁琐。

我们计划开发一个轻量级的数据分析系统。有两个主要方向:

  • 使用python计算来取代hadoop,实现一个基于pandas的pipeline。还在insights里面展现
  • 直接在Inistructor Dashboard里面加入分析展现。可以看整个课程,或者单个学生的学习分析

这两个系统会全部开源。有兴趣一起研究的朋友可以参与。

Open edX Ginkgo.2 OVA镜像文件下载

镜像基于官方文档制作。去掉了Insights和AnalyticsAPI。

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/146440579/Native+Open+edX+Ubuntu+16.04+64+bit+Installation

 

  • 硬件配置 1CPU/4G RAM/500G HD
  • Ubuntu用户 edustack,密码 edustack.org
  • 没有生成随机密码,各种系统服务都使用默认密码。仅用于开发测试。

下载地址

http://202.196.166.180/downloads/%E5%AE%9E%E9%AA%8C%E8%BD%AF%E4%BB%B6/%E9%95%9C%E5%83%8F/edustack-ginkgo2.ova

百度网盘

https://pan.baidu.com/s/1qZ8QIsO 密码:fxaz

https://pan.baidu.com/s/1sngEEoX 密码:1s29

运维文档

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/60227913/Managing+OpenEdX+Tips+and+Tricks

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/19662636/How-to+articles

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/88375372/Common+Issues+and+How+to+Fix+Them

开发文档

https://openedx.atlassian.net/wiki/spaces/OpenDev/overview