Ankit Kataria
Web Developer - Security Enthusiast

GSoC '19 - Final Report

Howdy guys! We’re now in the final phase of coding for GSoC, I’ve been contributing to CircuitVerse since February and it’s been a wonderful experience. This whole period saw about 100+ commits, 7000+ lines of code merged, several awesome features executed and a lot more.

Summary

This summer my aim was to do several feature additions to increase the overall user base of our platform. It involved working on and improving some pre-existing features and also working on several new ones from scratch.

Checkout out my proposal here!

Also, checkout the blog series I did on my awesome journey here!

Code

Backend tests

I worked on adding an RSpec based test suite from scratch. The test coverage increased from 0 to 83%. With this, I also set up Coveralls for comprehensive coverage reports on contributions.

Pull Requests: #148, #241, #391, #403 (All merged)

Blog post: GSoC ‘19 with CircuitVerse

Coveralls report: github/CircuitVerse

Assignment Grading

This feature addition allowed group mentors to easily grade mentee submissions on a scale of 1-100, A-F or any other custom scale. The results of grading can be exported as a CSV for further usage.

Pull Requests: #390, #395 (All merged)

Blog post: Init: Assignment Grading

Restricting Circuit Elements

This feature addition gave mentors a way to restrict the circuit elements used inside assignments. Students will be shown a warning on using restricted elements which will also be visible to the mentor while grading. It involved work in both the front and back end. I gained a lot of insight into how the various front end components worked inside the javascript simulator while working on this task.

Pull Requests: Code merged in #397 ( #392 Original PR)

Blog post: Init Restricted Circuit Elements

This allowed the admins to feature noteworthy circuits on the platform. Featured circuits can be viewed by users on the landing page. The automation of featured circuit detection is a task that is yet to be explored.

Pull request: #261 (Merged)

SEO Improvements

There was a very basic SEO implementation in the present codebase. After extensive research, I added SEO improvements for Facebook, Twitter and Google.

Pull request: #406(Merged)

Blog post: rake search:begin

Research Doc: SEO Analysis

Search Engine

A very basic Postgres based full-text existed for projects. I worked on extending this search to the User model and overhauled the search engine architecture using an Adapter based design. Support for Solr was also added using sunspot. This task also involved extensive research.

Pull Request: #402 (Merged)

Blog post: Re-Searching Search, Adapters, Factories and Search

Research Doc: Search Analysis

Interactive Book CI

Interactive Book is an effort by Aman Singla to make it easy for the young audience of our platform to get started with digital electronics. I worked on integrating the repo with CircleCI to check for jekyll builds.

Pull Request: #11 (Merged)

The Bucket List

The Bucket List issue #412 was opened in the final phase. I worked on a few tasks mentioned, one of which was user mail subscription and custom mails.

Pull requests:

Blog post: Final Phase and Bucket Lists

Work left

Currently, I’m working on implementing a staging environment for CircuitVerse. It was an addition suggested by me in the proposal and is being actively worked on right now. The basic idea is having a special branch that deploys an image of the repository to a staging environment so that it can be tested by all the developers. It’s major application will be in testing simulator feature additions.

GSoC Experience

It’s been great working with CircuitVerse this summer. The overall experience for me has been nothing less that wonderful. I got to learn a lot for my mentors, Satvik and Aboobacker. I gained a lot of insight into ruby and software development in general. All of this wouldn’t have been possible without this awesome summer. I still plan to continue contributing to the platform. Looking forward to more awesome feature additions and contributions! Cheers!

comments powered by Disqus