Functional Specification
Introduction
This document outlines the functional specifications for the development of Collabberry - a compensation product for early-stage teams based on web3 technology and peer-to-peer (p2p) assessment. The product aims to streamline the process of defining individual commitments, determining fair salaries, and measuring value based on peer-to-peer assessments within teams.
Overview
Collabberry was born as a result of the RnDAO Fellowship program. For 3 months I researched the problem and talked to DAO leads, founders and contributors to understand their problem well. All this described in this paper:
Components
The solution consist of several crucial components that when working together, provide all characteristics needed laid down in the paper.
Peer-to-peer Assessment process
In order to measure value, Collabberry uses peer-to-peer assessment. This assessment works slightly different than the ones we already have though.
Requirements:
- Using mean for calculating the score of each contributor
- Allowing the contributors to dynamically input achievements, even before the assessment round is open
- Optional anonymity as a setting
- Simple UI/UX for admins
Minimal Viable Salary
Each contributor can select their own Minimal Viable Salary when setting up their proposal to join the team. The inputs are: MVS, Market Rate, Commitment. Based on those a package of expected team points and MVS is created.
Ownership Tokens/Points
The system works with a token/points representing ownership in the organization. Those points are initially only in the context of Collabberry and they can further on be used by the team to mint a token of their own (Example: Governance Tokens for DAOs). The team can alternatively choose to use these points for allocation of equity on a later stage. Those tokens are not transferable and cannot be obtained on a secondary markets and public sells.
Compensation Algorithm
TO ADD; Create a diagram
Functional Requirements
Here are the MVP user stories based on the roles of user and admin. Every admin can also access all user pages and functionalities.
User Stories for Users:
- As a user, I want to have the ability to add team members to the team I created.
- As a user, when I am added to a team, I want to define my commitment level in terms of hours per week, Minimum Viable Salary (MVS), and market rate for fair salary per month.
- As a user, after defining my commitment, MVS, and market rate, I want my proposal to be reviewed and approved by the admin.
- As a user, I want to be able to participate in the peer-to-peer (p2p) assessment rounds by allocating assessment points to my team members.
- As a user, I want to see the results of the p2p assessment round, including the allocation of funds and ownership tokens to contributors.
- As a user, I want to be able to view and adjust my personal settings, such as commitment level, MVS, and market rate, which results in a new proposal.
- As a user, I want to be able to view the results and statistics of all assessment rounds.
User Stories for Admins:
- As an admin, I want to be able to create a team within the platform.
- As an admin, I want to have the ability to invite team members to the team I created.
- As an admin, I want to have the ability to configure and initiate rounds of p2p assessment within the platform.
- As an admin, I want to be able to review and approve the proposals submitted by team members regarding their commitment level, MVS, and market rate.
- As an admin, I want to set parameters for p2p assessment rounds, such as frequency, percentage of salaries distributed via p2p assessment, and percentage of stable salary.
- As an admin, I want to be able to create multiple teams within the organization.
Non-Functional Requirements
- Security:
- The Team points, representing ownership over the project, needs to be transparent, secure and immutable outside the platform algorithms.
- User data, including salary information and assessment results, should be securely stored and accessible only to authorized users, unless set to public.
- Scalability: The system should be able to handle a growing number of teams and users without significant performance degradation.
- Usability: The user interface should be intuitive and user-friendly, facilitating easy navigation and interaction for both users and admins. For easy onboarding, the platform will integrate a social login wallet, such as Torus or Magic, as well as Wallet Connect. The platform will have the option for Metatransactions, so that non web3 native users can access the platform with no funds for transaction fees in their wallets.
User Interfaces
Admin Dashboard
Admins have access to a dashboard to review pending proposals, configure assessment rounds, and manage organization settings.
User Platform
Users have a dedicated section to define commitment, MVS, and market rate, with an option to submit for admin approval. Users and admins can allocate assessment points to team members via a user-friendly interface during assessment rounds.
Technial components
Smart Contracts
Smart contracts shall be used to store and track ownership points of the project. Standard to use is to be defined - A modified Allowlisted ERC20 is a potential option.
Backend
A standard API will be used for p2p assessment, using web3 wallet for authentication. The backend will be used for the p2p assessment, to ensure that there are no costs related to assessment. It is tied to a wallet, so that the assessment can be tied to the ownership points token.
Frontend (dApp)
A web user interface shall be implemented for interacting with Collabberry. There will be separate dApp for Admin, and for Users. Admin panel is accessible only by the creator of the team, and others allowlisted by this initial admin. User platform is available to all team members after authenticating with a web3 wallet.
Implementation Plan
- Phase 1: Admin Dashboard and Proposal Review
- Create an admin dashboard for reviewing and approving/rejecting user proposals.
- Enable admins to configure assessment rounds and organization settings.
- Phase 2: User Management and Proposal Submission
- Develop user management functionalities, including team creation and member addition.
- Implement proposal submission feature for users to define commitment, MVS, and market rate.
- Phase 3: P2P Assessment and Results Calculation
- Implement the allocation of assessment points during assessment rounds.
- Develop the functionality to calculate results and distribute funds and ownership tokens accordingly.
- Phase 4: Refinement and Testing
- Conduct thorough testing to ensure functionality, security, and usability.
- Gather feedback from users and make necessary refinements to improve the product.
TODO:
Estimates and tech breakdown.