# Deepfunding UI
The DeepFunding UI enables anyone to create a funding round for a project and its dependencies.
*(this could later be scaled to allow anyone to upload a graph + weights to fund nodes - research papers, music, oss, etc).*
The platform is composed of a set of building blocks:
- **Dependency Graph** - Includes GitHub projects and their dependencies. Selecting one node will list all projects it's dependent upon. [Link to GitHub Dataset](https://github.com/deepfunding/dependency-graph)
- **Weights** - these weights come from either human jurors or AI models. They determine the importance of each dependency for a project. Platforms like Pond or Kaggle are used as leaderboards to measure the efficiancy of the model compared to human jurors. [Link to Pond competition](https://cryptopond.xyz/modelfactory/detail/2564617)
- **Distribution** - tokens are sent to the projects in accordance to the weights. Ideal would be to send to a GitHub repo without knowing any wallet address. Drips might have a solution to this [Drips Claim GitHub repo docs](https://docs.drips.network/get-support/claim-your-repository/). If not, a solution for this should be built on Allo.
### Example User Flow
1. **Select Project** - a user searches for an selects a project to fund and is navigated to a page that lists all of the project dependencies
2. **Funding Amount** - enter an amount of funding (and token)
3. **Choose Model** - choose a model of weights that determines how much each dependency should receive compared to the others
4. **Distribution** - transfer tokens to each project calculated as: `amount = total funding amount × weight`

## Technical Architecture
### Select Project
A search input field can be used to search for projects. A dropdown shows related suggested results to make it easier to discover projects.
**Component:**
https://ui.shadcn.com/docs/components/command

Once a project is selected, the user is navigated to the Project Details page
### Project Details
`https://deepfunding.app/:github-repo`
This page can easily be linked to navigate users directly to a page where they can support the project and its dependencies.
A token, network, and weight model can also be pre-selected via the URL:
https://deepfunding.app/ethereum/remix-project?network=10&token=USDC&weight-model=vitalik
#### List Dependencies
The selected project's dependencies are listed in a table. This will be sorted by the weight for each project.
**Component:**
https://ui.shadcn.com/docs/components/data-table
https://tanstack.com/virtual/v3

*Screenshot from ui.shadcn.com*
> ⚠️ **Dependency Levels**
> The dependency list goes 2-3 levels deep and some projects will contain thousands of items. How do we make this comprehensible?
#### Enter Funding amount
Users can choose how much funding they want to distribute to the project and it's dependencies.
**Component:**
https://ui.shadcn.com/docs/components/input
https://ui.shadcn.com/docs/components/combobox
<div style="display:flex;">
<img src="https://hackmd.io/_uploads/ByKflCZ5kl.png" />
<img src="https://hackmd.io/_uploads/SkWxlA-qke.png" />
</div>
---
#### Choose Weight model
The weight model determine the distribution of funds. They are generated by AI models and spot-checked by human jurors.