# SeaGrants on allo-v2
**SeaGrants** is a decentralized application (dapp) built on top of [allo-v2](https://github.com/allo-protocol/allo-v2/tree/main/contracts), designed for on-chain interactions. It leverages the [allo-v2-sdk](https://github.com/allo-protocol/allo-v2-sdk) for seamless integration, demonstrating best practices for other dapps built on **allo-v2** by isolating contract interactions from core business logic.
All the data needed are indexed via spec and can be found at [spec.dev/allov2](https://spec.dev/allov2).
The actual postgres database code is hosted at [allo-v2-spec](https://github.com/allo-protocol/allo-v2-spec)
## Key Functionalities
### 1. Profile Management
Users can create and manage profiles on the Registry. These profiles can be utilized within the application or created using the allo-v2-sdk and is offered when the recipient is submitting an application
### 2. Custom Strategy Deployment
The core functionality involves deploying a custom strategy (MicroGrants) for each pool, enabling specific features and behaviors tailored to the needs of the MicroGrants community.
### 3. Pool Operations
- **Creating a MicroGrantStrategy Pool:** Users can initiate the creation of a MicroGrantStrategy Pool, defining its parameters and specifications (pool amount and token, maximum amount which can be requeted, approval threshold needed for application to be accepted)
- **Allocator Management:** Pool managers have the ability to maintain a list of allocators authorized to allocate applications within the pool. The dapp offer a form and csv option to do this
- **Application Submission:** Recipients can submit applications during the allocation period, specifying an amount within the threshold set by the pool manager.
- **Profile Usage:** When creating an application, users are expected to utilize an existing profile from the Registry or create one via the allo-v2-sdk.
-
- **Allocation Mechanism:** Valid allocators can vote to accept or reject applications.
- **Funds Disbursement:** Once an application reaches the threshold of accepted allocations, the application is marked as accepted, and the requested funds are sent to the recipient at the specified address.
### 4. Frontend Data Indexing
Data essential for frontend rendering has been indexed by spec. This indexed data is publicly accessible, allowing external parties to leverage information seamlessly.
## Implemented Features
### Core Features
- **Application Workflow:**
- Submit an application
- Review an application
- Ensure funds are sent to an approved application
- Screen displaying the overall summary of MicroGrants activities
## Revised Features
### Replaced Features
- **Pool Creation Flow:** Replaced by a more intuitive pool creation screen instead of relying on script
- **Rich Markdown Support for Metadata**
- **Allocator Management Flow:** Replaced by a more intuitive allocator management screen.
- **User Profile Selection:** Recipients can now select a profile or create a new one during the application submission process.
- **Landing Page:** Replaced with a comprehensive landing page showcasing all MicroGrants pools.
## Callouts and Considerations
- **Testing Environment:** The application has undergone rigorous testing on the Goerli testnet. Extending to mainnet networks is feasible but requires thorough configuration and testing on both contract interaction and indexing components.
- **Spec Global Database:** The global database needs purging as it contains data from the pre-audit stage. Collaboration with Ben is essential for this administrative operation.