Inspiration
My inspiration was Git the version control system and how valuable it is to programmers. From there I thought how could I apply such a concept to business in a manner that adds value. There are many attempts to add Git to spreadsheets so blueprint-diff is not that. As version numbers increased and the file is used, many errors and changes are made now the job of blueprint-diff is to notify users of the risks associated with those errors
What it does
Blueprint-diff is a tool that helps validate spreadsheets. As the spreadsheet goes around the business. Many people will edit it but with the help of blueprint-diff we will be able to catch changes in the spreadsheet and rank them by risk before they lead to the loss of money
How we built it
Blueprint-diff is a tool built on Typescript and Node and it is deployed on Vercel. It is built using the SheetJS library
Challenges we ran into
The hardest problem was that you can't naively compare cell to cell. Insert one row and every cell shifts, so a naive diff reports the entire sheet as changed. Solving this meant aligning rows and columns by content first, with fuzzy matching so an edited row still matches its ancestor. A second subtle challenge: after a row move, formulas' text changed even though their logic hadn't — which produced dozens of false "silent change" alerts until we normalized formulas to R1C1 relative form. We caught both by testing the engine against real before/after spreadsheets rather than trusting unit tests alone.
Accomplishments that we're proud of
The DAG and blast radius implementation, sometimes issue in one cell of the spreadsheet can affect other parts of the spreadsheet that are not expected . With DAG (Directed Acyclic Graph) we are able to quickly find such changes and report them to the user.
What we learned
I learnt how to setup a node project from scratch and deploy on Vercel. I also learnt about the SheetJS library
What's next for blueprint-diff
Integrating blueprint-diff into excel and google sheets or allowing it to run between different version of a spreadsheet
Log in or sign up for Devpost to join the conversation.