NOTE: This is an experiment and not finished.
Project Home: https://github.com/Ken-Richard/tincan_nodejs
Implementation of the ADL Experience API
The goal is to implement a Learning Record Store for the TinCan/Experience API that supports cloud content delivery. The initial focus is Articulate Storyline which uses the alternative syntax (everything is a post) for all transactions. Data is stored in-memory for ease and speed of testing. Database drivers will be added once the main transactions are implemented.
- Install Node.js
- git clone git@github.com:Ken-Richard/tincan_nodejs.git
- cd tincan_nodejs
- npm install
- node server.js
Once installed, you can use the sample URL below to run an Articulate Storyline course with your local server as an end point.
- Create three tables in your Amazon DynamoDB Instance. Provision at the lowest levels for the "Free Tier". This should be enough for testing. a. xapi-registrations (Hash Key registration_id) b. xapi-statements (Hash Key registration_id; Range Key statement_id) b. xapi-statements (Hash Key registration_id; Range Key state_id)
- Run the server with the following environmental variables.
TC_DB=dynamo S3_KEY= S3_SECRET= S3_REGION= node server.js
- GET /TCAPI/activities/state/
- PUT /TCAPI/activities/state/
- DELETE /TCAPI/activities/state/
- PUT /TCAPI/statements
Tests use a in-memory dataabase by default. You can also run tests with the Amazon Dynamo DB by setting the environment variable. Do this at your own risk - It will create, update and delete data from your tables.
- npm test
- Node.js server with the Express Framework
- Middleware for CORS and HTTP Verb Overrides
- Middleware for Parameter & Content Processing
- Controllers for State & Statemet
https://github.com/Ken-Richard/tincan_nodejs/blob/master/TODO.md