CircuitVerse is a free, open-source platform which allows users to construct digital logic circuits online. We also offer the Interactive Book which teaches users on the fundamentals of modern, digital circuits. Please also see our documentation or GitHub Wiki.
Community
We would love to hear from you! We communicate on Slack:
With the popularity of Circuitverse simulator and its features, I personally believe an upsurge in the number of contributors and increasing changes. I propose to add a contributor's workflow.
Contributor's workflow
Issue template: To generalize issue and parameters a contributor needs to add while creating an issue
Bug Report: To generalize bug reporting and parameters a contributor needs to add while reporting a bug
Pull Request template: To generalize PRs and parameters a contributor needs to add while sending a PR
@devartstar@tachyons@abstrekt what do you think about this, it could be a great change to standardize the project and workflow, should I start working on this ?
Is your feature request related to a problem? Please describe.
I have discovered an issue on a GitHub organization's repository. The issue pertains to a link provided on the repository, which allows contributors to explore their projects. However, upon refreshing the page, users receive a 404 error. This issue arises because the project uses Vue Router and is hosted on Netlify.
Specifically, Vue Router handles routing on the client-side (browser), and when a non-root page is visited (e.g., https://yoursite.netlify.com/login), Netlify (server-side) cannot handle the route. This results in a 404 error, which can be confusing and frustrating for users.
Describe the solution you'd like
To fix the issue with the 404 error on non-root Vue Router pages hosted on Netlify, we can use Netlify's _redirects file. This file allows Netlify to handle URLs that are not handled on the client-side.
To create the _redirects file, go to the public folder of your app and create a file named _redirects. Then, add the following line of code to the file:
/* /index.html 200
This code redirects all requests to the root of your site, which allows Vue Router to handle the routing correctly. With this fix, users should no longer receive 404 errors when refreshing non-root pages on your site.
Additional context
Screen.Recording.2023-03-01.at.12.18.57.PM.mp4
Are you working on this? (Yes/No)
Yes, I Have fixed The Issue if You think this is an issue, can I make a PR for the same?
Describe the bug
when context menu is opened with no items are selected it shows the cut , copy , delete options which are of no use when no item is selected.
Screenshots
If applicable, add screenshots to help explain your problem.
To Reproduce
Steps to reproduce the behavior:
open the vue simulator
try opening the context menu by clicking right mouse button
you would be able to see all the options on context menu
Expected behavior
The context menu should show only the options which can be used when it is opened. so the solution is removal of unusable options when context menu is opened.
Device Information [optional]:
OS: Any
Browser Any
Version Web
Additional context
Add any other context about the problem here.
If a circuit is deleted by clicking the delete circuit button in the properties panel, an error warning appears when attempting to create a new circuit.
Demo:
Expected behavior
the delete button should give a warning, if there is only one circuit.
Creation of a new circuit should work properly without giving errors.
Is your feature request related to a problem? Please describe.
If a user/student is using simulator for explaining something or learning they might want to add some notes while working on the simulator, this will increase the user experience and a feature that would help the teachers/ students a lot.
Describe the solution you'd like
A panel below the circuit-elements panel having a text-area to add a note.
Is your feature request related to a problem? Please describe.
currently context menu options and hex-bin-dec converter modal only available in english
Describe the solution you'd like
configure them with i18n support
Is your feature request related to a problem? Please describe.
currently layout box, save image box, timing diagram box, report issue doesn't have i18n support
Describe the solution you'd like
Add support for i18n
Describe the bug
Currently on going to Preview mode, the quick button does not disappear and the Exit Preview button does not appear.
To exit you can use Esc button.
Is your feature request related to a problem? Please describe.
The Panels -
Circuit Elements
Properties Panel
Timing Diagram
Quick Panel
Testbench
should be draggable across the canvas.
Check out the current simulator to check the drag functionality.
Describe the solution you'd like
Research different libraries available, compare them and find the most suitable one.
Discuss in Slack before starting to implement it.
Creating a new Vue project with TypeScript using Vite.
Adding the following dependencies:-
Vuetify
Vue Router
Pinia (State Management)
Vue i18n
ES Lint + Preetier (Code Linting & Fomatting)
Some more dependencies need to be added temporarily (while including the simulator code from the main repository)
But those will be removed in the end.
Is your feature request related to a problem?
The docs for Image Annotation are present in the circuitVerse docs but its helplinks are not available in the simulator.
Describe the solution you'd like
Like other Elements, we need to add the helplink for the Image Annotation.
As we can see the help button in properties section
The help link button is not present in Image Annotation.
Describe the bug
ESLint plugin for Vue.js that this project is currently using doesn't support Typescript.
To Reproduce
Steps to reproduce the behavior:
Convert any existing .js file to .ts. Try adding type declarations to see the error.
Something like this: Parsing error: Unexpected token : in function parameter ts
Expected behavior
The ESLint should have been able to parse both JS and TS.
Device Information [optional]:
OS: Ubuntu 22.04
Browser: Firefox
Version: 110
Additional context
Replacing eslint-plugin-vue with vue-eslint-parser would solve this issue.