ltijs
Turn your application into a fully integratable LTI 1.3 tool.
Last updated 11 days ago by cvmcosta .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install ltijs 
SYNC missed versions from official npm registry.


Turn your application into a fully integratable LTI 1.3 tool provider.

travisci codecov Node Version NPM package NPM downloads dependencies Status devDependencies Status JavaScript Style Guide APACHE2 License Donate

Please ⭐️ us on GitHub, it always helps!

v4.0.0 MAJOR CHANGE

  • Implemented Names and Roles Service.
  • Improved Database insertion method.
  • Separated generated access tokens based on their scope.
  • Improved Access token generation method with the ability to specify the scope.
  • Changed Grade Service methods names to improve code consistency, old method names are deprecated and will keep working until the 5.0 release.
  • Started process of certifying Ltijs with the IMS's LTI Advantage Conformance Certificate.

v3.6.0

  • Added serveless mode, allows Ltijs to be used as a middleware.
  • Serverless mode theoretically also allows Ltijs to be used with AWS. This has not been tested yet.
  • Special thanks to Fadeenk for his work on adding support for route prefixes.

Tested on:

Version Moodle Canvas
4.0
✔️
3.6
✔️
✔️
3.5
✔️
✔️
3.1
✔️
✔️
3.0
✔️
✔️

*Previous versions are no longer officially supported

Table of Contents


Introduction

According to the IMS Global Learning Consortium, the Learning Tools Interoperability (LTI) protocol is an IMS standard for integration of rich learning applications within educational environments. ref

This framework implements a tool provider as an Express server, with preconfigured routes and methods that manage the LTI 1.3 protocol for you. Making it fast and simple to create a working learning tool without having to worry about manually implementing any of the security and validation required to do so.


Features

Feature Implementation Documentation
LTI Provider
✔️
✔️
Platform Class
✔️
✔️
Database plugins
✔️
✔️
Keyset endpoint support
✔️
✔️
Deep Linking Service Class
✔️
✔️
Grading Service Class
✔️
✔️
Names and Roles Service Class
✔️
✔️
Detailed Database Error Logging
Redis caching

Installation

Installing the package

$ npm install ltijs

MongoDB

  • This package natively uses mongoDB to store and manage the server data, so you need to have it installed, see link bellow for further instructions. Installing mongoDB

WARNING: THE 3.0 (DEEP LINKING) UPDATE BROKE DATABASE PLUGIN COMPATIBILITY. THE FOLLOWING PLUGINS CURRENTLY ONLY WORK WITH EARLIER VERSIONS:

PostgreSQL

  • This package can also use PosgreSQL to store and manage the server data, it does so through the plugin ltijs-postgresql.

Firestore

  • This package can also use Firestore to store and manage the server data, it does so through the plugin ltijs-firestore.

Obs: The officially supported database is MongoDB, the plugins are created by the community and are not mantained by me.


Tutorial

You can find a quick tutorial on how to set ltijs up and use it to send grades to a Moodle platform here.

Quick start

Install Ltijs

$ npm install ltijs

Install mongoDB

Instantiate and use Provider class

const path = require('path')

// Require Provider 
const LTI = require('ltijs').Provider

// Configure provider
const lti = new LTI('EXAMPLEKEY', 
            { url: 'mongodb://localhost/database' }, 
            { appUrl: '/', loginUrl: '/login', logger: true })


let setup = async () => {
  // Deploy and open connection to the database
  await lti.deploy()

  // Register platform
  let plat = await lti.registerPlatform({ 
    url: 'https://platform.url',
    name: 'Platform Name',
    clientId: 'TOOLCLIENTID',
    authenticationEndpoint: 'https://platform.url/auth',
    accesstokenEndpoint: 'https://platform.url/token',
    authConfig: { method: 'JWK_SET', key: 'https://platform.url/keyset' }
})

  // Set connection callback
  lti.onConnect((connection, request, response) => {
    // Call redirect function
    lti.redirect(response, '/main')
  })

  // Set main endpoint route
  lti.app.get('/main', (req, res) => {
    // Id token
    console.log(res.locals.token)
    res.send('It\'s alive!')
  })
}
setup()

Documentation

See bellow for the complete documentation:

Ltijs Documentation

Additional documentations:


Contributing

Please ⭐️ us on GitHub, it always helps!

If you find a bug or think that something is hard to understand feel free to open an issue or contact me on twitter @cvmcosta, pull requests are also welcome :)

And if you feel like it, you can donate any amount through paypal, it helps a lot.

Donate

Contributors

Carlos Costa
Carlos Costa

???????? ???? ???? ????
Lucas Terças
Lucas Terças

???? ????
Micael Gomes
Micael Gomes

????

License

APACHE2 License

Current Tags

  • 4.0.7                                ...           latest (11 days ago)

94 Versions

  • 4.0.7                                ...           11 days ago
  • 4.0.6                                ...           11 days ago
  • 4.0.5                                ...           11 days ago
  • 4.0.4                                ...           11 days ago
  • 4.0.3                                ...           11 days ago
  • 4.0.2                                ...           12 days ago
  • 4.0.1                                ...           12 days ago
  • 4.0.0                                ...           21 days ago
  • 3.6.3                                ...           a month ago
  • 3.6.2                                ...           2 months ago
  • 3.6.0                                ...           2 months ago
  • 3.5.0                                ...           2 months ago
  • 3.1.6                                ...           2 months ago
  • 3.1.5                                ...           3 months ago
  • 3.1.3                                ...           3 months ago
  • 3.1.0                                ...           3 months ago
  • 3.0.4                                ...           3 months ago
  • 3.0.3                                ...           3 months ago
  • 3.0.2                                ...           3 months ago
  • 3.0.1                                ...           3 months ago
  • 3.0.0                                ...           3 months ago
  • 2.5.3                                ...           3 months ago
  • 2.5.2                                ...           3 months ago
  • 2.5.1                                ...           3 months ago
  • 2.5.0                                ...           4 months ago
  • 2.4.6                                ...           4 months ago
  • 2.4.5                                ...           4 months ago
  • 2.4.4                                ...           4 months ago
  • 2.4.3                                ...           4 months ago
  • 2.4.2                                ...           4 months ago
  • 2.4.1                                ...           4 months ago
  • 2.4.0                                ...           4 months ago
  • 2.3.1                                ...           5 months ago
  • 2.2.1                                ...           6 months ago
  • 2.2.0                                ...           6 months ago
  • 2.1.9                                ...           7 months ago
  • 2.1.8                                ...           7 months ago
  • 2.1.7                                ...           7 months ago
  • 2.1.6                                ...           7 months ago
  • 2.1.5                                ...           7 months ago
  • 2.1.4                                ...           8 months ago
  • 2.1.3                                ...           8 months ago
  • 2.1.2                                ...           9 months ago
  • 2.1.1                                ...           9 months ago
  • 2.1.0                                ...           9 months ago
  • 2.0.9                                ...           9 months ago
  • 2.0.7                                ...           9 months ago
  • 2.0.5                                ...           9 months ago
  • 2.0.1                                ...           9 months ago
  • 2.0.0                                ...           9 months ago
  • 1.2.1                                ...           9 months ago
  • 1.2.0                                ...           10 months ago
  • 1.1.1                                ...           10 months ago
  • 1.1.0                                ...           10 months ago
  • 1.0.33                                ...           10 months ago
  • 1.0.32                                ...           10 months ago
  • 1.0.31                                ...           10 months ago
  • 1.0.30                                ...           10 months ago
  • 1.0.29                                ...           10 months ago
  • 1.0.28                                ...           10 months ago
  • 1.0.27                                ...           10 months ago
  • 1.0.26                                ...           10 months ago
  • 1.0.25                                ...           10 months ago
  • 1.0.22                                ...           10 months ago
  • 1.0.21                                ...           10 months ago
  • 1.0.20                                ...           10 months ago
  • 1.0.19                                ...           10 months ago
  • 1.0.18                                ...           10 months ago
  • 1.0.17                                ...           a year ago
  • 1.0.16                                ...           a year ago
  • 1.0.15                                ...           a year ago
  • 1.0.14                                ...           a year ago
  • 1.0.13                                ...           a year ago
  • 1.0.12                                ...           a year ago
  • 1.0.11                                ...           a year ago
  • 1.0.10                                ...           a year ago
  • 1.0.9                                ...           a year ago
  • 1.0.8                                ...           a year ago
  • 1.0.7                                ...           a year ago
  • 1.0.6                                ...           a year ago
  • 1.0.5                                ...           a year ago
  • 1.0.4                                ...           a year ago
  • 1.0.3                                ...           a year ago
  • 1.0.2                                ...           a year ago
  • 1.0.1                                ...           a year ago
  • 0.6.13                                ...           a year ago
  • 0.6.12                                ...           a year ago
  • 0.6.1                                ...           a year ago
  • 0.6.0                                ...           a year ago
  • 0.5.5                                ...           a year ago
  • 0.5.4                                ...           a year ago
  • 0.5.3                                ...           a year ago
  • 0.5.2                                ...           a year ago
  • 0.5.1                                ...           a year ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 63
Last Month 86
Dependencies (19)
Dev Dependencies (14)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |