Skip to content

GSoC'21 Project List

Satvik Ramaprasad edited this page Mar 30, 2021 · 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.

Each Project has a bonus task to be done along with the proposal. Check the task list here - https://docs.google.com/document/d/1icZJRQr3yueFOPj3Nb7UIyHvyiFmXH0gGAUpa3pm9yU/edit

Project 1 - Testbench Project

Difficulty: Hard

Brief Explanation:

Circuit designers need a way to test the correctness of their circuits once they create them. This is crucial to ensure that the circuit is as per specification. This ensures the reusability and generalizability of circuits. The way we propose to achieve this in CircuitVerse is to develop a tool in which the user can provide the specification of the circuit (by giving test cases) and then have an integration with the simulator to run the test cases and generate a report for the same.

Features to be implemented are:

  • Testbench creator suite
    • Test cases by truth-table
    • Timing specification
    • Other test configurations
  • Backend System + Platform Integrations
    • Ability to reuse tests in multiple projects
    • Association of assignment and tests
    • Test Suite page (similar to project page)

Expected results

  • TestBench creator suite (Primary)
  • Integrations with projects, assignments (Secondary)

For more details check this Issue linked below

Knowledge/Skills Involved: JavaScript, Rails, Digital Logic Design, Testing

Mentor: Samiran Konwar, Satvik Ramaprasad

Project 2 - Simulator Version Control

Difficulty: Medium

Brief Explanation:

Over the years, CircuitVerse's simulator has gone through several changes. We do our best to ensure backward compatibility. However, sometimes that's not always easy or possible. Therefore, to be able to have the occasional breaking change, we need to have a system in place to toggle between simulator versions. A secondary goal is to provide a way for our users and developers to easily test the beta and experimental features.

Expected results

  • Decouple simulator code from the backend
  • Introduce version control in the simulator

Knowledge/Skills Involved: JavaScript, Rails, npm

Mentor: Shubhankar Sharma, Aboobacker MK, Satvik Ramaprasad

Project 3 - Internationalization (i18n)

Difficulty: Easy

Brief Explanation:

CircuitVerse's core vision is to make learning digital logic design accessible. The covid19 pandemic has proven how useful the platform has been in enabling teachers to take their classes online.

However, our platform currently only supports English and we need to develop infrastructure to support multiple languages to be more accessible.

Expected results

i18n support for:

  • Simulator (Primary)
  • Platform (Primary)
  • Mobile app (Secondary)
  • User Documentation (Secondary)
  • Interactive Book (Secondary)

Knowledge/Skills Involved: Rails, Javascript

Bonus: Knowledge of at least one language (apart from English)

**Task Link ** I18n task

Mentor: Nitish Aggarwal, Aboobacker MK

Project 4 - LMS Integration

Difficulty: Medium

Brief Explanation:

We currently have a basic LMS within CircuitVerse to manage assignments. We have been getting a lot of requests for full-fledged LMS features. However, our core product is the simulator. Therefore, we need to build integrations with complete LMS to bridge the gap.

This is an experimental and open-ended project. The candidate is expected to research the possibilities of integrating with the different LMS.

Some Possible Features

  • Single Sign-On (SSO) integration LMS
  • Automatic group creation when CircuitVerse is associated with a course in LMS
  • Assignment integration with LMS

The work will require writing APIs for our backend and extensions/plugins for the respective LMS

Expected results

LMS Integration for:

  • Moodle (open-source, widely adopted in universities)
  • Google classroom (widely adopted in schools)

Linked Issue - https://github.com/CircuitVerse/CircuitVerse/issues/1880

Knowledge/Skills Involved: Rails, HTML5, Javascript, CSS

Mentor: Satvik Ramaprasad, Aboobacker MK, Shivansh Srivastava, Aayush

Project 5 - Compatability for Touch Devices

Difficulty: Medium

Brief Explanation:

CircuitVerse is currently supported only on desktop browsers. It can be used on a tablet device by attaching an external mouse. It cannot be used at all on a mobile device. We want to be more accessible and be supported on all mobile devices.

Challenges involve writing touch handlers to execute wiring logic and other simulator actions. Other challenges involve redesigning the user interface to work well on small screens.

Expected results

  • Touch Compatability
  • Redesign of UI for small screens

Knowledge/Skills Involved: UX Design, HTML5, CSS, JQuery, Javascript

Mentor: Samiran Konwar, Satvik Ramaprasad, Nitin Singhal, Shreya Prasad

Project 6 - FSM to Circuit Synthesizer

Difficulty: Medium

Brief Explanation:

Finite State Machines are fundamental concepts in Automata Theory and Digital Logic Design. These FSMs can be converted into a circuit. In academia, these are called Moore and Mealy machines. These project aims to introduce an FSM editor in the simulator, generate state transition logic and generate the circuit. We ideally would like to build upon an exiting open-source FSM editor. This is an open-ended project and can be extended to demonstrate other concepts like DFA, NFA, PDA and Turing Machines.

Resources:

  1. http://www.cburch.com/proj/autosim/
  2. http://madebyevan.com/fsm/

Expected results

  • FSM Simulator
  • FSM -> Circuit Synthesizer

Knowledge/Skills Involved: Digital Logic, UX Design, HTML5, CSS, JQuery, Javascript

Mentor - Aayush, Satvik Ramaprasad

Project 7 - Project Recommendation System

Difficulty: Hard

Brief Explanation:

As the number of CircuitVerse users grow, so does the number of projects. However, currently, project discovery is difficult and user engagement is minimal. To improve this, this project aims to build a lightweight recommendation system that can recommend projects based on both content and collaborative filtering.

Knowledge/Skills Involved: Rails, ML, NLP, Recommendation Systems

Mentor - Biswesh Mohapatra, Satvik Ramaprasad, Aboobacker MK, Shivansh Srivastava

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