Inspiration

We've been working on projects for the past few semesters and find many of the merge editors in our favorite IDEs to be clunky and unintuitive (looking at you, Pycharm). We created file_xor to be a lightweight program that can discern the differences between any text-based files, be them code files or text documents.

What it does

file_xor reads the data from 2 text-based files and creates a web-based merge editor to resolve conflicts. By breaking text segments up into defined blocks with animations showing where text changes upon merge, it's easy to tell what goes where. Furthermore, undoing changes is quick and painless!

How we built it

We used a React frontend to build a responsive, efficient UI and a Flask backend to handle file difference logic along with authentication functions.

Challenges we ran into

The logic of making a comprehensive merge editor that selected the right amount of text was surprisingly difficult, and building out the technology to encompass that was a large undertaking.

Accomplishments that we're proud of

Getting this project off the ground, especially given that our group is generally better at backend engineering rather than frontend. We're proud of the aesthetics of our project and its balance between form and function.

What we learned

Merge editors are hard to make, especially ones with a good UI. That's no excuse to make bad ones though!

What's next for file_xor

Saving previous merges for users to return to and use again is a planned feature! Also, creating a "combine changes" resolution to changes between two files is a next step in the program.

Share this project:

Updates