This roadmap objective aims to implement a lean front user interface to allow users to create proposals and vote on them on-chain in a decentralized manner. The purpose of the governance system is to give the token holders a say and give their opinions in the decision about new feature proposals and changes to the governance system that will dictate the protocol's features.
Motivation
Develop the front-end of a Lisk DEX application following a UI/UX design and fulfill all the functional / non- functional requirements.
Users should be able to utilize a DEX application to perform the following functions.
Submit a pool incentivization proposal
Submit an universal proposal
Vote on proposals
Re-vote on proposals
View proposals
Check community participation on active and finished proposals
All the developed UI components should be displayed with accurate HTML and CSS and visually inspected.
All the developed components should be tested by the tester by trying different values and ensuring that the flow is working as expected.
All the developed components should be unit tested using jest.
The "Re-vote" feature allows the users to re-vote by clicking the “Re-vote” button. Upon clicking the re-vote button, a popup modal confirms the submission of vote. The “Recast your vote” modal allows the users to confirm the re-vote by selection options.
The “Vote” button allows the users to select if they confirm the revote by selecting the “Yes' ' option and show a popup to approve the request.
The “Revote casted” modal should be popped up to let the users know the votes performed successfully after the requesting.
Acceptance Criteria
Added the unit tests to evaluate if “Vote” and “Revote” button clicking shows a popup modal.
Implementation should be unit tested to evaluate if it is working as expected.
Test if all elements are loaded successfully
Test if all navigation work correctly
The component should be visually tested using browser inspection for accuracy of text and color schema.
We need to update the UI for Add Liquidity (Position) as the UI/UX design was widely changed.
Here's the link to new figma design for Add Liquidity (Position).
Swap token component should allow the users to select the individual tokens for swapping purposes by clicking on a dropdown button (Select token) or a “Choose Tokens” button.
It should contain a flip token button that allows the user to quickly flip the tokens for swapping.
Acceptance Criteria
Selected tokens and its amount should be properly/clearly displayed on the Swap Tokens page.
Implementation should be unit tested, integration and e2e tested for “Choose tokens” and “Select token” dropdown button.
Develop a front-end of a Lisk DEX application following a UI/UX design and fulfills all the functional/non- functional requirements. Users will be able to:
Add liquidity to a pool
Modify position in a liquidity pool and
Swap LSK tokens with an application token
Acceptance Criteria
Developed UI should fulfill all the requirements of each and every user story mentioned here.
Each developed component has full functionality as shown in UI design.
Swap LSK tokens with application token.
Developed all components mentioned in the User Interface(UI) which are necessary for the process of token swapping.
Add unit tests.
Using Jest, writing unit tests for “Launch App”, “Connect Wallet”, “QR Code”, “Select Token” and “Swap” functionalities.
Select token component should allow the users to select the individual tokens for swapping purposes from a pre-populated list of available tokens.
It should also allow users to quickly select from popular token pairings for swapping as well.
Acceptance Criteria
A complete list of available tokens should be available in the vertical scroll window.
A list of frequently used tokens for swapping purposes should be available in the popular pairing tab.
Implementation is unit, integration and e2e tested for selection and availability of various tokens in the list.
The component should be visually tested using browser inspection for accuracy of text and color scheme.
The proposal page should allow the users to see all the information of the current proposal along with “Votes list” , “Your voting info”, “Status history” and “Current result”.
Acceptance Criteria
-Following unit tests are implemented:
The title of the button component should be able to be changed by following the vote status. (“Vote”, “Revote”)
“Votes list” component should be able to load more votes by clicking the “View more” button.
“Votes list” component should allow the users to see the votes of the current proposals with pagination.
“Your voting info” component should allow the user’s vote status on the current proposal.
“Status history” component should allow the users to see the status history of the current proposal.
“Current result” component should allow the users to see the current vote acceptance rate of the current proposal.
The component should be visually tested using browser inspection for accuracy of text and color schema.
Develop a front-end of a Lisk DEX application following a UI/UX design and fulfills all the functional / non- functional requirements.
Users should be able to utilize a DEX application to perform following functions.
“Create a proposal” button should allow the users to create a new proposal and navigate to the Create Proposal page. This must follow CSS style specifications of the approved design.
Acceptance Criteria
"Create Proposal" page is developed and follows the approved designs.
“Create a proposal” button works as expected.
The component should be visually tested using browser inspection for accuracy of text and color schema.
When there’s no proposal, it should show “No proposals found”.
A link to DEX service for required actions is established.
This component should allow users to select the “Slippage Tolerance” from the list of predefined values and to select the translation deadline in minutes.
Acceptance Criteria
A list of click-able buttons with predefined options for “Slippage tolerance” along with a custom box can be selected by the user.
Implementation is unit tested, integration and e2e tested for the functionality of the boxes.
Users will be able to interpret the UI easily in a correct manner using several color variables (primary, secondary, error, success, warning, background and line color). This color library will be defined based on the color-scheme of the app and exported as a part of app general layout.
Acceptance Criteria
All the colors to be used in the application should be described in this library.
This color library should be easily expandable for adding other colors.
Implementation is visually tested for different colors.
“Pool incentivization proposal” component should be selected to allow users to create pool incentivization proposals, therefore following two new input components should be added:
“Select a pool ID” component should allow the users to select a pool ID by clicking on a dropdown button
“Add a multiplier” component should allow the users to set the number of multipliers by input value.
Acceptance Criteria
A complete list of available pool IDs should be available in “Select a pool ID” dropdown component.
Test if all elements are loaded successfully
Test if dropdown and input works correctly
The component should be visually tested using browser inspection for accuracy of text and color schema.
Implementation should be unit tested.
All files are updated
Issues were checked with Deepscan and codecoverage.
The “Pool incentivization proposal” component should be selected to allow users to create pool incentivization proposals. Therefore following two new input components should be added:
“Select a pool ID” component should allow the users to select a pool ID by clicking on a dropdown button
“Add a multiplier” component should allow the users to set the number of multipliers by input value.
Acceptance Criteria
A complete list of available pool IDs should be available in “Select a pool ID” dropdown component.
Implementation should be unit tested.
Test if all elements are loaded successfully
Test if validations work correctly
Test if all navigation works correctly
The component should be visually tested using browser inspection for accuracy of text and color schema.
We need to update the UI for Add Liquidity (To existing position) as the UI/UX design was widely changed.
Here's the link to new figma design for Add Liquidity (To existing position).
User will be able to easily read the text on the website so several fonts (Gilroy, Roboto) along with their font-sizes ({h1,2.5rem}, {h2,2rem}, {h3,1.75rem}, {h4,1.25rem}, {h5,1rem}, {h6,0.75rem}) and font-weights (Semi-Bold) should be defined and exported as a part of app general layout.
Acceptance Criteria
All the fonts/fontSizes/fontWeights to be used in the application should be described in this file.
This font library should be easily expandable for adding other fonts.
Components are visually tested for different colors.