This Go-based library allows learning tool developers to easily connect their learning tools with a learning platform.
For an example tool, see lti-example.
- General Information
- Technologies Used
- Features
- Installation
- Project Status
- Future Work
- Acknowledgements
- Contact
- License
The IMS Global Learning Consortium developed the Learning Tools Interoperability (LTI) specification to formalize communication between learning tools and learning platforms. This project partially implements version 1.3 of the specification for developers for Go-based learning tools. It simplifies integration with the LTI modified OIDC login flow, the tool launch, and the subsequent access to LTI services.
- Go - version 1.16
- https://github.com/google/uuid - version 1.2.0
- github.com/lestrrat-go/jwx - version 1.2.1
- Flexible options for storing data
- Simple functions and methods for integrating into your existing tool code
- Use of standard Go types where possible
go get github.com/macewan-cs/lti
This project is under active development. At this time, the functionality is not stable and we will almost certainly introduce breaking changes.
Many details from the IMS LTI 1.3 specification are unimplemented. Some of the key areas of future work include:
- Deep linking
This project is the answer to our need to connect eSubmit (https://esubmit.cs.macewan.ca) to Moodle. Thank you to the developers of the PHP-based LTI 1.3 Advantage reference library, which served as a reference during our development.
Funding for this project was provided by the MacEwan University Faculty of Arts and Science.
Created by Ron Dyck and Nicholas M. Boers at MacEwan University.
This project is licensed under the MIT License.
We are actively developing this library, and we welcome all pull requests.