Skip to content

GSoC'22 Project List

Ruturaj Mohite edited this page Mar 26, 2022 · 12 revisions

Welcome to the projects page. We encourage candidates to come up with their own project idea.

Join our Slack Channel and stay tuned for updates.

Use our Template for the proposal. We recommend the use of google docs for the proposal.


Project 1 - Improve the deployment infrastructure

Skills: Cloud (AWS, DO, Azure), Kubernetes / Helm, Terraform

Duration: 175 Hours

Difficulty: Hard

Brief Explanation:

Since many institutions and individuals also deploy a local deployment of CircuitVerse to use, we want to make it easy for them to set up their deployments. The goal of this project is to set up IaC (Infrastructure as Code) configurations that make it easy for institutes or individuals to deploy their own CircuitVerse deployment.

We also wish to move our file upload storage to cloud for better scalability.

The goals for the project are:

  • Implement Terraform configuration for CircuitVerse
  • Implement Helm charts for CircuitVerse
  • Single click deployment setup for
    • AWS
    • DigitalOcean
    • Azure
  • Move file uploads to cloud

Possible Mentors: Aboobacker MK, Ayush Khare

Learning path


Project 2 - CircuitVerse Platform Improvements

Skills: Rails, Android / Flutter, Javascript

Duration: 175 Hours

Difficulty: Medium

Brief Explanation:

This project is a collection of features and improvements to the CircuitVerse platform for a better user experience

The goals for the project are:

  • Improve notifications page: Right now the notifications page is very lack luster, we intend to make it better
  • Implement push notifications (for mobile apps)
  • Weekly contests: Some contests on the CircuitVerse platform. The idea currently is to have put certain tags on the circuits to count them in as submissions to the contest, the circuits that get the most likes will be featured on the front page of the platform.
  • Suggested tags for the circuits based on the circuit data/description
  • SSO (Single Sign-On) integration: Many institutions that use CircuitVerse use a local copy of CircuitVerse with a custom SSO authentication. We intend to make this task easier for the institutions by natively supporting SSO with CircuitVerse
  • Implement sign in with Gitlab

Possible Mentors: Ayan Biswas, Samiran Konwar, Shivansh Srivastava, Pavan Joshi, Aboobacker MK

Learning path


Project 3 - CircuitVerse Mobile App Enhancements

Skills: Flutter, Javascript / Jquery, i18n

Duration: 175 Hours

Difficulty: Easy-Medium

Brief Explanation:

With this project, we want to finish up the unfinished work on the CircuitVerse mobile app and implement a very asked-for feature - Simulator in mobile app.

The goals for the project are:

  • Complete touch and mobile compatibility project: Last GSoC we made a lot of progress with the touch compatibility on the simulator, this time, we intend to finish it off.
  • Embed simulator in flutter app
  • Search circuits
  • Search in interactive book
  • Notifications
  • Complete i18n for mobile app

Possible Mentors: Manjot Singh Sidhu, Pavan Joshi


Project 4 - CircuitVerse Simulator Improvements

Skills: Javascript / Jquery, Electron, Rails forms, CircuitVerse simulator

Duration: 175 Hours

Difficulty: Medium

Brief Explanation:

This project aims to improve the CircuitVerse simulator and finish some pending work in the CircuitVerse desktop app. One of the primary goals of this project is to create tests for the simulator. Right now, we have tests for CircuitVerse but these are only backend tests. With this project we aim to implement simulator tests that can be run to make sure some change does not break the simulator behaviour.

The goals for the project are:

  • Complete touch and mobile compatibility project: Last GSoC we made a lot of progress with the touch compatibility on the simulator, this time, we intend to finish it off (see PR).
  • Complete the Desktop app: There are some issues with the Desktop app which need fixing
  • Implement import and export of circuitfiles: A .cv extension file that contains the circuit data that can be exported and imported from / to the simulator
  • Tests for the simulator: Simulator currently has a testbench engine which serves as a good API for running tests on the simulator. The goal is to build a test suite on top of this.

Possible Mentors: Ruturaj Mohite

Learning path


Project 5 - Simulator Version Control

Skills: Javascript, Circuitverse simulator

Duration: 175 Hours

Difficulty: Hard

Brief Explanation:

The simulator code keeps changing as we fix bugs or add new features. So far we have been limited with respect to changing the simulator code to keep it backward compatible with circuits that have already been made on the simulator. With this project, we aim to develop a version control system so that the newer versions may not be backward compatible with circuits made on older simulator version.

The core idea is that if a circuit was made on some version of the simulator, then it should keep working on that version of the simulator. The circuit's version number (version of simulator that the circuit was made on) is stored along with circuit data and the simulator automatically sets itself to that version while loading the circuit. Any new circuit should be made on the latest simulator version.

The goals for the project are:

  • Decouple simulator from the backend (Possibly make it so that simulator can run on its own without needing the backend): Efforts to do this have already been made here.
  • Provide an option to switch between simulator versions
  • Include simulator version in circuit data and choose compatible versions when loading the circuit

Possible Mentors: Ruturaj Mohite, Aboobacker MK


Project 6 - New Frontend Framework for Simulator UI

Skills: Frontend JS framework (thinking Vue? but whatever you may propose), UI

Duration: 175 Hours

Difficulty: Medium

Brief Explanation:

Simulator UI code is written with Jquery and Jquery-UI, Jquery is not a good choice since we are doing repeated DOM manipulation with strings (for example $().html("<div>...</div>")) which is messy. Apart from this JQuery-UI is not being maintained anymore. Also most new contributors are more familiar with libraries/frameworks like React, Vue etc. So we want to move our simulator UI from Jquery-UI to a modern javascript framework

  • Move the UI from Jquery-UI to a modern framework
  • Suggested framework is Vue.js but we are flexible on this depending on the proposal
  • There is no end user UI change to be made (the UI should look the same as it looks now, only the code changes to a modern lib/framework)

Possible Mentors: Samiran Konwar, Ayan Biswas


Your Idea!

Have an innovative feature or improvement in mind and want to implement it? We welcome your ideas for CircuitVerse. Your proposal will need to have the following details

  1. A brief description of the idea.
  2. Wireframes, images, screenshots etc which can illustrate your idea better.
  3. Who will this project primarily benefit?
  4. Implementation details - methodology, algorithm etc

It is recommended that you discuss your idea with one of the mentors before sending in your proposal.

Clone this wiki locally