GSoC'21 Project List
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
Difficulty: Hard
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)
- 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
Difficulty: Medium
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.
- 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
Difficulty: Easy
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.
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
Difficulty: Medium
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.
- 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
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
Difficulty: Medium
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.
- 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
Difficulty: Medium
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:
- FSM Simulator
- FSM -> Circuit Synthesizer
Knowledge/Skills Involved: Digital Logic, UX Design, HTML5, CSS, JQuery, Javascript
Mentor - Aayush, Satvik Ramaprasad
Difficulty: Hard
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
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
- A brief description of the idea.
- Wireframes, images, screenshots etc which can illustrate your idea better.
- Who will this project primarily benefit?
- Implementation details - methodology, algorithm etc
It is recommended that you discuss your idea with one of the mentors before sending in your proposal.
CircuitVerse is a web-based simulation software for creating and testing digital circuits. The easy drag and drop feature makes it easier and a fun way to learn about logic circuits and also compatible to be used by teachers as well as students. From simple gates to complex sequential circuits, plot timing diagrams, automatic circuit generation, explore standard ICs, and much more, CircuitVerse has got you covered. It also lets the user store and access the previously built circuits to build yet more complex circuits and generate truth tables for the constructed circuits.
- Home
- Running the server
- Simulator
- Development
- Internationalization (I18n)
- GSoC '19
- GSoC '20
- GSoC '21
- GSoC '22
- GSoC '23
- GSoC '24
- GCI 2019
- Google Season of Docs 2020