Learning LTI with Atomic Jolt & a Noobie
LEARN LTI WITH ME, A NOOBIE!
I'm an educational designer turned web developer. Since there's no such thing as a silly question, I thought I would share all my questions on LTI to help others learn. Perhaps we can even start an LTI study group!?!
I've been struggling to wrap my head around LTI since starting my new role here at UTS. I'm a junior Ruby/JS dev so there are gaps in my knowledge that I simply could not fill on my own by reading the documentation (even though I have a billion and one times), watching all the instructureCon videos and cloning all of the LTI repos on Github. I'm a little embarrassed to admit that I needed some (read: a lot) of hand holding.
Thankfully, I found Atomic Jolt! With the help of the incredible minds at Atomic Jolt , I've finally started to understand LTI line by line. I thought I would share what I've been learning, hopefully, to encourage others to ask questions and continue to collaborate so we can start to build social, engaging, data-driven, interactive activities (think: You Draw It )
So here goes, I'll continue to add/edit this original post with more questions I had for @justinball and his team. Chime in at any time to add yours.
PS. A million thanks to Justin, for his patience, generosity with his knowledge and excellent teaching skills. LTI is hard but it's so much fun learning ALL THE THINGS!!!
Meeting 1: How do I get started with the LTI Starter App & Pass a Grade to the Gradebook
Meeting 1.5: How do I setup ngrok?
Meeting 2: How do I add my LTI tool through the Rich Text Editor (Ruby)?
Meeting 3: Discussing scaling LTI apps for future planning. (aka The Widget Dream)
No resources for this one, instead we discussed the functionality we will require in our future apps (i.e the things we would like to build). My widget dream consists of highly interactive data-driven in-line widgets dropped into the RCE (rich content editor).
The Widget Dream [0:46 sec] – is pretty much inspired by the NYTimes and Guardian narrative journalism interactives and Chinn and Brewer’s (1980) use of use of anomalous data in learning. Using formative feedback to inspire big impact learning.
Need to know Functionality
- Basic LTI Launch
- Creating Content item LTI (using Ruby and React)
- Injecting HTML into the RCE
- GET/POST to the API data via the RCE.
- Grade passback
We discussed scalability and maintainability using AWS Lambda, Atomic Jolt are doing some incredible work here (stay tuned). We also spoke about integrating the Learnosity Assessment Toolkit and utilising their 55 (and growing) questions styles to add to our bespoke builds.
Meeting 4: How do I add my LTI tool through the Rich Text Editor (React)?
Meeting 5: Inserting images and HTML into the RCE using an LTI (React)
For anyone interested in this topic, be sure to RSVP to the CanvasLIVE event Getting Started with LTIs which is coming up this Tuesday, December 6. RSVP “yes” if you will be there--and if you’re interested, but your schedule doesn’t allow you to attend in real time, RSVP "no" or "maybe" to receive all event updates. Your RSVP ensures that you will receive a notification should the event be cancelled or changed.
Firstly, thanks so much for doing this! I've watched a couple of videos and this is no doubt a real goldmine. Do you have any advice for a non-dev, complete noob - the sort that should take one look at this and run for the hills... but is too stubborn to admit defeat? I ventured into coding via @jperkins ' excellent https://community.canvaslms.com/groups/canvas-developers/blog/2018/04/23/getting-started-with-ruby-t... course, so this is the level I'm coming in at. Thanks for anything you can't point me towards that would get me prepared to have another go at digesting these videos
@a_craik , If you really want to get into developing Apps and LTI's you may want to take a self-paced developer course. If you want to keep with Ruby you could take a course like https://www.udemy.com/professional-rails-5-development-course/.
By far the best resource available on LTI that I have came across yet in my last 2 weeks of stumbling with the LTI.
This has given me a great clarity on how basic-launch request works and how content-item-requests work.
I am sort of using Laravel (instead of ruby) / Vue.js (instead of react.js) and still stuck at how i can manage content-item-requests.
Unfortunately I was handed over an unfinished code which has bits and pieces of working LTI functionality and I am looking to do embed in RCE with no luck yet. Currently its only passing the lti_message_type = basic-lti-launch-request and i am not sure how to change that request to contentItemSelectionRequest for embedding to work..
Any help would be appreciated or even any pointers to good resources for contentItemSelectionRequest ..
So I figured out that there was a missing piece of code in my xml settings for contentItemSelectionRequest. It was just using the blti launch url as I had not specified the contentItemSelectionRequest in editor_button options..
I am now very near to my goal.
Below is my xml if anyone is looking for a reference:
<?xml version="1.0" encoding="utf-8"?>
<cartridge_basiclti_link xmlns="http://www.imsglobal.org/xsd/imslticc_v1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:blti="http://www.imsglobal.org/xsd/imsbasiclti_v1p0" xmlns:lticm="http://www.imsglobal.org/xsd/imslticm_v1p0" xmlns:lticp="http://www.imsglobal.org/xsd/imslticp_v1p0" xsi:schemalocation="http://www.imsglobal.org/xsd/imslticc_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticc_v1p0.xsd http://www.imsglobal.org/xsd/imsbasiclti_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd http://www.imsglobal.org/xsd/imslticm_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd http://www.imsglobal.org/xsd/imslticp_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd">
<blti:title>My Video Picker</blti:title>
In your ToolProvider class you can have 2 functions onLaunch and OnContentItem and redirect as per the request you get from the launch.. This will help if you have 2 seperate workflows for Editor_button and usual launch.
Hope it helps.
Glad the videos have been helpful.
For anyone that finds this thread be sure to also look at LTI 1.3 and LTI Advantage. LTI 1.2 will be supported for a long time to come. However, LTI 1.3 is coming and Dr Chuck claims that the "big 4" LMS - Canvas, Blackboard, Sakai and Moodle have been certified. (Around minute 6).
Specifically related to this thread content item select has been replaced by Deep Linking.
We're working to add support for it to the LTI Starter App which will hopefully help others down the path of adopting the newer standard.
Note that if you want to use LTI 1.3 with Canvas you'll need to contact your representative at Instructure and have them enable it. You will only be able to use it in the beta environment for now.
There are more LTI 1.3 in Canvas discussions in this thread.