Giter VIP home page Giter VIP logo

yonatanmgr / mathberet Goto Github PK

View Code? Open in Web Editor NEW
177.0 177.0 12.0 20.75 MB

Mathberet is a self-hosted digital mathematics notebook written in React and Typescript, designed for math students who need a platform for graphing, sketching, and writing in LaTeX.

License: MIT License

TypeScript 87.09% Less 2.27% HTML 0.09% JavaScript 10.31% CSS 0.24%
javascript math mathematics notebook notes react typescript

mathberet's Introduction

image

mathberet's People

Contributors

codesbiome avatar dependabot[bot] avatar erezbiren avatar flaviodelgrosso avatar guasam avatar nadav0077 avatar ptlzc avatar yonatanmgr avatar zivnadel 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  avatar  avatar

mathberet's Issues

File structure brakes up when resizing the window, and then resizing it back

Describe the bug
When a user resizes the app window, the structure of the file components' location changes (as it should be), but when trying to resize the window, the components won't go back to the same state.

To Reproduce
Steps to reproduce the behavior:

  1. Go to one of the files
  2. Resize the window
  3. Resize it back
  4. See the issue

Expected behavior
The components should change according to the size of the window, and change back to the same state when resizing back.

Screenshots
Screen Shot 2023-03-21 at 22 39 16

Screen Shot 2023-03-21 at 22 39 41

Screen Shot 2023-03-21 at 22 39 56

Desktop (please complete the following information):

  • OS: macOS (But also happens on Windows)

Additional context
Maybe we should keep the 6 possible states of the components' locations, and then apply them every time a user resizes the window.

File save feature saves to an incompatible path on macOS

Description:
After clicking 'Save' for a particular file, it saves in a Windows-like configured path, even though I run on macOS.

Reproduction:
Simply open a New Folder in the app, and a New File within. After saving it, you'll discover New File is saved outside of New Folder, with the name "files\New Folder\New File.json". Its path: "/Users/<user>/Documents/Mathberet/files\New Folder\New File.json"

Expected behavior:
File path should have its backslashes reverted.

Screenshots:
mathberet_bug

  • OS: macOS

Error mesage on close

Describe the bug
Error message appears when closing by clicking the upper-right corner 'x'.

To Reproduce
Steps to reproduce the behavior:

  1. Create, edit, and save a file.
  2. Close the application by clicking the 'x' in the upper-right corner of the window.

Expected behavior
Close application.

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 11 Home.

Additional context
Cloned and installed today, so the mathberet version is fresh.

Project architecture intro video

It would be really helpful to have an short introduction video (loom?) for eaiser onboarding to the project.

Things that can be covered:

  • Project high level folders structure
  • Quick app overview
  • etc.

Block resize is only LTR in RTL languages

Resizing blocks on react-grid-layout doesn't play nice with RTL layouts;
Multiple issues were opened on the subject in react-grid-layout and did not get enough attention.
Maybe a bespoke solution could fit here, forking rgl and making an RTL fix

App crashes when I try to create a folder (Ubuntu 22.04.2)

Describe the bug
When I run the app I get a libva error message. The app still opens, though, and when I try to create a folder, the app crashes.

To Reproduce

  1. In a terminal pointed to the install directory, run npm start.
  2. When the app opens, click the notepad icon and the new folder icon.

Expected behavior
New folder.

Screenshots
image
image
image

Desktop (please complete the following information):

  • OS: Ubuntu 22.04.2

Additional context
I installed npm in order to install this application, but believe I have a correct installation of npm version 9.5.0 and node version v18.15.0. I could be wrong, I'm not very familiar with these packages, so I can try out any terminal commands that might be helpful, but these print out the version numbers that I've shown here with npm --version and node --version.

I tried installing libva either through npm or apt-get and neither could find the package.

Kbar's actions don't change language when i18n does

As Kbar's actions are only rendered once (on app startup), i18n language changes won't affect them.
Kbar does have a hook named useRegisterActions that could help with updating the actions on dependencies change, but it doesn't seem to work (and isn't well documented timc1/kbar#164).

Block copy/cut/paste

Right-clicking on block handles could bring out a context menu with the abovementioned actions

Integrate Storybook in the project

I suggest we add Storybook to the project. Storybook is a user interface development environment that allows us to build, test, and showcase our UI components in an isolated, reusable environment.
It will significantly improve collaboration, and will help keeping unified design language across the entire app.
I started testing it locally, and so far, it seems suitable for this project.

LaTeX in text blocks

I'm thinking of something like this:

  • When the user inputs a $ followed by a space, an editable MathLive component will be created as an inline slate element with a dynamic width (long shot but maybe?). Another option is to have a popup for the math input, then pressing Enter will insert an inline slate element (that is not directly editable).
  • When the user inputs a $$ followed by a space, an editable MathLive component will be created as an block level slate element.

Dragging file into a folder that already have file with that name doesn't raise error

Describe the bug
Dragging file into a folder that already have file with that name doesn't raise error. Instead, it shows that there are 2 files with the same name under that directory. In the actual file system, the file that was dragged is vanished, and there is only one file in that name under that directory.

To Reproduce
Try to drag a file into a directory that already has a file with that name.

Expected behavior
An error modal should pop up, and the dragged file should stay at it original location.

Desktop:

  • OS: Windows

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.