Giter VIP home page Giter VIP logo

dakotacookenmaster / byteweave Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 355 KB

ByteWeave is a web-based application that allows students to simulate digital circuits using a variety of logic gates, including AND, OR, NOT, NAND, NOR, INPUT, OUTPUT, and Seven Segment Displays. Instructors can also create assignments with custom logic circuits that are automatically graded.

Home Page: https://byteweave.dacoder.io

JavaScript 0.63% HTML 1.40% CSS 2.76% TypeScript 95.21%
autograding circuit-design digital-logic web-application

byteweave's People

Contributors

dakotacookenmaster avatar dcookenmaster avatar

Stargazers

 avatar  avatar

Watchers

 avatar

byteweave's Issues

Double-tapping doesn't work like double-clicking

To select a gate, you can double-click anywhere on the "tile", but double-tapping doesn't work the same way. Only the output circle seems to be sensitive to double-tapping. Tested on both iPad (Safari) and laptop (Chrome).

Allow individual naming of inputs & outputs

Nothing groundbreaking--it would just be nice to be able to pick the names of the inputs & outputs. Might be as simple as including a "name" key for each of the items in the "inputs" list in the assignment JSON file.

Generate truth table visualization from assignment

Since the expected truth table is already in the assignment file, it would be nice to generate the truth table students see from that. In theory, it should "just" be a simple HTML table with a little styling. Once that's done, it would be nice to add a setting in the assignment file to determine whether to display the auto-generated truth table for each challenge or not.

Touch input suffers on high sensitivity devices

When using a high sensitivity screen the long press feature does not work since it is registered as a move input due to the sensitivity of the screen. Maybe a two finger press could help this issue. Also check how far the move input was could work.

Make connecting & toggling default click actions

I like the context menu (though I haven't gotten a chance to try it on my iPad yet). I'd prefer to have "connect" or "disconnect" be the default when I click on a gate's input/output bubbles (depending on the current connection state, and perhaps a confirmation for disconnection, since it's destructive), and "toggle" be the default when I click on the input itself.

Click to place new gate

I've occasionally "lost" a new gate (or mistakenly added several) because the new tiles always show up in the same place. What do you think of a click-to-place process instead, where you click on the gate you want, and then click again where you want it to show up? In this case, it would help if the selected gate remained highlighted in the menu on the left until it was placed.

Another possibility would be to drag (a clone of) the gate from the palette on the left. That might be more complicated, both to implement and to use--I'm not sure. I'd like to hear your thoughts on this, though.

Red & green are standard, but not great for colorblind people

The default red = 0 = off and green = 1 = on are pretty standard. And the connection nodes show 0 or 1, so it can still be read without relying on the colors. However, red/green colorblindness is a reality for about 8% of Caucasian men, and many others, so it would be good to consider other alternatives.

Minor wording tweaks

These are fairly small details. Spit & polish. ;-)

  1. "Logical Gates" above the left pane should be "Logic Gates". Actually, they're not all gates, so perhaps "Components" would be better.
  2. "Provided Resources" at the bottom of each description are obviously provided, so just say "Resources"
  3. "7 Seg Display" should use a single 7-segment display in the icon, and if it were labeled "7-Seg Disp", the whole column of components could take up less space.

Only show ConnectModal when there's more than 1 input (available?)

Th ability to select which pin to connect to is great! For gates with only 1 input (NOT, OUTPUT), however, it's a superfluous step. Would it be possible to skip the selection step if the receiving gate only has 1 input?

I think the receiving pin selection step could also be skipped if there's only 1 input pin that's not currently connected on the receiving gate, but I'm not as certain about that. Might be worth considering, though.

7-segment display input names

On the 7-segment display, it's a bit odd that input 0 is the 8s place, input 1 is the 4s place, etc. It would be nice if the inputs were either numbered from least to most significant (input 0 = 1, input 1 = 2, input 2 = 4, input 3 = 8, so the input number is the power 2 is raised to), or actually had their place values (i.e., named something like 1s place, 2s place, 4s place, 8s place).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.