# vinay27112/yieldmind architecture

> Architecture diagram of the GitHub repository vinay27112/yieldmind, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vinay27112/yieldmind
- Repository: https://github.com/vinay27112/yieldmind

## Overview

YieldMind is a DeFi yield optimization and risk-management platform. Users connect a wallet, inspect portfolio and market data, request risk or strategy guidance, and deposit or withdraw through the execution service; confirmed transactions feed analytics and notification consumers asynchronously. The graph preserves all eight documented services and the Sepolia contract capability. Some service internals and contract source files are absent from the supplied tree, so those relationships are shown only where the README or excerpts support them.

Main entry points: [`frontend/src/services/api.js`](https://github.com/vinay27112/yieldmind/blob/main/frontend/src/services/api.js) (Service API client), [`frontend/src/App.jsx`](https://github.com/vinay27112/yieldmind/blob/main/frontend/src/App.jsx) (React frontend), [`services/execution-service/src/services/vaultService.js`](https://github.com/vinay27112/yieldmind/blob/main/services/execution-service/src/services/vaultService.js) (Vault operations), [`services/analytics-service/src/main.py`](https://github.com/vinay27112/yieldmind/blob/main/services/analytics-service/src/main.py) (Performance analytics)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["User application"]
  node_frontend["React frontend<br/>[App.jsx]"]
  node_connect["Wallet connection<br/>[ConnectPage.jsx]"]
  node_dashboard["Portfolio dashboard<br/>[DashboardPage.jsx]"]
  node_depositpage["Deposit interface<br/>[DepositPage.jsx]"]
  node_api["Service API client<br/>[api.js]"]
end

subgraph group_identity["Identity and portfolio"]
  node_auth["Accounts and sessions<br/>[authController.js]"]
  node_wallet["Wallet portfolio"]
end

subgraph group_market["Market intelligence"]
  node_protocol["Protocol rates"]
  node_price["Price feeds<br/>[priceFetcher.js]"]
end

subgraph group_actions["Execution and contracts"]
  node_execution["Transaction controller"]
  node_vaultservice["Vault operations<br/>[vaultService.js]"]
  node_vault{{"YieldVault contracts"}}
end

subgraph group_insights["Insights and events"]
  node_ai["Risk and strategies<br/>[risk.py]"]
  node_groq["AI explanations<br/>[groq_service.py]"]
  node_analytics["Performance analytics<br/>[main.py]"]
  node_snapshots[("Snapshot database<br/>[database.py]")]
  node_notifications["Email notifications<br/>[messageHandler.js]"]
end

node_user(("DeFi user"))
node_kafka["Kafka events"]
node_sepolia{{"Sepolia network"}}

node_user -->|"uses"| node_frontend
node_frontend -->|"routes to"| node_connect
node_frontend -->|"routes to"| node_dashboard
node_frontend -->|"routes to"| node_depositpage
node_connect -->|"requests auth"| node_api
node_dashboard -->|"requests data"| node_api
node_depositpage -->|"requests execution"| node_api
node_api -->|"calls service"| node_auth
node_api -->|"calls service"| node_wallet
node_api -->|"calls service"| node_protocol
node_api -->|"calls service"| node_ai
node_api -->|"calls service"| node_analytics
node_api -->|"calls service"| node_execution
node_execution -->|"calls operations"| node_vaultservice
node_vaultservice -->|"submits transactions"| node_vault
node_vaultservice -->|"uses RPC"| node_sepolia
node_wallet -->|"reads balances"| node_sepolia
node_price -->|"publishes prices"| node_kafka
node_kafka -->|"updates risk"| node_ai
node_kafka -->|"delivers alerts"| node_notifications
node_vaultservice -->|"publishes confirmations"| node_kafka
node_analytics -->|"initializes storage"| node_snapshots
node_analytics -->|"starts transaction consumer"| node_kafka
node_ai -->|"requests explanations"| node_groq

click node_frontend "https://github.com/vinay27112/yieldmind/blob/main/frontend/src/App.jsx"
click node_connect "https://github.com/vinay27112/yieldmind/blob/main/frontend/src/pages/ConnectPage.jsx"
click node_dashboard "https://github.com/vinay27112/yieldmind/blob/main/frontend/src/pages/DashboardPage.jsx"
click node_depositpage "https://github.com/vinay27112/yieldmind/blob/main/frontend/src/pages/DepositPage.jsx"
click node_api "https://github.com/vinay27112/yieldmind/blob/main/frontend/src/services/api.js"
click node_auth "https://github.com/vinay27112/yieldmind/blob/main/services/auth-service/src/controllers/authController.js"
click node_wallet "https://github.com/vinay27112/yieldmind/blob/main/services/wallet-service/src/services/portfolioService.js"
click node_protocol "https://github.com/vinay27112/yieldmind/blob/main/services/protocol-service/src/controllers/protocolController.js"
click node_price "https://github.com/vinay27112/yieldmind/blob/main/services/price-feed-service/src/services/priceFetcher.js"
click node_execution "https://github.com/vinay27112/yieldmind/blob/main/services/execution-service/src/controllers/executionController.js"
click node_vaultservice "https://github.com/vinay27112/yieldmind/blob/main/services/execution-service/src/services/vaultService.js"
click node_ai "https://github.com/vinay27112/yieldmind/blob/main/services/ai-service/src/routers/risk.py"
click node_groq "https://github.com/vinay27112/yieldmind/blob/main/services/ai-service/src/services/groq_service.py"
click node_analytics "https://github.com/vinay27112/yieldmind/blob/main/services/analytics-service/src/main.py"
click node_snapshots "https://github.com/vinay27112/yieldmind/blob/main/services/analytics-service/src/database.py"
click node_notifications "https://github.com/vinay27112/yieldmind/blob/main/services/notification-service/src/consumers/messageHandler.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_frontend,node_connect,node_dashboard,node_depositpage,node_api,node_user toneBlue
class node_auth,node_wallet toneAmber
class node_protocol,node_price toneMint
class node_execution,node_vaultservice,node_vault toneRose
class node_ai,node_groq,node_analytics,node_snapshots,node_notifications,node_kafka,node_sepolia toneIndigo
```

## Components

### User application

- [React frontend](https://github.com/vinay27112/yieldmind/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Wallet connection](https://github.com/vinay27112/yieldmind/blob/main/frontend/src/pages/ConnectPage.jsx): `frontend/src/pages/ConnectPage.jsx`
- [Portfolio dashboard](https://github.com/vinay27112/yieldmind/blob/main/frontend/src/pages/DashboardPage.jsx): `frontend/src/pages/DashboardPage.jsx`
- [Deposit interface](https://github.com/vinay27112/yieldmind/blob/main/frontend/src/pages/DepositPage.jsx): `frontend/src/pages/DepositPage.jsx`
- [Service API client](https://github.com/vinay27112/yieldmind/blob/main/frontend/src/services/api.js): `frontend/src/services/api.js`

### Identity and portfolio

- [Accounts and sessions](https://github.com/vinay27112/yieldmind/blob/main/services/auth-service/src/controllers/authController.js): `services/auth-service/src/controllers/authController.js`
- [Wallet portfolio](https://github.com/vinay27112/yieldmind/blob/main/services/wallet-service/src/services/portfolioService.js): `services/wallet-service/src/services/portfolioService.js`

### Market intelligence

- [Protocol rates](https://github.com/vinay27112/yieldmind/blob/main/services/protocol-service/src/controllers/protocolController.js): `services/protocol-service/src/controllers/protocolController.js`
- [Price feeds](https://github.com/vinay27112/yieldmind/blob/main/services/price-feed-service/src/services/priceFetcher.js): `services/price-feed-service/src/services/priceFetcher.js`

### Execution and contracts

- [Transaction controller](https://github.com/vinay27112/yieldmind/blob/main/services/execution-service/src/controllers/executionController.js): `services/execution-service/src/controllers/executionController.js`
- [Vault operations](https://github.com/vinay27112/yieldmind/blob/main/services/execution-service/src/services/vaultService.js): `services/execution-service/src/services/vaultService.js`
- **YieldVault contracts**

### Insights and events

- [Risk and strategies](https://github.com/vinay27112/yieldmind/blob/main/services/ai-service/src/routers/risk.py): `services/ai-service/src/routers/risk.py`
- [AI explanations](https://github.com/vinay27112/yieldmind/blob/main/services/ai-service/src/services/groq_service.py): `services/ai-service/src/services/groq_service.py`
- [Performance analytics](https://github.com/vinay27112/yieldmind/blob/main/services/analytics-service/src/main.py): `services/analytics-service/src/main.py`
- [Snapshot database](https://github.com/vinay27112/yieldmind/blob/main/services/analytics-service/src/database.py): `services/analytics-service/src/database.py`
- [Email notifications](https://github.com/vinay27112/yieldmind/blob/main/services/notification-service/src/consumers/messageHandler.js): `services/notification-service/src/consumers/messageHandler.js`

### Other components

- **DeFi user**
- **Kafka events**
- **Sepolia network**

## Connections

- DeFi user → React frontend: uses
- React frontend → Wallet connection: routes to (evidence: `frontend/src/App.jsx`)
- React frontend → Portfolio dashboard: routes to (evidence: `frontend/src/App.jsx`)
- React frontend → Deposit interface: routes to (evidence: `frontend/src/App.jsx`)
- Wallet connection → Service API client: requests auth
- Portfolio dashboard → Service API client: requests data (evidence: `frontend/src/pages/DashboardPage.jsx`)
- Deposit interface → Service API client: requests execution (evidence: `frontend/src/pages/DepositPage.jsx`)
- Service API client → Accounts and sessions: calls service
- Service API client → Wallet portfolio: calls service
- Service API client → Protocol rates: calls service
- Service API client → Risk and strategies: calls service
- Service API client → Performance analytics: calls service
- Service API client → Transaction controller: calls service
- Transaction controller → Vault operations: calls operations (evidence: `services/execution-service/src/controllers/executionController.js`)
- Vault operations → YieldVault contracts: submits transactions
- Vault operations → Sepolia network: uses RPC
- Wallet portfolio → Sepolia network: reads balances (evidence: `services/wallet-service/src/services/portfolioService.js`)
- Price feeds → Kafka events: publishes prices
- Kafka events → Risk and strategies: updates risk
- Kafka events → Email notifications: delivers alerts
- Vault operations → Kafka events: publishes confirmations (evidence: `services/execution-service/src/services/vaultService.js`)
- Performance analytics → Snapshot database: initializes storage (evidence: `services/analytics-service/src/main.py`)
- Performance analytics → Kafka events: starts transaction consumer (evidence: `services/analytics-service/src/main.py`)
- Risk and strategies → AI explanations: requests explanations (evidence: `services/ai-service/src/routers/risk.py`)
