Is there a proper documentation on how to integrate an external app to Canvas as LTI. We have an educational app built using MEAN stack and this needs to be integrated on Canvas. Instructor should be able to add course url of external app to canvas course and students should be able to launch the external app through the course. When student launches external app, the app needs to collect launched student name and email address to create account. This new account will be used to manage student activities on the app. Once student completes the course, the app will have to send grades to canvas.
I didn't find a proper documentation to implement the whole work flow. Any help much appreciated.
I am not sure you are going to find too many answers here, One help that I have found are the humans @ UCF Join UCF Open Source on Slack! they are pretty open to answering questions. And on this link https://community.canvaslms.com/thread/24209-hire-an-lti-consultantfreelancer you can find a few LTI examples there. I personally do not use the mean stack (primarily: react-redux-mDb). @James carroll-ccsd @peter love are the ones that I have been learning from. Look through there content to find more info.
There isn't documentation on using MEAN apps for Canvas, per se. LTI is an open standard, and therefore platform agnostic. Canvas doesn't know or care whether your app server is MEAN or XAMPP or .NET, or whether it's even a "server" at all, or a set of microservices. As long a server at the launch URL responds, LTI is happy.
There is a lot of good documentation from the community on building LTI integrations, though. I'd suggest starting with the LTI links Canvas Dev & Friends resource site or @garth collecton of LTI 1.x Useful Links.
For the node.js side, there are good examples in the documentation for the ims-lti NPM package.