Coder Social home page Coder Social logo

mgreminger / engineeringpaper.xyz Goto Github PK

View Code? Open in Web Editor NEW
119.0 4.0 8.0 417.96 MB

EngineeringPaper.xyz is a web app that makes it easy to create, save, and share engineering calculations.

Home Page: https://EngineeringPaper.xyz

License: MIT License

JavaScript 29.61% HTML 0.10% Python 7.14% Jupyter Notebook 7.33% CSS 0.06% Svelte 18.75% ANTLR 0.68% TypeScript 36.33%
calculations engineering civil-engineering electrical-engineering engineering-education mechanical-engineering chemical-engineering calculator unit-conversion

engineeringpaper.xyz's People

Contributors

dependabot[bot] avatar mgreminger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

engineeringpaper.xyz's Issues

Prefixes not supported for all units

Math.js doesn't support prefixes for all unit types. Therefore, units like [kBTU/hour] cannot be used. Seems like Math.js only supports prefixes for SI units. Another solution would be to support multiplication factors in unit definitions such as [1000*BTU/hour].

Option to Display Decimal in System Solve

In math cells we can switch to displaying symbolic results instead of decimals, it would be nice to have the same option in System Sovle Cells. When I am trying to do a sanity check on my results I do not have a good feel for whether 11^(2/3)*15^(1/3) is about right or not but I do know that 12.2 is about right. (Well actually it was way off ;) )

Application not compatible with European(ISO) keyboards.

Hi.
Seems like the application isn't compatible with ISO keyboards.
When you try to type legend 'greater than/lesser than and equal to' it dosen't autotranslate to the legend when you type '<=' or '>='.
When you type '<' or '>' it gives a '/' on first keypress. This is due to that ANSI layout translate that extra ISO key to '/'. But on the second keypress it gives the right symbol(but still dosen't autotranslate).

I've tried US ANSI keyboard aswell, and it works as it should.

The machine I use have this setup:
Windows 10 Pro
American English language
Swedish+American keyboard
Tested both with ANSI and ISO Swedish keyboard.

Also tested on Pop !OS(ubuntu derivate) with same result.

Math Formula Editor

EngineeringPaper currently uses the lovely MathQuill editor. I'm guessing MathQuill was chosen, since it's the most reliable open-source WYSIWYG math editor. The main downside of using MathQuill is the fact that matrices aren't supported, unless one uses a fork.

As the author of QuantumSheet, I'm currently writing my own math formula editor. The goal is to take everything that makes IDEs nice and put those features into a modern math formula editor. That means autocompletion, documentation popups, unambiguous input with the editor asking the user when something is underspecified, ....
https://github.com/stefnotch/mathml-editor
(Demo is woefully incomplete, the editor is a work in progress)

I figured it'd be worthwhile to reach out, and ask if you have any thoughts regarding what a truly good math formula editor should be like.

Querry results disapear when an error occurs in an unrelated cell.

When any cell has a syntax error, all previous query results disappear. This is a little annoying when you want to type the result from a previous query into a new cell. I do not fully know how all of the cells interact but I would think an error from a farther down cell could be ignored, at least until the cell currently being edited is exited, by previous cells so their results are still visible. Results from a system cell do remain visible.

Display Units in System Solve Results

I think it would be nice to have the units shown in the System Solve results so I do not have to create another cell to confirm I haven't messed up my units somewhere.

Thanks again for this product and keep up the great work Mike!

Fix Min/Max dimension error

Original:
https://engineeringpaper.xyz/PYcYmn7waFjH97h8rMmwWu

Minimal Reproduction:
https://engineeringpaper.xyz/bShA4fHTHhhbxsEFRP89Vy

The issue occurs when the first argument of max or min is zero. When this is the case, the entire max or min function will be replaced by zero in the dimensional analysis.

This is actually a problem with how zeroes are treated in general in the app. However, it is more of an issue here since the other arguments of the min and max will most likely not be zero and this will lead to incorrect results.

Improve local save, add local auto save

The current workflow for local save requires you to specify the filename and prompts the user about overwriting the previous version of the document each time you save.

I'd like to see the save feature just sort of take care of itself. By that I mean when you hit Ctrl + s or the save button if the document has already been stored locally the local file is automatically updated or overwritten without prompting the user about overwriting a file of the same name.

I'd also love to see auto save for local documents so that I don't have to worry as much about saving every few minutes.

This is a super cool project and I'm giving it a spin for my solid mechanics class, so far it's been pretty cool!

Self hosting

Is there a guide to build a self hosted EngineeringPaper server.

I see that on the main page

npm run build

However additionally this also is mentioned

These instructions are only needed to create a development environment for [EngineeringPaper.xyz](https://engineeringpaper.xyz/). To run the app, simply go to EngineeringPaper.xyz.

would the npm build command suffice to get a self hosted server up and running?

Significant Figures Truncate Trailing Zeros

Currently, EngineeringPaper.xyz truncates trailing zeros after the decimal even though they should count as significant figures. i.e. if significant figures is set to 4 and you have 1/10 as a result you get 0.1 instead of 0.1000. Personally, I am on the fence about what behavior I would prefer.

Con of showing the trailing zeros: adds a little clutter.

It is a little confusing if you use local sig figs to know how much your result has been rounded (you have to remember each local sig fig setting since it isn't displayed). I was also confused when I changed the sig fig setting and my result did not change until I noticed this issue. Because of these two reasons I am leaning slightly more toward showing the trailing zeros but could be convinced otherwise.

Significant Figures

First of all, thank you for this great project. I am really enjoying it. Thanks also for your quick response to the last issue I opened too. The new improvements work great!

Is there a way to control the number of decimals displayed? In this case only 2 significant figures really matter:

image

Tables lookups to assign variable

So the current table has a radial button to select a row, would it be possible to add a radial button to choose a column as well, and have a variable be assigned to the value at the intersection of the row and column?

Syntax error when trying to specify result unit after an equation

Let's assume:
a = 5 [mm]
b = 2 [mm]
This does work:
test = a + b =
This does not work:
test = a + b = [mm]

As a user' I would like to be able to specify the result units of equation inline instead of writing two separate lines of code:
test = a + b
test = [mm]

Pyodide Worker

Regarding Pyodide, EngineeringPaper currently has

  • A custom version of Pyodide, which is great and also a fair bit sleeker than normal Pyodide
  • Pyodide running in the main thread

I think that it could be improved by

Are there any other possible improvements?

Also, since I'm struggling to building Pyodide myself, I wanted to ask you if this would be something we could both work on?

User selectable default units.

Feature/enhancement would be to have user selectable default units. Maybe as global/keyword variables?
Default_Length = [mm] or something like that and then any length result that doesn't specifically call out a unit would use that value. I would not expect it to change any other unit for example torque would still come out as N*m and not N*mm. For the scale of my work most of the data is in inches or millimeters and having to add the extra four characters ([mm] or [in]) just to keep my result in the same units as my input data gets old.

The next two ideas are related although I'd aim for the above one first:

  1. Detect local cell units, if I type 25[mm] + 75 [mm] = it would notice than all of my values use the same units and then give me my result in mm.

  2. Allow results in multiple units. 25[mm] + 75[mm] = [mm | in] = 100[mm] | 3.937[in] I do a lot of work back and forth between English and metric and different people have a better feel for one or the other so I often just present both values. This would save an extra cell just for unit conversion.

In case you couldn't tell I discovered your application this week and think it is pretty great. I am a full time mechanical engineer and was looking for an open source solver that would help me keep track of units and provide easy graphs etc, pretty much everything your work is doing. These "issues" are just to help give you some user feedback. Please keep up the great work!

Add Localization Support

Hi Michael,

I'm writing to suggest applying for CrowdIn's Open-Source Project Setup request form for your localization project. This program offers valuable resources and support to open-source projects like yours, making it easier to reach a wider global audience.

Benefits of participating in CrowdIn Open-Source Project Setup:

Free access to CrowdIn platform: You'll receive a free CrowdIn Professional plan, including features like translation memory, terminology management, and workflow automation.
Community of translators and reviewers: CrowdIn connects you with a large pool of experienced translators and reviewers who can help translate your documentation and user interface into various languages.
Simplified localization workflow: CrowdIn provides a user-friendly platform that streamlines the localization process, from file upload to review and publishing.
Increased project visibility: Inclusion in CrowdIn's Open-Source Program can boost your project's visibility within the global developer community, potentially attracting new contributors and users.

I encourage you to consider applying for the CrowdIn Open-Source Project Setup program. You can find the request form here: https://crowdin.com/page/open-source-project-setup-request

I'm confident that participating in this program will significantly benefit your localization efforts and contribute to the broader success of Engineering Paper XYZ.

[Feature request] Support markdown in Documentation cells

I think the main strength of EngineeringPaper.xyz is the ease of use and it allows to quickly set up a well-documented computation sheet.

the main thing that breaks my workflow is having to use the formatting options from the dropdown menus within documentation cells. It would be great to be able to use markdown in these cells:

# This is a h1
## This is a h2
[this is an image](image.png)
*italic text*
**bold text**
| A | simple | table |
|---|---|---|
| A | B | C |

It would allow to write down a complete sheet without having to leave the keyboard once.

Thanks!

A blank math cell chould not be a syntax error.

Hopefully this is an easy one but currently a blank math cell produces a syntax error and it would feel nicer if it did not. When you add a new cell and are thinking about what you want to write I find it hard on the brain to be scolded for a syntax error before you've even done any work. I prefer syntax checkers that provide a few seconds before they start complaining to me while I am actively typing but that is probably more work than is needed at this moment. For now, simply having the syntax checker ignore blank cells would be appreciated.

Need space key for math keyboard

The space key is not needed very often for entering math but it's not possible to specify the number of points in a plot without it. Should at a minimum be on the abc tab, but should probably be on the ABC tab as well for consistency. Will need to remove an existing button, removing the equal sign is probably the best option since it's available on the Math tab.

Curious about project

Just based on the project's title and your GitHub profile, I'd guess that you're trying to build something that combines mathlive and sympy (using pyodide). Is that correct?

If yes, I'd be greatly interested in this project!

[Feature request] Export to PDF

First of all - thanks for maintaining this project, I just started out with it and i love the ease of use.

As a completely new user I was confused about the lack of export features. Some googling showed me that it's intended to "Print to PDF" but this doesn't work well for me on Firefox. I would love to have a native "Export to PDF" feature that gives me consistent results.

Even an "Export to Markdown" feature which would allow to export the output to a plain text file in the form of

# heading 1
$\alpha = \beta$

[an image](image.png)

Lorem Ipsum
- - -

would be immensely helpful since that would allow to convert to pdf, html, latex, whatever.

Thanks again!

Modulo Arithmetic

I was going to implement Shamir's Secret Sharing algorithm to practice some more work in EngineeringPaper.xyz and I could not figure out how to do modulo arithmetic. If it is possible please let me know, otherwise could this feature be added? Thanks again for the great product.

I also notice there is no round, floor, integer division, maybe a few others like that. You don't need those all the time but when you do they are convenient.

Hz vs rad/sec

EngineeringPaper.xyz treats any result with a dimension of 1/Time as Hz.

However rad/sec also has the dimension of 1/Time (specifically, 1/Sec)

The conversion between Hz and rad/sec is 2pi rad/cycle.

I cannot find any way to properly introduce this conversion.

See: https://engineeringpaper.xyz/iM5tvNfmbVbRgB2Y4uynGb

Deleting One of a Pair of Matching Characters

Small bug in the editor here:
When you put x = (y) in a cell, if you place the cursor between the left parenthesis ( and the y and hit backspace, the parenthesis is removed but you cannot backspace any farther. You can, however, hit the delete key and remove characters to the right, or you can arrow left once and then backspace additional characters, but not just continue backspacing. This is also true for the pipe characters | | in absolute value. The same behavior occurs in the other direction. placing x=(y)+1 in the cell, putting the cursor between y and ) and hitting the delete key removes the ')' but hitting delete again does nothing.

Comments in Calculations and Multiple Assignments

It'd be nice to be able to add comments to the side of a calculation. For example, I'm often using building code prescribed equations and it's nice for the checker to have the code reference right next to the calculation. Putting it in a cell above or below the calculation leaves a lot of white space and needlessly makes the pages longer.

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.