# tarun-binay-das/pulseforge architecture

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

- Interactive diagram: https://gitdiagram.com/tarun-binay-das/pulseforge
- Repository: https://github.com/tarun-binay-das/pulseforge

## Overview

PulseForge is a Web3 strategy-discovery and ownership demo: users explore on-chain-reputation trader profiles, inspect vaults and trade explanations, and view strategy passes and a portfolio dashboard. Its current UI and API use deterministic mock data; the README describes Solidity contracts and a Prisma production data model, but does not show them wired into the demo runtime. The graph preserves those documented product subsystems. Edges reflect shown imports, API data use, and README statements; unshown production integrations are not inferred.

Main entry points: [`lib/data.ts`](https://github.com/tarun-binay-das/pulseforge/blob/main/lib/data.ts) (Deterministic demo data), [`app/dashboard/page.tsx`](https://github.com/tarun-binay-das/pulseforge/blob/main/app/dashboard/page.tsx) (Portfolio dashboard), [`components/charts.tsx`](https://github.com/tarun-binay-das/pulseforge/blob/main/components/charts.tsx) (Charts), [`app/traders/[id]/profile.tsx`](https://github.com/tarun-binay-das/pulseforge/blob/main/app/traders/%5Bid%5D/profile.tsx) (Trader profile)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Discovery and profiles"]
  node_landing["Landing page<br/>[page.tsx]"]
  node_leaderboard["Trader leaderboard<br/>[page.tsx]"]
  node_profile["Trader profile<br/>[profile.tsx]"]
  node_tradercards["Trader cards<br/>[trader-card.tsx]"]
  node_reputation["Reputation registry"]
  node_tradersapi["Traders API<br/>[route.ts]"]
end

subgraph group_vaults["Vault mirroring"]
  node_vaultlist["Vault listings<br/>[page.tsx]"]
  node_vaultdetail["Vault detail<br/>[detail.tsx]"]
  node_vaultcards["Vault cards<br/>[vault-card.tsx]"]
  node_vaultcontract["Strategy vault<br/>[StrategyVault.sol]"]
  node_vaultsapi["Vaults API<br/>[route.ts]"]
end

subgraph group_ownership["Strategy ownership"]
  node_passlist["Pass marketplace<br/>[page.tsx]"]
  node_passcards["Strategy pass cards<br/>[pass-card.tsx]"]
  node_passcontract["Strategy pass<br/>[StrategyPass.sol]"]
end

subgraph group_transparency["Trade transparency"]
  node_tradeview["Trade list<br/>[trade-list.tsx]"]
  node_explainui["AI explanation panel<br/>[ai-explain.tsx]"]
  node_explainapi["Explanation API<br/>[route.ts]"]
  node_aiengine["AI explainer<br/>[ai.ts]"]
end

subgraph group_platform["Demo platform"]
  node_dashboard["Portfolio dashboard<br/>[page.tsx]"]
  node_activity["Activity feed<br/>[activity-feed.tsx]"]
  node_activityapi["Activity API<br/>[route.ts]"]
  node_mockdata["Deterministic demo data<br/>[data.ts]"]
  node_prismamodel[("Production data model<br/>[schema.prisma]")]
  node_wallet["Wallet connector<br/>[wallet.tsx]"]
  node_charts["Charts<br/>[charts.tsx]"]
end

node_visitor(("User"))
node_anthropic["Anthropic Claude"]

node_visitor -->|"opens"| node_landing
node_landing -->|"links to"| node_leaderboard
node_landing -->|"links to"| node_vaultlist
node_landing -->|"links to"| node_dashboard
node_leaderboard -->|"reads"| node_mockdata
node_leaderboard -->|"renders"| node_tradercards
node_profile -->|"reads"| node_mockdata
node_profile -->|"renders"| node_charts
node_profile -->|"renders"| node_tradeview
node_profile -->|"renders"| node_vaultcards
node_tradercards -->|"renders"| node_charts
node_vaultlist -->|"reads"| node_mockdata
node_vaultlist -->|"renders"| node_vaultcards
node_vaultdetail -->|"reads"| node_mockdata
node_vaultdetail -->|"renders"| node_charts
node_vaultdetail -->|"uses"| node_wallet
node_vaultcards -->|"renders"| node_charts
node_passlist -->|"reads"| node_mockdata
node_passlist -->|"renders"| node_passcards
node_passcards -->|"uses"| node_wallet
node_dashboard -->|"reads"| node_mockdata
node_dashboard -->|"renders"| node_charts
node_dashboard -->|"renders"| node_tradeview
node_dashboard -->|"renders"| node_activity
node_dashboard -->|"uses"| node_wallet
node_tradeview -->|"renders"| node_explainui
node_explainapi -->|"calls"| node_aiengine
node_explainapi -->|"reads"| node_mockdata
node_anthropic -.->|"optional provider"| node_aiengine
node_tradersapi -->|"reads"| node_mockdata
node_vaultsapi -->|"reads"| node_mockdata
node_activityapi -->|"reads"| node_mockdata
node_visitor -.->|"mirrors via"| node_vaultcontract
node_vaultcontract -.->|"separate contracts"| node_passcontract
node_reputation -.->|"production linkage"| node_prismamodel

click node_landing "https://github.com/tarun-binay-das/pulseforge/blob/main/app/page.tsx"
click node_leaderboard "https://github.com/tarun-binay-das/pulseforge/blob/main/app/traders/page.tsx"
click node_profile "https://github.com/tarun-binay-das/pulseforge/blob/main/app/traders/%5Bid%5D/profile.tsx"
click node_tradercards "https://github.com/tarun-binay-das/pulseforge/blob/main/components/trader-card.tsx"
click node_vaultlist "https://github.com/tarun-binay-das/pulseforge/blob/main/app/vaults/page.tsx"
click node_vaultdetail "https://github.com/tarun-binay-das/pulseforge/blob/main/app/vaults/%5Bid%5D/detail.tsx"
click node_vaultcards "https://github.com/tarun-binay-das/pulseforge/blob/main/components/vault-card.tsx"
click node_vaultcontract "https://github.com/tarun-binay-das/pulseforge/blob/main/contracts/StrategyVault.sol"
click node_passlist "https://github.com/tarun-binay-das/pulseforge/blob/main/app/passes/page.tsx"
click node_passcards "https://github.com/tarun-binay-das/pulseforge/blob/main/components/pass-card.tsx"
click node_passcontract "https://github.com/tarun-binay-das/pulseforge/blob/main/contracts/StrategyPass.sol"
click node_reputation "https://github.com/tarun-binay-das/pulseforge/blob/main/contracts/ReputationRegistry.sol"
click node_dashboard "https://github.com/tarun-binay-das/pulseforge/blob/main/app/dashboard/page.tsx"
click node_activity "https://github.com/tarun-binay-das/pulseforge/blob/main/components/activity-feed.tsx"
click node_tradeview "https://github.com/tarun-binay-das/pulseforge/blob/main/components/trade-list.tsx"
click node_explainui "https://github.com/tarun-binay-das/pulseforge/blob/main/components/ai-explain.tsx"
click node_explainapi "https://github.com/tarun-binay-das/pulseforge/blob/main/app/api/ai/explain/route.ts"
click node_aiengine "https://github.com/tarun-binay-das/pulseforge/blob/main/lib/ai.ts"
click node_tradersapi "https://github.com/tarun-binay-das/pulseforge/blob/main/app/api/traders/route.ts"
click node_vaultsapi "https://github.com/tarun-binay-das/pulseforge/blob/main/app/api/vaults/route.ts"
click node_activityapi "https://github.com/tarun-binay-das/pulseforge/blob/main/app/api/activity/route.ts"
click node_mockdata "https://github.com/tarun-binay-das/pulseforge/blob/main/lib/data.ts"
click node_prismamodel "https://github.com/tarun-binay-das/pulseforge/blob/main/prisma/schema.prisma"
click node_wallet "https://github.com/tarun-binay-das/pulseforge/blob/main/lib/wallet.tsx"
click node_charts "https://github.com/tarun-binay-das/pulseforge/blob/main/components/charts.tsx"

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_landing,node_leaderboard,node_profile,node_tradercards,node_reputation,node_tradersapi,node_visitor toneBlue
class node_vaultlist,node_vaultdetail,node_vaultcards,node_vaultcontract,node_vaultsapi toneAmber
class node_passlist,node_passcards,node_passcontract toneMint
class node_tradeview,node_explainui,node_explainapi,node_aiengine toneRose
class node_dashboard,node_activity,node_activityapi,node_mockdata,node_prismamodel,node_wallet,node_charts,node_anthropic toneIndigo
```

## Components

### Discovery and profiles

- [Landing page](https://github.com/tarun-binay-das/pulseforge/blob/main/app/page.tsx): `app/page.tsx`
- [Trader leaderboard](https://github.com/tarun-binay-das/pulseforge/blob/main/app/traders/page.tsx): `app/traders/page.tsx`
- [Trader profile](https://github.com/tarun-binay-das/pulseforge/blob/main/app/traders/%5Bid%5D/profile.tsx): `app/traders/[id]/profile.tsx`
- [Trader cards](https://github.com/tarun-binay-das/pulseforge/blob/main/components/trader-card.tsx): `components/trader-card.tsx`
- [Reputation registry](https://github.com/tarun-binay-das/pulseforge/blob/main/contracts/ReputationRegistry.sol): `contracts/ReputationRegistry.sol`
- [Traders API](https://github.com/tarun-binay-das/pulseforge/blob/main/app/api/traders/route.ts): `app/api/traders/route.ts`

### Vault mirroring

- [Vault listings](https://github.com/tarun-binay-das/pulseforge/blob/main/app/vaults/page.tsx): `app/vaults/page.tsx`
- [Vault detail](https://github.com/tarun-binay-das/pulseforge/blob/main/app/vaults/%5Bid%5D/detail.tsx): `app/vaults/[id]/detail.tsx`
- [Vault cards](https://github.com/tarun-binay-das/pulseforge/blob/main/components/vault-card.tsx): `components/vault-card.tsx`
- [Strategy vault](https://github.com/tarun-binay-das/pulseforge/blob/main/contracts/StrategyVault.sol): `contracts/StrategyVault.sol`
- [Vaults API](https://github.com/tarun-binay-das/pulseforge/blob/main/app/api/vaults/route.ts): `app/api/vaults/route.ts`

### Strategy ownership

- [Pass marketplace](https://github.com/tarun-binay-das/pulseforge/blob/main/app/passes/page.tsx): `app/passes/page.tsx`
- [Strategy pass cards](https://github.com/tarun-binay-das/pulseforge/blob/main/components/pass-card.tsx): `components/pass-card.tsx`
- [Strategy pass](https://github.com/tarun-binay-das/pulseforge/blob/main/contracts/StrategyPass.sol): `contracts/StrategyPass.sol`

### Trade transparency

- [Trade list](https://github.com/tarun-binay-das/pulseforge/blob/main/components/trade-list.tsx): `components/trade-list.tsx`
- [AI explanation panel](https://github.com/tarun-binay-das/pulseforge/blob/main/components/ai-explain.tsx): `components/ai-explain.tsx`
- [Explanation API](https://github.com/tarun-binay-das/pulseforge/blob/main/app/api/ai/explain/route.ts): `app/api/ai/explain/route.ts`
- [AI explainer](https://github.com/tarun-binay-das/pulseforge/blob/main/lib/ai.ts): `lib/ai.ts`

### Demo platform

- [Portfolio dashboard](https://github.com/tarun-binay-das/pulseforge/blob/main/app/dashboard/page.tsx): `app/dashboard/page.tsx`
- [Activity feed](https://github.com/tarun-binay-das/pulseforge/blob/main/components/activity-feed.tsx): `components/activity-feed.tsx`
- [Activity API](https://github.com/tarun-binay-das/pulseforge/blob/main/app/api/activity/route.ts): `app/api/activity/route.ts`
- [Deterministic demo data](https://github.com/tarun-binay-das/pulseforge/blob/main/lib/data.ts): `lib/data.ts`
- [Production data model](https://github.com/tarun-binay-das/pulseforge/blob/main/prisma/schema.prisma): `prisma/schema.prisma`
- [Wallet connector](https://github.com/tarun-binay-das/pulseforge/blob/main/lib/wallet.tsx): `lib/wallet.tsx`
- [Charts](https://github.com/tarun-binay-das/pulseforge/blob/main/components/charts.tsx): `components/charts.tsx`

### Other components

- **User**
- **Anthropic Claude**

## Connections

- User → Landing page: opens (evidence: `README.md`)
- Landing page → Trader leaderboard: links to (evidence: `app/page.tsx`)
- Landing page → Vault listings: links to (evidence: `app/page.tsx`)
- Landing page → Portfolio dashboard: links to (evidence: `app/page.tsx`)
- Trader leaderboard → Deterministic demo data: reads (evidence: `app/traders/page.tsx`)
- Trader leaderboard → Trader cards: renders (evidence: `app/traders/page.tsx`)
- Trader profile → Deterministic demo data: reads (evidence: `app/traders/[id]/profile.tsx`)
- Trader profile → Charts: renders (evidence: `app/traders/[id]/profile.tsx`)
- Trader profile → Trade list: renders (evidence: `app/traders/[id]/profile.tsx`)
- Trader profile → Vault cards: renders (evidence: `app/traders/[id]/profile.tsx`)
- Trader cards → Charts: renders (evidence: `components/trader-card.tsx`)
- Vault listings → Deterministic demo data: reads (evidence: `app/vaults/page.tsx`)
- Vault listings → Vault cards: renders (evidence: `app/vaults/page.tsx`)
- Vault detail → Deterministic demo data: reads (evidence: `app/vaults/[id]/detail.tsx`)
- Vault detail → Charts: renders (evidence: `app/vaults/[id]/detail.tsx`)
- Vault detail → Wallet connector: uses (evidence: `app/vaults/[id]/detail.tsx`)
- Vault cards → Charts: renders (evidence: `components/vault-card.tsx`)
- Pass marketplace → Deterministic demo data: reads (evidence: `app/passes/page.tsx`)
- Pass marketplace → Strategy pass cards: renders (evidence: `app/passes/page.tsx`)
- Strategy pass cards → Wallet connector: uses (evidence: `components/pass-card.tsx`)
- Portfolio dashboard → Deterministic demo data: reads (evidence: `app/dashboard/page.tsx`)
- Portfolio dashboard → Charts: renders (evidence: `app/dashboard/page.tsx`)
- Portfolio dashboard → Trade list: renders (evidence: `app/dashboard/page.tsx`)
- Portfolio dashboard → Activity feed: renders (evidence: `app/dashboard/page.tsx`)
- Portfolio dashboard → Wallet connector: uses (evidence: `app/dashboard/page.tsx`)
- Trade list → AI explanation panel: renders (evidence: `components/trade-list.tsx`)
- Explanation API → AI explainer: calls (evidence: `app/api/ai/explain/route.ts`)
- Explanation API → Deterministic demo data: reads (evidence: `app/api/ai/explain/route.ts`)
- Anthropic Claude → AI explainer: optional provider (evidence: `README.md`)
- Traders API → Deterministic demo data: reads (evidence: `app/api/traders/route.ts`)
- Vaults API → Deterministic demo data: reads (evidence: `app/api/vaults/route.ts`)
- Activity API → Deterministic demo data: reads (evidence: `app/api/activity/route.ts`)
- User → Strategy vault: mirrors via (evidence: `README.md`)
- Strategy vault → Strategy pass: separate contracts
- Reputation registry → Production data model: production linkage
