eucm/openlrs
OpenLRS, with minor packaging. Requires Redis and ElasticSearch to run.
1.0K
Open source Java based Learning Record Store (http://en.wikipedia.org/wiki/Learning_Record_Store, http://tincanapi.com/learning-record-store/) which is compatible with TinCanAPI (http://tincanapi.com/) and Experience API (http://www.adlnet.gov/tla/experience-api).
General
Statement API
About API
OpenLRS is a Java application built with Spring Boot (http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-documentation). OpenLRS manages configuration using Spring profiles. Currently there are two available profiles:
default - which uses in-memory datastorage
redisElasticsearch - which uses redis for tier1 storage and elasticsearch for tier2 persistent storage
OpenLRS is deployed as an executable jar file with Tomcat 7 embedded. Conversion to a war file is possible (http://spring.io/guides/gs/convert-jar-to-war-maven/).
Build
Run (in place for development purposes)
Deploy
This starts OpenLRS on port 8080. Changing the server port (and other properties) can be done on the command line (http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html)
OpenLRS allows for configurable tier 1 and tier 2 data storage options. Currently OpenLRS supports redis for tier 1 storage and Elasticsearch and MongoDB for tier 2 storage.
Note: If redis and elasticsearch are not running on localhost with the default ports you will need to update or override the relevant redis and elasticsearch properties - see the Overriding properties section below and the application-elasticsearch.properties and application-redis.properties files.
Configure tier1 and tier2 storage options in OpenLRS create a new properties file and include the appropriate Spring profiles and property values. For example, if you wanted to use redis for tier 1 storage and MongoDB for tier 2 storage your properties (let's call it prod.properties) file would contain:
spring.profiles.include: redis,mongo
openlrs.tierOneStorage=RedisPubSubTierOneStorage
openlrs.tierTwoStorage=NormalizedMongoTierTwoStorage
Then build and run OpenLRS as follows:
Build
Run (in place for development purposes)
Run in debug mode
Deploy
java -jar -Dspring.config.location=/path/to/prod.properties openlrs.jar
Details on externalizing configuration can be found [here] (http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html)
Some examples
A list of Spring-Boot properties can be found [here] (http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html) Some common properties of interest are listed below.
ECL (a slightly less permissive Apache2) http://opensource.org/licenses/ECL-2.0
Developed in the Apereo Learning Analytics (https://confluence.sakaiproject.org/display/LAI/) community.
Send questions or comments to the mailing list: analytics@apereo.org
docker pull eucm/openlrs