This blog is about my work in the first phase of Google Summer of Code 2022 with CircuitVerse.
CircuitVerse is a Digital Logic Simulator on web. It is an educational tool for students interested in electronics to simulate and make circuits on their browser.
My project aimed to improve the main platform by integrating new features. So intially my project consist of 6 features but after mentor discussion we have added more features into the project context.
In the first phase we have covered:
This feature enables user to authenticate using thier gitlab account in CircuitVerse. For achieving this, I used omniauth-gitlab
gem. Initially, I faced issues because of the old version of omniauth gem in CircuitVerse, so I first update the gem along with it’s dependencies and configurations. After omniauth update, gitlab authentication works smoothly. I also updated the documentation to integration application for config.
PR
SSO stands for Single-Sign On. I have used devise_saml_authenticatable
gem. For the testing I used Okta IDP. I faced issues during integration but as always mentor guided me the way, and I was able to solve it.
PR
This feature enables group to have multiple mentor. There will be 1 primary mentor(owner), and primary mentor can add mentors, make member a mentor and vise-versa. Mentors can grade, CRUD, and reopen assignments. Ruturaj has already raised a PR for it and had implemented mot of the stuffs, but there is still need to rafactor, cleanup and stimulus JS migration.
Owner view:
Mentor View:
PR
Initially the embed feature was basic. This feature advance it by providing the customization options. When a user click on embed button, a popup will be displayed with the options to customize your embed. The customization options:
Kartikay already have made a PR with the integration for Iframe width & height, border with & color. I worked on integrating advance options, revamp and cleanup.
PR
We already have element restrictions for the assignment i.e., to restrict the group members with the use of elements for the Project. But we have got quite a few complaints from professors that CircuitVerse allows cheating easily. For example, users can easily copy/paste any public circuit. They can give collaborators access to their own circuit and copy-paste etc. So it has been requested by professors to disable this feature. This PR enables that feature into CircuitVerse.
PR
Currently, CircuitVerse uses activity_notification gem for the Notifications, but the gem is not maintained any more and the notification page is very lagging. So we decided to replace the gem, and we found noticed gem by chris oliver of Gorails.
Navbar Notifications
Notification Page
PR
This is under progress and will complete in first week of Second Phase.
I have experienced the best time of my engineering in GSoC with CircuitVerse. The mentors, members and contributors are so supportive. I have learned a lot of things. I can’t believe that we are in the middle of the GSoC.
My project is on the track according to the proposal deliverables. We have got new ideas while working on the current. All over, the first phase was great.