# Gitcoin/Allo Raid- Development
###### tags: `allo`
[Spec doc](https://docs.google.com/document/d/1yniob8Zt8dU2iTMYpznsFXMQNCE8Uhr6bfQSS7FqPNk/edit?usp=sharing)
[Allo docs](https://docs.allo.gitcoin.co/getting-started/introduction)
[Raid notes on Charmverse](https://app.charmverse.io/raid-guild/page-712045406966141)

### Goals:
### Mentioned Features:
### User Personas:
- Admin
- Grant Reviewer (GR)
- Token Holder (TH)
- Applicant
- General Public
### Stories:
**Admin User stories (Grant Org with $1MM)**
- I want to b able to set up a grants program with a pre-determined amount of funds
- I want to be able to deposit in Safe/SI
- SI not audited
- Safe is
- I want to be able to appoint grant reviewers
- I want to be able to release funds according to milestone-based payments
- Could chain Safe to Smart Invoices for distributions
- I want to be able to track progress of the grant and confirm project is staying on schedule and can deliver in the allotted time
- As an Admin, I want to receive notifications for dormant/unresponded applications after X days/weeks
- As an Admin, I want to be able to keep track of lower priority/pending applications, for example: gone through initial review but not immediate priority / did not receive enough attention from DAO.
**Grant Reviewers (GR) user stories**
- As a GR I want to be able to flag an application as being ready for a Snapshot vote
- As a GR, I want to be able to see a status to an application
- Waiting For - Secondary Review
- Waiting For - Snapshot Vote
- Rejected - Do Not Move Forward
- Rejected - Failed Vote
- Approved
- As a GR, I want to be able to see a status to an application
- Waiting For - Secondary Review
- Waiting For - Snapshot Vote
- Rejected - Do Not Move Forward
- As a GR I want to be able to transfer an application to Snapshot directly from within the software
- In the case of a Customer Grants DAO, I want to be able to move the Snapshot vote into 2 separate Snapshot spaces
- Leadership Committee Space
- Full DAO Space
- As a GR, I want to be able to communicate with the applicant of a grant through Discourse
- As a GR, I want to be able to communicate with other grant reviewers
- As an GR, I want to be able to schedule an application interview with the applicant
**Token Holder (TH) user stories**
- As a TH I want to be able to up- or downvote grant applications
- As a TH I want to be able to post messages to discourse for DAO members to discuss applications prior to snapshot voting
- Grant history and updated on project status
**Applicant user stories**
* As an applicant, I want to be able to communicate with the reviewer of my grant through Discourse
* ? (public or private communication?)
* As an applicant, I want to be able to schedule an AMA
* As an applicant, I want to be able to schedule an application interview with the GR
* As an applicant, I want to be able to create an application for a generic grant
* As an applicant, I want to be able to create an application for a specific RFP
* As an applicant, I want to be able to see the status of my application
* As an applicant, I want to communicate with the admin when a milestone is completed so that the payment can be released.
* When the above occurs, I want my project on the app to be automatically updated.
### Flows:
1. Application submitted by applicant: project creation/submission through Builder.
2. Admins assign grant reviewers.
3. MMG token holders vote on applications.
4. Applications are flagged.
5. Flagged applications move to Snapshot #1: Leadership Committee Space
6. Successful vote #1 moves application to Snapshot #2: Full DAO Space
7. Successful vote #2 triggers Gnosis Safe txn to send funds to address on application.
8. Gnosis Safe txn also triggers an email notification to applicant.
9. Payments are recorded and tracked in the UI, viewable to admins.
10. Project status updates are submitted by project teams via the Builder UI.
### Example Application Statuses:
- Waiting For: Secondary Review
- Waiting For: Snapshot Vote
- Rejected: Do Not Move Forward
- Rejected: Failed Vote
- Approved
### Questions:
- Applicant
- Public/private communication to grant reviewers(?)
---
## Development Scope
### Frontend/App Scope
1. Round Genesis (admin) 16hrs
* Direct round creation flow
* Selection of round type
* Application window
* Admin appoints GRs for round
* **Reviewer management necessary?**
* **Is there a subset of GRs defined for a round?**
* Integrate funding source (Safe)
2. Application Genesis (application) 10hrs
* Create form for application
* Integrate with Builder
* Support milestones
* Editable Application
3. Application Validity Stage
* **Should communication between GR and applicant be facilitated?**
* Should GRs have their own internal UI to privately comment or vote on applications(?).
* Build/update UI to explore applications as an admin
* Adding/editing status to application
5. Signal voting by tokenholders
* snapshot/off-chain
7. Selection stage (subset or individual?)
* Admin/GRs select a subset of applications as a proposal for the distribution for funds in the round
* OR select individual applications that meet grant and funding criteria
* **Are admin/GRs able to propose a granted amount? Or should it be the requested funds for the application?**
8. First Snapshot Shot (but only needed in Customer Grants DAO)
* Pass/fail on GRs subset distribution proposal
6. Second Voting Stage (Subset voting or individual voting?)
* Create Snapshot voting round with greenlit applications
* Integrate Snapshot voting
* **multiple votes per TH allowed for second voting stage?**
* Voting progress UI
* **What happens to project's requested funds if they fail the voting stage?**
* **Does the total of requested funds for the subset of applications that goes to the second voting stage have to be =< total round funds?**
7. Distribution Review Stage (-->only if individual votes)
* **Is review of applications that pass the second ground decided by the admin, or is it hardcoded to a set standard/quorum/% of tokenholders.
8. Monitoring Grant Progress/Funding Further milestones
* Create admin UI for distribution of milestones to selected projects
* Admin panel with all grant projects
* Milestone dates/funded/pending etc
* Fund and complete transactions from within app
* Public Facing UI
* Project status/updates
### MAIN QUESTIONS
1. Exact voting mechanism (voting on set of projects, or individual projects)
2. Reviewer Mgmt
3. Should we integrate payout flow into Allo Protocol or just use a combination of Gnosis Safe and a modified Smart Invoice.
### Contract/Payout Scope
1. Set up 'Direct Grants' Round with Program Manager
2. Round accepts applications, deploy new round with Smart Invoice payment strategy
3. Distribution is from Gnosis Safe to project addresses (escrow?)
4. Milestone payouts. Set on round or through individual preject escrows(?)
### Budget