A short summary of the assingment: All the required functionalites exist but for a production code, I would add some testing for the most critical parts of the UI (drag and drop, edit, add and delete comes to mind). In addition, the edit view is rudimentary and allows users errors so it has room for validating errors. Certainly a more robust design system would take this to another level. Other than that, a basic redux structure exists though it was not really needed. I would likely redo with Redux Toolkit if/when a more heavy weight state management is required. Last but not least, just having a chat with the users would likely be the first and foremost ongoing activity in further development.
For the optional part, I would likely compose a solution using the useAnimate
hook of the framer motion library to orchestrate direct animation(s) clue's on mergeable items.
Thank you for the fun exercise! I have not needed to implement a drag and drop functionality previously so had a good time checking out this avenue :)
npm install
and Run the Vite dev server:
npm run dev