# uDonate - Phase 2 Proposal uDonate is a dApp for crowdfunding causes. As a basic user, you can donate directly to a cause or donate through your favorite Influencer. Once verified, this user can also create their own cause, and apply to become an Influencer. As an Influencer, you can endorse your favorite causes and organize a donation pool for users to donate through. ## Scope Overview Phase 2 focuses primarily on reducing data complexity in the current MVP. This involves adding a subgraph, and removing fields in both the MongoDB and Airtable database. Secondarily, phase 2 focuses on adding more nuance to Influencer scores, plus expanding the types of communication for admins and cause creators. The full list of features are listed below: 1. A subgraph, mainly to store `cause` data 2. More complex data capture and reporting * Tracking social media interactions for influencer scores * Top donors through influencers * Influencer score iteration to include more data points * calculated from donation data for MVP 2. Better "influencer discovery" and search functionaly 3. In-app communication features * Admin communication to influencers/cause creators * Cause creator communication to donors (cause updates); this was added to phase 1 already, but without email notifications * Donor has the option to get updated by email 4. Admin tooling outside of Airtable * Most likely a single admin page on the uDonate app 5. Complete `EscrowedERC20Causes` functionality ## Milestones Milestones will be broken up into 3 parts. The first involves a mini design sprint for the subgraph, admin table, and influencer scoring. It is preferred that a weekly meeting be scheduled with the smart contract team to determine necessary contract changes for the subgraph. Ideally, all contract changes will be made before moving on to the next milestone. Milestones 2 and 3 involve building out the actual features. The more intensive features--subgraph and admin table--will be shared between both milestones, while the minor features will be split. 1. Mini sprint to spec out subgraph, admin panel, and influencer scoring - UX design for admin panel - Weekly meetings with the smart contract team, in order to figure out necessary contract changes 2. First draft of subgraph, admin panel, and: - `EscrowedERC20Causes` functionality 4. Final draft of subgraph, admin panel, and: - Influencer scoring - Influencer discovery Because the workload of the admin panel and subgraph is dependent on the design and spec, only a Milestone 1 estimate is provided below. The user stories and Milestone 2 & 3 estimates will be determined after Milestone 1 is complete. ## User Stories TBD after Milestone 1 ## Spec ### Frontend * Email Verification: **Magic.Link** * Email Relay Service: **Sendgrid** * Frontend Hosting: **Vercel** * File (image) Hosting: **Infura IPFS** * Frontend Framework: `React` & `Typescript` * Frontend `styled-components` / `SASS` / `CSS` * Web3 Lib: `Ethers.js` -> this should be built to work on any EVM compatible chains ### Backend * Server: Express * Server Hosting: **Heroku** * DB: **MongoDB** & **Airtable** * Auth: JWT * Subgraph ### MongoDB Schema TBD after Milestone 1 ### Subgraph Schema TBD after Milestone 1 ## Recommended Team 1. Frontend Dev 2. Backend Dev 3. Subgraph Dev 4. Design Lead 5. Project Manager 6. Account Manager ## Phase 1 Cost Estimate | Milestones | Cost | Time estimate | | -------- | -------- | -------- | | Milestone 1 (design & spec) | 5,700 DAI | 15 days | | Milestone 2 & 3 (Development)| TBD | TBD | | Testing & QA | TBD | TBD | | **Milestone 1 Estimate** | 5,700 DAI | 15 days |