Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🏛️ [EPIC] : Milestone4 Wrap Up #1387

Open
mike-mcnulty opened this issue Dec 12, 2024 · 0 comments
Open

🏛️ [EPIC] : Milestone4 Wrap Up #1387

mike-mcnulty opened this issue Dec 12, 2024 · 0 comments
Labels
epic A high-level feature or collection of related user stories/tasks that span multiple issues.

Comments

@mike-mcnulty
Copy link

mike-mcnulty commented Dec 12, 2024

Summary

Milestone4 Wrap

JIRA Epic

https://input-output.atlassian.net/browse/NPG-7772

Description

Deliverables will include front and backend changes to support registration, voting, and delegation, including rewriting of code from the existing Voting Center into the target Flutter framework. Also included in this milestone will be backend changes required to support the proposal submission module delivered in Milestone 5.

  1. First Front End Web-browser Module of the Catalyst Voices UI:

This module will start development in an earlier milestone but due to the dependencies on CIP finalization and Backend plus Wallet integration can not be delivered until those components are finalized and delivered. Redevelopment of the Voting Center Front End to enable integration to the updated role registrations and to allow seamless upgrade to incorporate further modules as they are developed. Flutter is being evaluated so that this code base can be used to build Native, Mobile and browser-based applications. However only Browser will be initially delivered as there is no current standard for Cardano Wallet integration for Native or Mobile based DApps.

  1. Update Catalyst Database Schema to Support Proposal Submission

  2. Update Catalyst Database Service API to support Proposal Submission: The work completed in this Milestone enables the capabilities of the next milestone to be completed efficiently.

Todo

Acceptance criteria: The fourth milestone will offer an end-to-end experience for voters and representatives. Starting with a connected wallet, users will have the ability to register as an active voter / representative, delegate voting power to a representative, browse proposals, cast votes, and view voter / representative rewards.First Front End Module of the Catalyst Voices UI capabilities will demonstrate:

1. The UI to include the following features:

Connect to wallets available in the Browser Session. If no wallet is available, provide helpful guidance to instructions on how to find compatible wallets.
Determine and Display a User's current Role registrations, and Voting Power.
Allow a User to Register or update a Role Registration through the wallet.
Display the details of the Current Fund, including timeline.
Allow the user to register as a Voter.
Allow a Voter to Register as a Representative.
Display to a Voter the Registered Representatives.
Allow a Voter to Delegate their Voting Power to one or more Representatives and apportion their voting power.
Allow a Representative to Deregister.
Show a Representative the status of their Voting Power and the Voters they represent.
Allow a Voter to reclaim their voting power from Representatives.
Allow a Voter to Deregister.
Show the Voter the effect of their Delegation, is it valid and the voting power assigned to their Representatives.
Allow a Representative to add “Extra” authoritative data to either their registration on-chain or to the Catalyst Backend, to provide additional context to delegators.
Data MUST be signed by the Representatives Wallet with their representatives key.
Show the Voter details about the Representative.
Recording Earned Rewards and Payment information for each registration.
Warn a Voter if their current registration can not earn rewards and guide them to correct it.
Parameters for each registration snapshot and deadline can be defined / composed
Allows each role to have a different set of deadlines or minimum staked ada.
Show a Voter their registration history, including any detected errors or issues in their registration.
Show each Category or Challenge in a Fund and display full details about the Challenge, including its budget and a summary of the Proposals made for it.
Show all Proposals currently made for a Challenge.
Show the voter when voting opens and when it ends for a fund.
When voting opens, allow a voter to choose proposals to vote on.
Votes for Proposals are signed by the wallet, and submitted to Catalyst when the voter confirms them.
Display Proposals the Voter has already Voted on, and do not allow re-voting on the same proposals.
Provide Search functions to allow Proposals to be easily found, sorted and filtered
2. Update Catalyst Database Schema to Support Proposal Submission:

Add Proposal Definition data per Fund Challenge or Category.
An Event will be able to define the format of the Proposals which can be placed on the Events Objective.
Each Challenge or Category will be able to support a different Proposal Format.
Proposal Format will be defined by JSON Schema to enable easy Proposal validation, reuse and Front End integration.
Enhance individual Proposal Data to allow us to store proposals submitted from catalyst voices.
Proposals need to be in at least a Private and Published state, as well as Draft and Final.
Draft Proposals will be stored as time sorted revisions, so that older proposal versions can be retrieved by the proposal author/s to enhance editing experience.
Add to the DB schema to allow the storage of comments on proposals which must be signed by a voter or representative making the comment.
Comments need to be time ordered.
Comments can be deleted, but they are only marked as deleted in the backend until the end of the Fund which allows a Commenter to undelete their comment if desired.
3. Update Catalyst Database Service API to support Proposal Submission:

Retrieve list of registered proposers and co-proposers.
Retrieve my proposer registration and all co-proposer registrations I am a part of. (Even if they are not fully executed yet).
Retrieve the proposal schema for an event challenge.
Submit proposals either as a co-proposer, or individual proposer. (Authoritative signed data with Proposer keys)
Update proposal state to Private/Public or Draft/Final.
Private proposals are encrypted in the backend by our private/public data protection key.
Retrieve draft proposals/final proposals for this proposer. (Authorisation proved by Proposer Keys)
Decrypt private proposals ONLY when returned to an authorized proposer.
Co-Proposers need a full and valid co-proposer registration to retrieve proposals.
Retrieve final proposals for anyone.
Submit Proposal Comments as a Voter, Representative or Proposer (auth, proposer can only comment on their own proposals/co-proposals).
Edit Proposal Comment (Re-submit and replace old comment).
Deleted Comment is not displayed or returned by the API, but is retained until the end of the Fund.
Retrieve Comments for a Proposal.

@mike-mcnulty mike-mcnulty added the epic A high-level feature or collection of related user stories/tasks that span multiple issues. label Dec 12, 2024
@mike-mcnulty mike-mcnulty added this to the M4: Voting & Delegation milestone Dec 12, 2024
@mike-mcnulty mike-mcnulty changed the title 🏛️ [EPIC] : Milestone4 Wrap 🏛️ [EPIC] : Milestone4 Wrap Up Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic A high-level feature or collection of related user stories/tasks that span multiple issues.
Projects
Status: New
Development

No branches or pull requests

1 participant