Funds Requested: $8,000
The Beefy v2 app has come a long way from when it started, however the app lacked a proper design phase when it was commenced. This has led to a not so strong codebase being used specifically for data storage and handling throughout the application. This request is to fund a solid analysis, design, implementation and integration of proper typing, redux state handling and data loading throughout the entire app.
The end result of this proposal is to enable for a much better and faster UX specially noticeable when loading the application. Currently v2 is blocked by loading tasks and long wait times negatively affect the way we use the application. There's also a lack of centralization in state calculations and many UI components end up being heavier than needed due to there not being a properly designed state.
We establish the following key points that shall be worked on to achieve completion:
State typing: the app lacks any serious notion of typing. Going through a proper typing phase will allow us to build a much more robust codebase, will allow us to prevent errors more easily and help our team in their development efforts.
Redesign state reducers: we currently lack state able to handle partial data loading correctly. The entire v2 app takes long times to load due to this. The first step towards tackling this is having a correct state that handles partial data correctly and centralizes any calculations that need to be used throughout the entire app.
Rework UI components to use new state: adapt every UI component so that state is now being read from the new state. This will enable support for partial data display and start providing a much more responsive UX for our users.
Error handling: ensure the app remains functional even when data fetching calls fail.
Performance improvement: Review of any unnecessary redraws are being done and checking that the app's performance is as fast as we can get it. Ensure computations don't block the app's main thread.
UX for loading: Help users understand what’s being loaded to provide a better loading experience.
Memory usage: Currently when wallet is connected, memory usage gradually increases till it consumes an absurd amount of RAM. It should be controlled in order to keep the app performant even con hardware constrained devices.
Development work will be executed by MrTitoune. Work will be assisted, reviewed and helped by chebiN, he'll make sure there are no blocking tasks and will help understand the current app's state so that work moves smoothly.
Delivery is estimated for mid March (15th). 100% of the requested amount will be paid to MrTitoune upon delivery.
A more detailed breakdown on tasks and time estimations can be found at: https://docs.google.com/spreadsheets/d/16H-CHxiDoWP07sbbb-2t6ku0B2386hjYiqKV40fwias/edit#gid=510679740