- Current release: 0.10.1
- Supports xAPI spec <= 1.0.3
Important note: lxHive changes ownership. Our organisation name changes from Brightcookie to G3 International. Please update your remotes in your fork.
# given your linked remote's name is "upstream"
git remote set-url upstream <TODO>
Important note: Current version (0.10.0) is not compatible with older lxHive versions. It is not possible to upgrade a legacy lxHive instance. This incompatibility is due to :
- different server requirements
- a changed database model
- behavioural changes (permissions)
See the changelog for more details. At the moment there are no plans to release an open source database migration script. Please get in touch with us should you need to migrate data.
1. Introduction
lxHive is a fast and lightweight open source xAPI conformant Learning Record Store (LRS). lxHive logs and returns activity statements as defined in the Experience API specification (formerly TinCan API) currently at xAPI Version 1.0.3.
The Experience API (also referred to as 'xAPI') is a learning software specification that allows online learning content and systems to interact allowing recording and tracking of all types of learning experiences. It is designed to replace the legacy SCORM Standard and is steered by the US Dept. of Defense ADL (Advanced Distributed Learning). It allows for the efficient aggregation and analysis of learning data as well as allowing learning designers a flexible and intelligent way to design better learning experiences. The Experience API is able to accept learning experiences from any device and/or medium (mobile, tablet, desktop), both in an offline as well as online mode.
The results of learning experiences are stored in a Learning Record Store (LRS). The LRS is defined as part of the Experience API Specification and controls at its core the following functions:
- Authentication of authorised users
- Validation of compliance to the xAPI Standard
- The storage of learning related data
- Retrieval of learning related data
The application uses MongoDB and PHP and should be easy to install on any web server. It supports Basic Authentication, OAuth 2.0 (Authorization Code Grant) and supports pluggable file storage mechanisms.
2. License
- GNU GPL v3
endpoint | xAPI version | PUT | POST | GET | DELETE | Notes | Links |
---|---|---|---|---|---|---|---|
/about | 1.0.2 | - | - | x | - | (JSON) info about LRS | xAPI, section 7.7 |
/statements | 1.0.2 | x | x | x | - | (JSON) create, retrieve xAPI statements | xAPI, section 7.2 |
/activities | 1.0.2 | - | - | x | - | (JSON) retrieve s single activity | xAPI, section 7.5 |
/activities/state | 1.0.2 | x | x | x | x | (JSON) CRUD - state(s) of an activity | xAPI, section 7.4 |
/activities/profile | 1.0.2 | x | x | x | x | (JSON) CRUD - profile(s) of an activity | xAPI, section 7.5 |
/agents | 1.0.2 | - | - | x | - | (JSON) retrieve a single agent | xAPI, section 7.6 |
/agents/profile | 1.0.2 | x | x | x | x | (JSON) CRUD - profile(s) of an actor | xAPI, section 7.6 |
- see our wiki for a complete list of lxHive endpoints
4. Installation
- PHP >= 5.5.9, with MongoDB extension installed
- (optional) PHPUnit to run tests.
- .htaccess enabled (or similar HTTP rewrite function)
- Composer installed
- Mongo DB installed (requires version >= 3.0)
- OpenSSL
- Make sure you have set the
date.timezone
setting in your php.ini - lxHive >= 0.10.0 supports PHP 7.x
- since lxHive 0.10.0 we switched the PHP Mongo driver from
mongo
(deprecated) tomongodb
- Note: Check out our Wiki for a more comprehensive [step-by-step guide].(https://github.com/g3i/lxHive/wiki/Step-by-step:-Install-lxHive-and-setup-authentication-for-your-app)
- Install dependencies via
composer install --no-dev -o
. - Point your server's
DocumentRoot
directive to thepublic
folder - Set up your database & client account:
# Browse to application root
$ cd /<path_to_application_root>
# View available commands
$ ./X
# Run the setup
$ ./X setup
# Create a new user
$ ./X user:create
- As an administrator you should first create a new user and authentication token for yourself and assign the super role to it.
./X auth:basic:create # Create a new basic auth token
./X oauth:client:create # Or create a new OAuth client (human login)
-
Optionally: Further customise your configuration in
src/xAPI/Config/Config.yml
- TODO: explain options
-
Set up you local file system:
- Create your storage directory as defined in
Config.yml > filesystem.local
. - Create the required
files
andlog
sub directories. - Assign the appropiate
r\w
permissions for your system.
- Create your storage directory as defined in
Default file storage structure:
[lxHivE]
|_ [storage]
| |_ [files]
| |_ [logs]
|
...
- Contributing guidelines
- lxHive Wiki
- Compile code documentation: run
sh generate-docs.sh
from project root (file must be executable)
The G3 International team
- Jakob Murko - systems architect, lead developer
- Leo Gaggl - creator, mentor, conformance
- Joerg Boeselt - lead developer, project and community manager, tests, conformance
- Matthew Smith - alpha prototype