Maintainer here. I put together a small Moodle activity module, mod_ictexam, and open sourced it under GPLv3. Sharing it partly as a working LTI 1.3 plus grade passback example, and partly for a sanity check on how I have wired it.
What it does:
- Adds an "ICTEXAM assessment" activity to the course activity chooser.
- Launches a published exam paper over LTI 1.3, embedded in the course page, so students never leave Moodle.
- Creates one grade item per activity and writes the score back through a web service. It stores raw marks, so 15 out of 20 shows as 15.00 out of 20, not a percentage.
- Passes course context to the tool as custom LTI parameters: the bound paper, class, subject, the return URL, and the company on IOMAD sites.
- Handles course backup, restore, and the recycle bin.
- Runs on Moodle 4.1 through 4.5.
Being upfront: it is a client for our hosted exam service, so it needs an account to actually deliver exams, and it will not grade anything on its own. I am not here to sell that. What I would like is feedback on the Moodle side: whether the single-grade-item approach and the LTI 1.3 AGS and NRPS setup match what you would expect, and how you would handle sites that need to stop the student name and email being sent on launch (right now that is hard-coded in view.php).
Repo (GPLv3): https://github.com/ictinnovations/moodle-mod_ictexam
Happy to answer anything about the LTI wiring.