Install and configure Open edX with Valamis
Your organization might be looking into using edX or any other course or learning management systems. Many large organizations can have multiple systems for learning or course activities. Migration and integration projects can be difficult. Thus, it is important to be able to control the learning data for reporting, analytics and other purposes. This is why Experience API standard and Learning Record Store were created.
With this integration, you can connect external course environment to your Liferay platform for storing the learning activities to provide single source for learning analytics and gamification. You can use this approach to connect multiple cloud based or third party learning solutions to Valamis and Liferay. For example, you are able to connect learning performance metrics to your organization competencies, HR metrics and social intranet platform.
About Open edX
The Open edX platform is an open source, course management system (CMS) that is developed by edX. The Open edX platform is used all over the world to host Massive Open Online Courses (MOOCs) as well as smaller classes and training modules.
Valamis is an open source Learning Experience Platform (LXP), which not only enables formal learning but also social and informal learning. Valamis has strong emphasis on learning analytics, which are operated via Experience API (xAPI) and Learning Record Store (LRS). The combination of the Experience API and Valamis gives organizations a powerful tool to receive accurate analytics of learning processes of individuals as well as of groups of learners.
Installing Open edX
It should be noted, that the Official installation guide for Open edX using the Configuration repository only supports Ubuntu 12.04, but you can try to install it on a freshly installed Ubuntu 14.04 server with this guide. If you do, remember not to use default one-step install scripts, because it will check which platform version you are using.
When I installed the Open edX for the first time, I faced some issues. I was able to work around them with following steps:
In order to install the Open edX on Ubuntu 14.04 server, do the following steps:
1. Update and upgrade apt-packages
sudo apt-get update sudo apt-get upgrade
2. Install some additional packages
sudo apt-get install -y build-essential software-properties-common python-software-properties curl git-core libxml2-dev libxslt1-dev python-pip python-apt python-dev libxmlsec1-dev swig sudo pip install --upgrade pip sudo pip install --upgrade virtualenv
3. Clone the configuration repository
cd /var/tmp git clone -b release https://github.com/edx/configuration
You should allow password-based SSH authentication. Edit file:
configuration/playbooks/roles/common/defaults/main.ymland set COMMON_SSH_PASSWORD_AUTH to "yes".
4. Install requirements
cd /var/tmp/configuration sudo pip install -r requirements.txt
5. Run the edx_sandbox.yml playbook in the configuration/playbooks directory
cd /var/tmp/configuration/playbooks && sudo ansible-playbook -c local ./edx_sandbox.yml -i "localhost,"
6. Run Open edX
Go to http://localhost and try Demonstration course
1. If you got a message like this:
update-alternatives: error: no alternatives for libblas.so.3gf
then you have to modify the file:
command: update-alternatives --set libblas.so.3gf /usr/lib/libblas/libblas.so.3gf
command: update-alternatives --set libblas.so.3 /usr/lib/libblas/libblas.so.3
and then replace this line
command: update-alternatives --set liblapack.so.3gf /usr/lib/lapack/liblapack.so.3gf
with the following
command: update-alternatives --set liblapack.so.3 /usr/lib/lapack/liblapack.so.3
2. If you got message like this:
then you have to modify the file:
/var/tmp/configuration/playbooks/roles/elasticsearch/defaults/main.ymlby replacing https with http.
Configure Open edX for Valamis using Experience API
For the next step we configure Experience API integration between Open edX and valamis. Open edX will act as a Experience API client and send statements to Learning Record Store in Valamis. Client will authenticate using secure OAuth to LRS.
After you have installed Open edX platform and Valamis successfully, you should install edx-xapi-bridge
$ git clone https://github.com/adlnet/edx-xapi-bridge.git $ cd edx-xapi-bridge $ virtualenv env $ source env/bin/activate (env)$ pip install -r requirements.txt (env)$ deactivate
Edit the file xapi-bridge/settings.py and change the properties to match your environment.
Configuring settings.py file: in this file you should replace 3 fields, where
1) LRS_ENDPOINT = 'http://site.com/valamis-lrs-portlet/xapi/'
2) LRS_USERNAME and LRS_PASSWORD you can get, when you are create new account in Valamis Client Manager.
For example, for create new user in Valamis, open 'http://site.com/web/valamis/admin' (you need to setup Valamis Admin portlet and your url may vary) and click "+ADD NEW CLIENT" button
then write Application Title, for example, edx and mark all checkboxes at "Autorization Scope". Check, that Authentication Type is oauth and click "Save".
After that you can get "client id" and "client secret", where "client id" is LRS_USERNAME and "client secret" is LRS_PASSWORD. You should write all values with single quotes.
After configuring settings.py file you can run edx-xapi-bridge
$ source env/bin/activate (env)$ python xapi-bridge [watchfile] (env)$ deactivate
where [watchfile] is the path to the log to be watched. Default value [watchfile] is /edx/var/log/tracking.log. Make sure the user account running the xapi-bridge has permissions to read the log file.