## Title of proposal:
Synthetix GrantsDAO DApp
## Description:
We propose to build a new open-source frontend for the Synthetix GrantsDAO in order to improve the user experience and code quality with respect to current one.
This proposal seeks the following goals:
* Build a new frontend towards an enhanced user experience, providing different features for each type of users (general visitors, community members and team members) in one master cohesive design.
* Provide to visitors a clear summary of what the GrantsDAO has currently funded and wants to fund.
* List proposals and requests in a tabbed interface, with one tab for proposals and one for requests.
* Allow users to filter proposals and requests according to their status
* Sorted in Markdown according to their status, also displaying number, title, and name
* Proposals sorted by Proposed (flagged if still in voting period), Approved, Completed, Rejected
* Requests: Proposed, Completed, Deprecated
* Serve a DApp for GrantsDAO team members to interact with the GrantsDAO contract via MetaMask. Users/viewers should be able to load the DApp without connect to MetaMask.
* Create a subgraph for the GrantsDAO smart contract to speed up and simplify the access to on-chain data.
* Follow the same look and feel of the current SIPs site.
## Motivation:
As a community member, we find the current site not to be well structured. Proposals and their status are confusing (it happened to us when going through the process of a grant to build a Gnosis Safe App). We believe that through our expertise, we can collaborate to develop a high-quality user experience developing an interface that serves data fast, clear, and well organized, and invites the community to participate more.
## Additional information:
### Value
* Decentralized on-chain data with high speed access and well organized
* Better user experience
* Better graphical user interface
* More features for Community and Team members
* Hosted on IPFS (no centralized party involved)
### Data to process
* Connection to Metamask
* Get proposal data
* Get community members
* Get team members
* Get on-chain proposals data (status, voters, votes, etc)
* Get off-chain proposals/requests data (GitHub repository)
### User types
* Visitor (read-only)
* Community member
* Team members (admin)
### Technologies
* Gatsby (React)
* TypeScript
* Subgraph (GraphQL)
* Styled Components
### Assumptions
* Specifications may change during the project definition and scope discovery.
* The complete UI/UX design (mockups) will be available at the time of starting DApp development
### Development Roadmap
The following roadmap is the result of an initial research of the Synthetix GrantsDAO contract and an analysis over the existing user interface:
#### Milestone 0 - Project Definition
- Goals
- Define project scope and assumptions
- Fully understand grantsDAO contract domain
- Estimate project duration
- Deliverables
- Clear and detailed project specs
- Wireframes for main workflows
- Team: Project Manager, UI/UX Developer, Ethereum Developer
- Estimate, hours:
#### Milestone 1 - UI/UX Design
- Goals
- Create, validate and agree on UI/UX mockups for all pages of GrantsDAO frontend
- Deliverables
- Mockups and assets for all the pages
- Team: UI/UX Developer
- Estimate, hours:
#### Milestone 2 - Community Members (MVP)
- Goals
- Provide visitors a clear summary of what the GrantsDAO has currently funded
- Deliverables
- GrantsDAO DApp MVP
- Subgraph for Synthetix GrantsDAO contract
- Team: Tech Lead, Full Stack Developer
- Estimate, hours:
#### Milestone 3 - Team Members
- Goals
- Enable team members to perform all actions they can do (voting, adding new members, creating/removing proposals, updating system parameters)
- Deliverables
- Fully functional GrantsDAO DApp
- Team: Tech Lead, Full Stack Developer
- Estimate, hours:
#### Milestone 4 - Deployment & QA
- Goals
- Deploy the application on IPFS (TBD)
- Quality assurance and end-user testing of every workflow
- Bug Fixing
- Complete project documentation
- Deliverables
- Full artifacts to deploy/serve DApp as static content
- System documentation
- Team: Tech Lead, Full Stack Developer, QA Engineer
- Estimate, hours:
## Previous work:
[Protofire](https://protofire.io) is a team of engineers, which helps decentralized protocols and developer platforms to accelerate growth of their ecosystems. By delivering hands-on coding and contributions, Protofire specializes in bootstrapping developer adoption and network usage.
Relevant projects:
- [Opyn SDK](https://opyn.co/#/buy)
- [Safe Apps SDK](https://www.npmjs.com/package/@gnosis.pm/safe-apps-sdk)
- [Compound Safe App](https://github.com/gnosis/safe-react-apps/tree/master/src/apps/Compound)
## Estimated hours:
| # | Description | Estimate (hours) |
| --- | --- | --- |
| 0 | Project Definition | |
| 1 | UI/UX Design | |
| 2 | Community Members (MVP) | |
| 3 | Team Members | |
| 4 | Deployment, QA, Stabilization & documentation | |
Total: x hours
## Price (SNX):
e.g.
- y SNX
## Ethereum Address:
- Please add an eligible Ethereum wallet address you'd like the funds sent to.
## Questions
1. We have checked the contract but it is not entirely clear for us what you call ‘Request' and what is the difference with a ‘Proposal’. Which is the role or the usefulness of “requests”. Can you define ‘request’ and ‘proposal’? How are they both handled by the contract?
> [color=#2dbfae]
2. How does a team member currently vote on a proposal? Manually?
> [color=#2dbfae]
3. How does a DAO member submit a proposal at https://snxgrants.io? How does a DAO member interact with the DAO contract?
> [color=#2dbfae]
4. Regarding building a UI oriented to team members:
- Do you want to only add vote actions or it should include all actions that team members can perform on the contract?
- Do you have any reference for pages’ structure or we should design it on our own?
> [color=#2dbfae]
5. Are you interested in including the Github content for proposals into the web page? We can include remote content in different ways.
> [color=#2dbfae]
6. Do you agree on updating the user icon by a “unique identity icon” based on the blockchain user address?
> [color=#2dbfae]
7. Is there any deadline or ETA for this project?
> [color=#2dbfae]
8. Are you interested in deploying the UI on IPFS in order to make it as a solution completely decentralized?
> [color=#2dbfae]