Source Code

Last Updated 10/28/2015

IOER maintains an open source copy of the site technologies on our GitHub repository. This repository is periodically updated as significant changes are rolled out.

Last Update: 2015/10/28

  • Uploaded source to match the production version of Oct. 28, 2015
  • Uploaded latest backup copies of the sandbox databases, including a sql script for restoring to Sql Server 2012. Note there is no longer a Gateway database.
    In Github, these can be found in: https://github.com/siuccwd/IOER/tree/master/Other (for now, pending another update)
  • These databases contain up-to-date code tables and representative data
  • The IOER search uses an Elastic index. A fully built index is included in the server folder referenced below. This collection matches the sandbox databases, allowing a developer to immediately see search results
  • Added a folder containing common folders referenced by the project configuration files. These can be unzipped locally, allowing a developer to quickly get the application running. of server tools to simplify initial installation, including:
    • Elastic Index - contains an index collection that matches the sandbox databases
    • Supporting folders for uploaded content and thumbnails
    • A tools folder

Table of Contents

Illinois Open Educational Resources (IOER)

The IOER (http://www.ilsharedlearning.org) is for sharing, creating, and curating learning resources.

This project was developed using Microsoft Visual Studio (2012+), C#, ASP.Net, and Sql server 2012. The community edition of Visual Studio (https://www.visualstudio.com/en-us/news/vs2013-community-vs.aspx) can be used effectively for development. The site includes learning resource metadata and paradata imported from the national Learning Registry (LR) (http://learningregistry.org) and tools to publish resource data to the LR.

Get more information about developer documentation http://ioer.ilsharedlearning.org/developers.

Key Features

  • Consume from and publish to the LR.
  • Search for resources using ElasticSearch (https://www.elastic.co/) (version 1.7.2) based index.
  • Search filters, including a learning standards browser (e.g. Common Core, NGSS) using Achievement Standards Network (ASN) http://www.achievementstandards.org/
  • Resources can be aligned to the Common Core, NGSS, Illinois K-12 standards, Illinois Adult Education Standards, and a variety of national standards.
  • Open Libraries with collections to share and curate resources.
  • Create Learning Lists for structuring resources ranging from small sets of learning activities to an entire curriculum.
  • Follow Libraries and Learning Lists.
  • Widgets (http://ioer.ilsharedlearning.org/widgets/) for seamless access to Libraries, Learning, search and more on external websites.

Instructions for Setting up IOER

These are instructions for getting the RUSSEL, DECALS, and Competency System installed and running on a VMware VM running Ubuntu Linux version 14.04.3. These instructions can also be used to setup the system software on a server running Ubuntu Linux version 14.04.3.

Code projects in this Github repository required to build DECALS:

Prerequisites:

  • Microsoft Visual Studio 2012 or higher (community edition is fine)
  • Microsoft Sql Sever 2012+ (express edition is fine)
  • A web server running Internet Information Server (IIS)
  • Windows 7+
  • ElasticIndex (complete package is included)
  • Java 8+ for use with Elastic

 

Development Environment

  • Windows PC, Windows 7+
  • RAM: 8GB
  • 50gb free space

Install Visual Studio and Sql Server

Install Eclipse Development Environment

Download and install Eclipse Kepler v4.3 for Java EE Developers 64-bit on VM

Install GWT Eclipse Plugin

Install Java 7:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
sudo apt-get install oracle-java7-set-default

Install Java JDK:

sudo apt-get install default-jdk

Install Apache Ant/Git:

sudo apt-get install ant git

Install Apache Tomcat 7:

sudo apt-get install tomcat7

Install Apache Solr DBs:

Download Solr

Untar file:

tar -zxvf solr-4.10.0.tgz

Copy contents of folder /solr-4.10.0/example/lib/ext/ to /usr/share/tomcat7/lib/

cp -r ~/solr-4.10.0/example/lib/ext/*.jar /usr/share/tomcat7/lib/

Edit file "tomcat-users.xml" in directory /var/lib/tomcat7/conf/ and setup these users:

<tomcat-users>
  <role rolename="manager"/>
  <role rolename="manager-gui"/>
  <role rolename="admin"/>
  <role rolename="admin-gui"/>
  <user username="tomcat" password="tomcat" roles="manager,manager-gui, admin, admin-gui"/>
</tomcat-users> 

Setup Apache Solr DB for DECALS DB:

Copy contents of folder /solr-4.10.0/example/solr/ to /var/lib/tomcat7/darSolr

sudo mkdir /var/lib/tomcat7/darSolr/
cp -r ~/solr-4.x.x/example/solr/ /var/lib/tomcat7/darSolr/ 

Copy /solr-4.10.0/dist/solr-4.10.0.war to /var/lib/tomcat7/darSolr/darSolr.war

cp ~/solr-4.10.0/dist/solr-4.10.0.war /var/lib/tomcat7/darSolr/darSolr.war

set permissions on darSolr folder:

sudo chmod -R 755 /var/lib/tomcat7/darSolr/

Create file "darSolr.xml" in directory /var/lib/tomcat7/conf/Catalina/localhost/ with the following contents:

cd /var/lib/tomcat7/conf/Catalina/localhost/
sudo vim darSolr.xml
<?xml version="1.0" encoding="utf-8"?>
<Context docBase="/var/lib/tomcat7/darSolr/darSolr.war" debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/var/lib/tomcat7/darSolr" override="true" />
</Context>

Setup Apache Solr DB for LR Registry DB:

Copy contents of folder /solr-4.10.0/example/solr/ to /var/lib/tomcat7/registrySolr

sudo mkdir /var/lib/tomcat7/registrySolr/
cp -r ~/solr-4.x.x/example/solr/ /var/lib/tomcat7/registrySolr/ 

Copy /solr-4.10.0/dist/solr-4.10.0.war to /var/lib/tomcat7/registrySolr/registrySolr.war

cp ~/solr-4.10.0/dist/solr-4.10.0.war /var/lib/tomcat7/registrySolr/registrySolr.war

set permissions on registrySolr folder:

sudo chmod -R 755 /var/lib/tomcat7/registrySolr/

Create file "registrySolr.xml" in directory /var/lib/tomcat7/conf/Catalina/localhost/ with the following contents:

cd /var/lib/tomcat7/conf/Catalina/localhost/
sudo vim registrySolr.xml
<?xml version="1.0" encoding="utf-8"?>
<Context docBase="/var/lib/tomcat7/registrySolr/registrySolr.war" debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/var/lib/tomcat7/registrySolr" override="true" />
</Context>

Download the source code from this repository:

Create a “Source/” directory to hold the master repositories from Github and create a “Development/” directory to build the code.

sudo mkdir Source
sudo mkdir Development

To download the repositories from Github:

cd Source
sudo git clone <DECALS Github repo URL>  

Once the files have finished downloading copy them over to your Development/ folder:

sudo cp -R * ~/Development/

Setting up and building the decals-ui source project

Setting up the decals-ui and EwGWTLib projects

Run the Eclipse IDE Once Eclipse has finished loading,

  • go to File->Import
  • From the Import dialog, select General->Existing Projects into Workspace and click Next>
  • Browse to ~/Development/decals-ui/ and click Finish

This should place the project decals-ui in the Project Explorer. Next, from the Import dialog,

  • select General->Existing Projects into Workspace and click Next>
  • Browse to ~/Development/EwGWTLib/ and click Finish

This should place the project EwGWTLib in the Project Explorer.

  • Right-click on the decals-ui project and select properties
  • From the properties dialog select Java Build Path.
  • Under the Libraries tab, make sure the GWT SDK is set. If not, click edit and select Use specific SDK: GWT 2.6.0 or higher.
  • Right-click on the EwGWTLib project and select properties
  • From the properties dialog select Java Build Path.
  • Under the Libraries tab, make sure the GWT SDK is set. If not, click edit and select Use specific SDK: GWT 2.6.0 or higher.
  • If the GWT SDK library is not in the list, make sure that the following jar files point to plugins\com.google.gwt.eclipse.sdkbundle_2.6.0\gwt-2.6.0: ⋅⋅* gwt-dev.jar ⋅⋅* gwt-user.jar ⋅⋅* validation-api-1.0.0.GA.jar ⋅⋅* validation-api-1.0.0.GA-sources.jar

To build the decals-ui project:

  • Right-click on the decals-ui project and select Google->GWT Compile
  • From the dialog choose the output style of choice and click compile.

Building the LEVR components (levr.war file)

Some changes need to be made in the original build.xml files:

  • in build.xml for eduworks-common, change "eduworks-common-usage" on top line to "eduworks-common-jar"
  • in build.xml for levr-core change "levr-core-dist" on top line to "levr-core-jar"

The projects: eduworks-common, levr-core and levr-base must be built in the following order: 1. eduworks-common 2. levr-core 3. levr-base

To build each project, from the Linux commandline run:

cd ~Development/LEVR/eduworks-common/
sudo ant 
cd ~Development/LEVR/levr-core/
sudo ant 
cd ~Development/LEVR/levr-base/
sudo ant

Once each project has been built, copy the file, levr.war, from the Development/LEVR/levr-base/dist folder to /var/lib/tomcat7/webapps/ directory

sudo cp levr.war /var/lib/tomcat7/webapps/

NOTE: After the initial LEVR build and before copying any newly built levr.war file over, it is a good idea to stop the tomcat7 service and remove the old levr.war file and associated levr directory from the /var/lib/tomcat7/webapps/ directory:

sudo service tomcat7 stop (wait to start service again once all projects are setup and configured – see below)
cd /var/lib/tomcat7/webapps/
sudo rm –R lev*

Installing LEVR scripts

Create a directory, etc/ under /var/lib/tomcat7/:

sudo mkdir etc/

Copy *.rs2 script files from ~/Source/scripts/base-v2/, ~/Source/scripts/base/, ~/Source/scripts/competency/, and ~/Source/scripts/decals/ to /var/lib/tomcat7/etc directory:

cd ~/Source/scripts/base-v2/
sudo cp * /var/lib/tomcat7/etc/
cd ~/Source/scripts/base/
sudo cp * /var/lib/tomcat7/etc/
cd ~/Source/scripts/competency/
sudo cp * /var/lib/tomcat7/etc/
cd ~/Source/scripts/decals/
sudo cp * /var/lib/tomcat7/etc/

make the owner of etc/ and all sub files and folders tomcat7:

sudo chown –R tomcat7:root etc/

Creating a location for the database files

Create a directory, db/ under /var/lib/tomcat7/:

sudo mkdir db/

make the owner of db/ and all sub files and folders tomcat7:

sudo chown –R tomcat7:root db/

Install and configure the decals-ui project

Create a decals/ directory under webapps/ROOT/:

sudo mkdir /var/lib/tomcat7/webapps/ROOT/decals/

Copy the contents of the ~/Development/decals-ui/war/ to /var/lib/tomcat7/webapps/ROOT/decals/:

cd ~/Development/decals-ui/war/
sudo cp –R * /var/lib/tomcat7/webapps/ROOT/decals/

Open decals/js/installation.settings for edit:

cd /var/lib/tomcat7/webapps/ROOT/decals/js/
sudo vim installation.settings

File contents should be:

site.name="DECALS"
root.url="http://<server url>"
esb.url="http://<server url>/levr/api/custom/"
alfresco.url="N/A"
site.url="http://<server url>/decals/"
help.url="N/A"
feedback.email="N/A"
competency.url="http://<server url>/competency/"
int.search.thumbnail.root="http://<server url>/thumb/thumbnails/"

save the file.

Open /var/lib/tomcat7/etc/decals.competency.config.rs2 for edit:

The following lines should be edited for your local server environment:

line 12:

defaultURIPrefix = #string(str="http://<server uri>/competency/");

line 13:

comment out this line by adding //

line 36:

defaultDirectory = #add(b="etc/competency/");

line 45:

structureDirectory = #add(b="etc/structure-files/");

line 54:

backupRestoreKeyPath = #string(str="etc/competency.backupRestore.key/");

line 55:

comment out this line by adding //

save the file.

Open /var/lib/tomcat7/etc/decals.config.rs2 for edit:

The following lines should be edited for your local server environment:

line 4:

initialAdminPassword = #add(a="<whatever you want as password>");

line 9:

fileDownloadUrlPrefix  = #string(str="http://<server uri>/levr/api/custom/decalsFileDownload?fileId=");

line 14/15:

lrSearchApiKey = #string(str="<insert key here>");
comment out this line by adding //

line 17/18:

mashapeKey= #string(str="<insert key here>");
comment out this line by adding //

line 23/24:

darSolrUrl = #string(str="http://<server uri>/darSolr/");
registrySolrUrl = #string(str="http://<server uri>/registrySolr/");

line 30:

fileDownloadUrlPrefix  = #string(str="http://service.metaglance.com/metadataLite/russel/generate");

line 72:

defaultDirectory = #string(str="./db/");

line 79:

rootDbDirectory = #string(str="db/");

save the file.

Installing the competency-ui source

Create a competency directory under webapps/ROOT/:

sudo mkdir /var/lib/tomcat7/webapps/ROOT/competency/

Copy the competency-ui files into the new directory:

cd ~/Source/competency-ui/
sudo cp –R * /var/lib/tomcat7/webapps/ROOT/competency/

Move the WEB-INF directory up a level to ROOT/:

cd /var/lib/tomcat7/webapps/ROOT/competency/
sudo mv WEB-INF ../

Open /var/lib/tomcat7/webapps/ROOT/competency/index.html for edit:

The following lines should be edited for your local server environment:

line 9:

change <base href="/"> to <base href="/competency/">
#### <a name="3_16_2"></a>Open /var/lib/tomcat7/webapps/ROOT/competency/js/definitions.js for edit: 
The following lines should be edited for your local server environment:
line 4:

change: value('apiURL', 'http://localhost:9722/api/custom/competency/') to: value('apiURL', 'http://:/levr/api/custom/competency/')

### <a name="3_17"></a>Final Steps
Make sure the following files, directories and subdirectories are set to ownership tomcat7:root:
+ /var/lib/tomcat7/etc/
+ /var/lib/tomcat7/db/
+ /var/lib/tomcat7/darSolr/
+ /var/lib/tomcat7/registrySolr/
+ /var/lib/tomcat7/webapps/levr.war
+ /var/lib/tomcat7/webapps/ROOT/decals/
+ /var/lib/tomcat7/webapps/ROOT/competency/

sudo chown -R tomcat7:root

To start the tomcat7 service:

sudo service tomcat7 start


Navigate to http://<server url>/decals/ to visit DECALS website
Navigate to http://<server url>/darSolr/ to check darSolr DB stats
Navigate to http://<server url>/registrySolr/ to check registrySolr DB stats