This blog describes my work done for 📚 LMS Integration project during Google Summer of Code 2021 🖥. The overall goal of the project is to make CircuitVerse compatible with as much as LMSs possible.
About my Project
Currently CircuitVerse supports its inbuilt LMS(Learning Management System) where teacher can directly create assignments and students can submit circuits in the form of projects at CircuitVerse, and after evaluations teacher grades them.
Mostly, institutions use their own LMS like Moodle, Canvas etc for their academic work, which are obviously not compatible with our platform CircuitVerse. Our main challenge is to integrate as many LMS’ with CircuitVerse so that a teacher can use CircuitVerse without leaving their favorite LMS.
Major Goals Achieved in First Phase
Here are the changes that I have done before the first evaluation
- CircuitVerse’s code base made LTI (Learning Tools Interoperability) easily compatible with any LMS (which supports LTI) such that they can be connected with the assignments of CircuitVerse.
- UI was developed for generation of the required keys and secrets to connect an assignment with an external LTI supported LMS (like Moodle/Canvas).
Group page UI is also changed such that previously generated credentials can be viewed by teacher in the group page.
After clicking on the Show LMS Credentials Button the following modal will open and from here teachers can copy-paste the credentials in their desired Learning Management Systems.
All the work related to this project can be found in the branch
lms-ltibranch, checkout the code here.
Slight changes from the Proposal
In the proposal I have proposed how to integrate CircuitVerse as an Moodle Plugin, but later on we thought to integrate CircuitVerse as an LTI tool to the LMSs such that it can be delivered as an extension to a maximum number of LMSs, currently it is already tested in two of the popular LMS like Moodle and Canvas and hoping to test CircuitVerse in more number of LMSs in the upcoming coding phase.
For the upcoming coding period it is going to be a little bit hectic and as part of the project following are the major goals to accomplish in the next phase of coding
- Completing the feature of marks syncing between external LMSs (like Moodle/Canvas) and CircuitVerse
- Creating the documentation of the setup process of CircuitVerse assignments with various LMSs for teachers such that they can integrate the assignments of CircuitVerse on their own.
Engaging in the beautiful community like CircuitVerse is an excellent opportunity for me, I also want to thank my mentors Satvik Ramaprasad, Aboobacker MK and Shivansh Srivastava for their extreme support for reviewing my code, as well as for continuously giving me the suggestions of various good practice for development in
Ruby on Rails .
Thank you for reading 🎉 Happy coding 🖥