Celebrate Excellence in Education: Nominate Outstanding Educators by April 15!
Found this content helpful? Log in or sign up to leave a like!
Hi,
I am going to give some context to my question.
We are 3 students, 2 of us have just finished our 1st year in computer science and last one has completed his 3rd. We have been hired to make an app and integration to Canvas is very important for this project. We are not familiar with LTI, not really anything Canvas gives as option for configuration. Assuming we all work 8 hours a day on integration and we only need the integration to redirect the user, maybe with OAuth and for the app to send grades to the other way.
What would be the minimum estimated time needed for this. I'm not expecting pinpoint accuracy just in general.
Thank you for your time 🙂
Honestly, it's going to depend on your team's skills and ability to use other libraries. If you're implementing the full LTI Core and Assignment and Grade Service (AGS) specs for your tool from scratch, it can take weeks to wade through the dense spec language and understand what 1EdTech's writers are talking about. If your team already has prior experience in web development, APIs, and authentication protocols like OAuth, you may be able to grasp the concepts more quickly.
Utilizing relevant libraries and frameworks can significantly expedite the integration process. There are several LTI libraries available that provide pre-built functionality, making it easier to handle LTI integration. However, don't substitute understanding an LTI library for understanding LTI since they may have their own quirks. Some popular LTI 1.3 libraries include:
Given the information provided, and assuming you and your team have a solid understanding of web development and can leverage existing libraries, it may take anywhere from a few days to a couple of weeks to implement the required functionality. When I implemented an LTI tool as a solo developer using one of the libraries above, it took a few days to get a successful launch, but only a few more hours to start posting assignments and grades back to Canvas.
I'd suggest getting familiar with the LTI vocabulary as well as the Assignment and Grade Service definitions so you know what your library documentation is talking about. At least for AGS, there's also a helpful OpenAPI spec to help you understand the differnet endpoints.
Good luck!
Thank you for the reply.
Our only priority right now is being able to "log in" to our app through Canvas via OAuth and send grades back automatically.
We are currently trying to figure out what we need since we are not familiar with many of the concepts and how one would do such things. We are trying to do it as simple as possible with as little access to private information as possible. If possible, a API request to send grades would suffice using the teacher access.
In that case, all you need to implement is the OpenID Connect Launch Flow. Ideally, the heavy lifting of this is done by the LTI 1.3 library your team is using.
For your tool to work with Canvas (and any other LTI-compliant LMS), you'll need to generate and expose a public JWK at https://yourtool.example.com/.well-known/jwks.json. After that, you'll need to get your tool's configuration into a Canvas instance. If you're already an admin of one, that's easy. Otherwise, you might need to spin up a local copy of Canvas for testing. Create a developer key for your tool and a placement (you probably just want to choose Course Naviagation for this).
This guide from Canvas gives a nice overview of how Canvas launches your tool. Likewise, this guide from the Lti1p3 library gives a nice overview of the steps your tool needs to take to successfully launch.
Again, find and use an LTI library for your preferred programming language and web framework. That is the fastest way to get your tool to launch.
Once your tool launches, follow the steps in Canvas's OAuth 2 guide to access LTI Advantage Services and follow the steps for client_credentials authentication. Finally, send a POST to the lineitems.create endpoint you receive in the launch parameters to create the gradebook column. Send a POST to the scores.create endpoint to save scores in Canvas.
I hope this helps.
To participate in the Instructure Community, you need to sign up or log in:
Sign In