Inspiration

Everyone hates using Word Equation Editor and writing math directly in LaTeX is a pain. So we made an easy to use text editor where you can type math documents quickly and easily!

What it does

You make a file on the server. Then you type math into the file. Soon, you have an entire math document. No need to fumble with inserting fractions or superscripts!

How we built it

We used the open source MathQuill library to handle inputing math on each individual line. Then we added the abilities to make new lines, delete lines, and move left, right, up, and down seamlessly. Then we added saving, getting, and deleting from a Node.js server.

Challenges we ran into

This was much harder than we expected. You'd think a better Word + Equations would be easy to right, right? Turns out there were a million little pains to deal with.

If you press "up" at the bottom of a fraction, the cursor has to go to the top of the fraction before going to the line above, but MathQuill didn't have a method to determine if you're already at the top or not.

If you press "left" at the start of a line, it has to go to the end of the line above, but MathQuill didn't have a method to determine if you're at the start of a line or not.

If you only had one line in the file and you click in the empty space, the cursor should go to the last line.

If you press "right" at the end of certain specific kinds of lines, the cursor should go to the start of the next line, but MathQuill was blocking that movement and keeping the cursor on the original line.

Accomplishments that we're proud of

Hacking the MathQuill internal source code to add the methods we needed. Making the whole thing (mostly) work.

What we learned

Things that look easy probably aren't actually easy. For most of our team, it was our first time working with JavaScript, so we had to learn the language while solving all the issues we had.

What's next for WriTeX

Chemical symbol input. Circuit input. Text size and formatting. User accounts. Sheet music input?

Built With

Share this project:

Updates