I am looking to build an web-application which would allow user to upload csv file - see preview of few rows in the file and then apply different cleansing and standardisation rules.
For example the user can choose a telephone column and click a standardise button to format the phone numbers in a particular way. He can select state column and click enrich - which will add state based on zip code available in another column. All these transformations has be displayed in the preview table in real-time. He should also be able to do operations like undo, redo also.
My initial thought is to load the csv in back-end as a pandas dataframe and expose various functionality required in front end as api endpoints. But the problem here is user can undo operation he has done - how do I bring back the data frame to previous state. There could be many operations with multi level steps which could make this more complicated.
Is there a better solution for this ?