杜小虎+张太红+骆超
摘要:近几年,大型开放式在线学习平台Mooc(massive open online courses)风靡全球。现如今,Udacity、Coursera、edX是主流的开放式网络学习课程,三大网络学习平台都有不同的特点。Open edx平台以其开源代码为优势,被国内外众多技术人员所接纳。许多技术人员以edx平台为基础进行二次开发,形成了许多有特色的开放式学习平台。该文主要介绍以edx平台为基础,在底层框架基础上进行简单的本地化、邮箱激活、页面修改操作,最终设计实现本人的个性定制网络学习平台。
关键词:Mooc;Open edx;二次开发;个性定制
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)02-0055-03
Design and Implementation of Personality Customization on Open EDX Platform
DU Xiao-hu, ZHANG Tai-hong, LUO Chao
(School of Computer Science and Information Engineering,Xinjiang Agricultural University, Urumqi 830000, China)
Abstract: In recent years,Mooc is popular all over the world.Now,Udacity、Coursera、edx are mainstream open online learning courses.The three major online learning platfroms have different characteristics.The open edx platform with its open source code, has been accepted by many technical personnel both at home and abroad.Many technical personnel Based on the edx platform for secondary development,fromed many distinctive open online platforms.This article is basis of the edx platfrom,on the basis of the underlying framework for simple localization、email activation、page modification,finally designs and implements my personalized customized web-based learning platform.
Key words: Mooc; secondary development; personalized customization; Open EDX
Mooc(大規模在线教育平台)兴起于2012年[1],这种在线教育方式近年来发展迅猛,尤其是近一两年。随着高校教育改革和创新,为了方面人们对学习的需求,保证学习质量和效果,大量在线教育平台在国内外涌现。Udacity、Coursera、edx三大Mooc平台一直是国内外流行的在线学习平台。三大平台中,edx以其开源非盈利特点,得到广阔的发展。清华大学学堂在线是采用此平台为基础,根据自身需求对平台做的个性化。
本文是以edx平台作为底层框架,开发基于马业在线教育平台。现阶段工作是熟悉edx平台体系结构,能够修改底层代码,完成个性化平台定制。后续还会继续跟进和拓展,不断优化平台,最终完成马业在线培训平台的建设。
1 总体设计
Edx平台是一种庞大、复杂的开源框架,底层代码复杂多样,要实现个性定制需要对edx平台基本架构有所认识。根据自身学习,在本地计算机上搭建edx平台,搭建完成后实现本地化、邮箱激活、页面修改等个性定制,具体方案设计如图1。
2 具体功能实现
2.1 edx平台搭建
在部署edx平台之前,建议在自己电脑上安装搭建edx平台,在本地计算机完成个性化定制,能够对功能拓展,在将平台部署在服务器中。这样利于初学者对edx平台学习,出现错误利于修改。edx官网已给出安装过程,但因国内网络资源限制,安装过程比较缓慢。在此对平台搭建不做过多说明,只简单列出平台搭建环境所需软件及硬件要求:
软件:虚拟机 采用oracle公司的Virtualbox
镜像 Ubuntu16.04amd64(oraclejdk需要)
硬件:电脑配置 至少8G运行内存 至少2GHz 或者EC2
至少25G空闲磁盘 推荐50G作为生产运行用
2.2 本地化
完成搭建Open edx平台,开始显示的语言为英文,为了方便使用,必须进行本地化。edx平台采用专业的集成翻译平台transifex,进行平台的翻译、管理工作。在transifex平台,有许多爱好者免费在这里翻译。我们只需要将翻译好的内容下载到本地,通过编译覆盖edx英文语言,应用中文即可实现本地化。以下为用transifex进行本地化步骤:
1) 安装transifex客户端
Sudo apt-get install transifex-client
2) 在home目录新建transifex配置文件并编辑写入以下内容
[https://www.transifex.com]endprint
hostname = https://www.transifex.com
username = user #自己申请的用户名
password = pass #密码
token =
3) 修改.transifexrc文件权限
Chmod o+rw ~/.transifexrc
4) 切换到 edxapp 用户并加载对应的环境变量
sudo -u edxapp bash
source /edx/app/edxapp/edxapp_env
cd /edx/app/edxapp/edx-platform
5) 修改lms.env.json和cms.env.json 文件
“LANGUAGE_CODE”:”zh-cn”
6) 执行翻译
tx pull -l zh_CN 抓取中文語言包 paver i18n_generate
7) 更新assets 并重启
paver update_assets lms —settings aws
paver update_assets cms —settings aws
sudo /edx/bin/supervisorctl restart edxapp:
完成以上操作,edx平台的本地化与国际化基本完成。在transifex中,edx平台汉化不是100%完整的,有些细节地方没有翻译,这就需要我们从底层翻译文件进行翻译。在conf/locale/zh_cn文件夹里存着这.mo和.po文件,其中.po文件就是我们要进行翻译的文件,上传编译后生成.mo文件。我们只需要在.po文件msgid” ”中写入我们翻译的英文语言,在msgstr” ”写入对应的中文即可。如图2是汉化完成后的平台样式。
2.3 邮箱激活
邮件激活是注册账号时候使用邮箱验证功能。注册后发送一封邮件到注册邮箱里面,然后点击邮箱里面的链接激活邮箱。这个其实就是通过第三方,将数据传递给用户来获取验证码。邮件激活服务可以专门搭建邮件服务器负责发送邮件,可以采用SMTP(简单邮件服务协议)来发送激活邮件。本次采用SMTP发送激活邮件,使用qq第三方客户端发送。具体如下:
1) 打开smtp并记住第三方授权密码
查看各种收发邮件是否支持smtp协议,如果支持需要在邮件设置中打开smtp。以qq邮箱为例:
打开qq邮箱smtp 步骤:登陆邮箱—设置—账户—将滚动条拖到最后,找到smtp 打开,会获得一个授权第三方登陆密码(在lms.auth.json和cms.auth.json中需要填入的密码)
2) 配置发件服务器地址和端口:
sudo vi /edx/app/edxapp/cms.env.json
sudo vi /edx/app/edxapp/lms.env.json
修改"EMAIL_HOST": "smtp.163.com", (qq修改为 smtp.qq.com)
"EMAIL_PORT": 25, (端口不变)
"EMAIL_USE_TLS": true,
"SITE_NAME": "cherry.cs.tsinghua.edu.cn", (发送激活邮件后 点击激活进入的页面 本机127.0.0.1:98)
"DEFAULT_FROM_EMAIL":jennyzhang8800@163.com"(自己的qq账号120274165@qq.com)
3) 配置发件账号和密码
sudo vi /edx/app/edxapp/cms.auth.json
sudo vi /edx/app/edxapp/lms.auth.json
"EMAIL_HOST_USER": "jennyzhang8800@163.com",(自己的邮箱账号 120274165@qq.com)
"EMAIL_HOST_PASSWord":"*****", (第三方授权密码 第一步给的)
4) 确认无误,重启edxapp
sudo /edx/bin/supervisorctl restart edxapp:
sudo /edx/bin/supervisorctl restart edxapp_worker:
完成以上步骤即可完成第三方邮件发送,因为是本地计算机,暂时只用qq的SMTP来发送激活邮件,后期进行开发会使用专门邮件服务器或用云端服务来发送激活邮件。
2.4 页面样式修改
页面修改是定制个性化平台的主要部分。页面修改可以直接在edx底层代码上直接修改,也可以新建主题(theme)进行修改。直接修改底层代码出现错误时不利于还原,所以建议新建主题,将需要修改页面和Css样式拷贝到自己的主题下面进行修改。
Edx安装完成开始使用的是默认主题,我们可以更换edx平台自带的主题。在使用自己的主题前,需要验证更换edx自带主题是否成功,只有验证成功,才可以应用自己的主题。否则可能在安装中或者底层代码有错误。此时需要查看日志错误,进行修改后验证主题应用。
Edx平台自带主题有edx.org、open-edx、red-theme、stanford-style。默认主题为open-edx,可以直接使用的主题red-theme.stanford-style需要修改文件才能使用,其它两个主题不适用于新版本。endprint
1) 应用主题需要创建超级用户如下:
sudo su -s /bin/bash edxapp
/edx/bin/python.edxapp /edx/bin/manage.edxapp lms manage_user zth zth@xjau.edu.cn —staff —superuser —settings=aws
设置超级用户密码:
exit
cd /edx/app/edxapp/edx-platform
sudo -u www-data /edx/bin/python.edxapp./manage.py lms —settings aws changepassword zth
完成以上操作,超级用户创建成功。
2) 修改lms.env.json ENABLE_COMPREHENSIVE_THEMING 为true
在COMPREHENSIVE_THEME_DIRS 添加themes路径
3) 登陆后台管理员界面(http://192.168.0.103/admin/)找到Theming进入site theme,修改Theme dir name 为自己应用的主题,如red-theme。应用完成,重启edxapp即可观察是否应用成功。
自建theme主题需要知道主题的文件目录结构,如图3目录结构。
文章以自建主题my-theme为例,进行后续页面修改操作。
1) 修改logo圖片
直接将应用主题logo拷贝到my-theme主题下的lms/static/images 中即可。应用图片大小一定要和原图片大小一致,否则需要进行样式调整。
2) 背景图片修改
将edx默认主题的index.html和footer.html文件拷贝到/my-theme/lms/template中,编辑index.html. 找到 (背景图片在:themes/my-theme/lms/static/images下面) 3) 修改欢迎来到open edx文字,删除背景,只显示文字。 编辑index.html,修改 Style=”background:transparent; box-shadow:0 0 0 0;” 4) 删除底部Open edx图标和版权说明 编辑footer.html 找到