When a cell on the spreadsheet is updated, all the non-empty cells are parsed and evaluated and updated with their new values (or errors). It has plenty of room for optimization but should be good enough for a sparse 3x26 grid.
srcapp: contains all the UI code, based on React and Reduxlib: contains the modules implementing the core spreadsheet engineeval: modules responsible for parsing and evaluating formulae and expressionsfunctions: implementations of the functions available in the spreadsheet (e.g. SUM, PRODUCT, etc.)grid: abstractions for working with 2-D gridsspreadsheet.js: implements theSpreadsheetclass that encapsulate the entire spreadsheet engine
Unit tests are located in tests folders in the various subfolders under the src directory.
E2E tests are located in cypress/integration directory.
docker pull stakingrewards/engineering-frontend-challenge:latest
docker run --name fe-challenge -d -p 8082:8081 stakingrewards/engineering-frontend-challenge:latest
nvm use 16
npm start

