UNPKG

ltijs

Version:

Easily turn your web application into a LTI 1.3 Learning Tool.

109 lines (74 loc) • 4.82 kB
<div align="center"> <a href="https://github.com/Cvmcosta/ltijs"><img width="300" src="website/assets/logo.svg" alt="ltijs"></a> </div> > Easily turn your web application into a LTI® 1.3 Learning Tool. [![Node Version](https://img.shields.io/node/v/ltijs.svg)](https://www.npmjs.com/package/ltijs) [![NPM package](https://img.shields.io/npm/v/ltijs.svg)](https://www.npmjs.com/package/ltijs) [![NPM downloads](https://img.shields.io/npm/dm/ltijs)](https://www.npmjs.com/package/ltijs) [![APACHE2 License](https://img.shields.io/github/license/cvmcosta/ltijs)](https://github.com/Cvmcosta/ltijs/blob/master/LICENSE) > **v7 is a full rewrite**, with a new, TypeScript-first `Provider` class. Coming from an earlier version? > See [Migrating from ltijs v5](https://cvmcosta.me/ltijs/#/guides/migrating-from-v5), or the > [Legacy docs](https://cvmcosta.me/ltijs/#/legacy-docs) for the full v5 and earlier documentation. The Learning Tools Interoperability (LTI®) protocol is a standard for integrating rich learning applications within educational environments ([spec](https://www.imsglobal.org/spec/lti/v1p3/)). ltijs implements a full LTI® 1.3 tool provider, including launches, Deep Linking, Assignment and Grade Services, Names and Role Provisioning, and Dynamic Registration, as a pluggable, TypeScript-first library. You get a working learning tool without implementing any of the underlying security and validation yourself. ## Quick start ```bash npm install ltijs ``` ```ts import { Provider } from 'ltijs' const provider = new Provider({ database: { url: 'mongodb://localhost/ltijs' }, }) provider.onResourceLink(async (context, request, response) => { response.html(`Hello, ${context.idToken.user.name ?? 'learner'}!`) }) await provider.listen() ``` Continue with [Getting Started](https://cvmcosta.me/ltijs/#/guides/getting-started) for the full walkthrough, including registering a platform. Or see a full working example in [ltijs-demo-server](https://github.com/Cvmcosta/ltijs-demo-server). ## Documentation Full documentation lives at **[cvmcosta.me/ltijs](https://cvmcosta.me/ltijs)**: - **[Guides](https://cvmcosta.me/ltijs/#/guides/getting-started)**: walkthroughs for setting up a Provider, handling launches, and using every LTI 1.3 service ltijs supports. - **[API Reference](https://cvmcosta.me/ltijs/#/api/README)**: every exported class, method, and type ltijs ships. ## LTI As A Service <div align="center"> <a href="https://ltiaas.com"><img width="480" src="website/assets/ltiaas.png"></img></a> </div> > A ready-to-go SaaS LTI solution. If you need an enterprise-ready LTI deployment, [LTIaaS](https://ltiaas.com) can get you up and running in minutes. It's a SaaS solution with a powerful API giving you access to the entire LTI protocol, with consultation services available to help design, build, and maintain your tool. ## Contributing Please star us on [GitHub](https://github.com/Cvmcosta/ltijs), it always helps! If you find a bug or think something is hard to understand, feel free to open an issue or contact [@cvmcosta](https://twitter.com/cvmcosta) on Twitter. Pull requests are welcome too. If you feel like it, you can also support the project directly: <a href="https://www.buymeacoffee.com/UL5fBsi" target="_blank"><img width="217" src="https://cdn.buymeacoffee.com/buttons/lato-green.png" alt="Buy Me A Coffee"></a> ## Special thanks <div align="center"> <a href="https://portais.ufma.br/PortalUfma/" target="_blank"><img width="150" src="website/assets/ufma-logo.png"></img></a> <a href="https://www.unasus.ufma.br/" target="_blank"><img width="350" src="website/assets/unasus-logo.png"></img></a> </div> > Thank you to the Federal University of Maranhão and UNA-SUS/UFMA for the support throughout the entire > development process. <div align="center"> <a href="https://coursekey.com/" target="_blank"><img width="180" src="website/assets/coursekey-logo.png"></img></a> </div> > Thank you to CourseKey for making the certification process possible and for the IMS membership through > them, which contributed immensely to the future of the project. <div align="center"> <a href="https://www.examind.io/" target="_blank"><img width="280" src="website/assets/examind-logo.png"></img></a> </div> > Thank you to Examind for the work on the Firestore database plugin, and for the continuous help and > support in the development of this project. ## License [![APACHE2 License](https://img.shields.io/github/license/cvmcosta/ltijs)](https://github.com/Cvmcosta/ltijs/blob/master/LICENSE) ltijs is released under the [Apache-2.0](https://github.com/Cvmcosta/ltijs/blob/master/LICENSE) license. > *Learning Tools Interoperability® (LTI®) is a trademark of the IMS Global Learning Consortium, Inc. > (https://www.imsglobal.org)*