# tdas-kolkata/market-mitra architecture

> Architecture diagram of the GitHub repository tdas-kolkata/market-mitra, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tdas-kolkata/market-mitra
- Repository: https://github.com/tdas-kolkata/market-mitra

## Overview

Market Mitra is an Indian-equity risk/return analysis product. Its visible workflow presents risk-return data from a database view as an interactive chart; the jobs tree also supports company-universe loading, daily-price ingestion, view refresh, and cleanup. The README is minimal, and daily-pricing, view-refresh, and several dashboard implementations were not sampled, so those links are shown only where supported by the tree and sampled orchestration.

Main entry points: [`jobs/pricing/load_all_daily_pricing.py`](https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/pricing/load_all_daily_pricing.py) (Daily pricing batch), [`jobs/pricing/daily`](https://github.com/tdas-kolkata/market-mitra/tree/master/jobs/pricing/daily) (Single-symbol pricing load), [`dashboard/src/app/page.tsx`](https://github.com/tdas-kolkata/market-mitra/blob/master/dashboard/src/app/page.tsx) (Analysis page), [`dashboard/src/interfaces/risk_return_data_interface.ts`](https://github.com/tdas-kolkata/market-mitra/blob/master/dashboard/src/interfaces/risk_return_data_interface.ts) (Chart data transform)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_dashboard["Analysis dashboard"]
  node_home["Analysis page<br/>[page.tsx]"]
  node_transform["Chart data transform"]
  node_chart["Risk-return chart"]
end

subgraph group_ingestion["Market data ingestion"]
  node_company_load["Company universe load<br/>[initial_load.py]"]
  node_daily_batch["Daily pricing batch"]
  node_daily_load["Single-symbol pricing load"]
end

subgraph group_persistence["Data persistence"]
  node_company_data["Company models<br/>[company.py]"]
  node_price_model["Price model<br/>[price.py]"]
  node_market_db[("Market data database")]
  node_risk_view[("Risk-return view")]
end

subgraph group_operations["Data operations"]
  node_view_refresh["Risk-return view refresh<br/>[update_view.py]"]
  node_cleanup["Prefect history cleanup"]
  node_prefect_db[("Prefect database")]
end

node_investor(("Investor"))
node_pricing_source["Market pricing source"]

node_investor -->|"opens"| node_home
node_home -->|"queries"| node_risk_view
node_home -->|"transforms"| node_transform
node_transform -->|"supplies data"| node_chart
node_company_load -->|"validates and loads"| node_company_data
node_company_data -->|"persists in"| node_market_db
node_daily_batch -->|"queries companies"| node_market_db
node_daily_batch -->|"invokes per symbol"| node_daily_load
node_daily_batch -.->|"dispatches deployment"| node_daily_load
node_daily_load -.->|"retrieves prices"| node_pricing_source
node_daily_load -->|"uses model"| node_price_model
node_price_model -->|"persists prices"| node_market_db
node_daily_batch -->|"invokes refresh"| node_view_refresh
node_view_refresh -->|"refreshes"| node_risk_view
node_cleanup -->|"deletes old records"| node_prefect_db

click node_home "https://github.com/tdas-kolkata/market-mitra/blob/master/dashboard/src/app/page.tsx"
click node_transform "https://github.com/tdas-kolkata/market-mitra/blob/master/dashboard/src/interfaces/risk_return_data_interface.ts"
click node_chart "https://github.com/tdas-kolkata/market-mitra/blob/master/dashboard/src/components/plots/risk_return_plot.tsx"
click node_company_load "https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/initial_load.py"
click node_company_data "https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/models/company.py"
click node_daily_batch "https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/pricing/load_all_daily_pricing.py"
click node_daily_load "https://github.com/tdas-kolkata/market-mitra/tree/master/jobs/pricing/daily"
click node_price_model "https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/models/price.py"
click node_view_refresh "https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/update_view.py"
click node_cleanup "https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/cleanup/prefect_db_cleanup.py"

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_home,node_transform,node_chart toneBlue
class node_company_load,node_daily_batch,node_daily_load toneAmber
class node_company_data,node_price_model,node_market_db,node_risk_view toneMint
class node_view_refresh,node_cleanup,node_prefect_db toneRose
class node_investor,node_pricing_source toneIndigo
```

## Components

### Analysis dashboard

- [Analysis page](https://github.com/tdas-kolkata/market-mitra/blob/master/dashboard/src/app/page.tsx): `dashboard/src/app/page.tsx`
- [Chart data transform](https://github.com/tdas-kolkata/market-mitra/blob/master/dashboard/src/interfaces/risk_return_data_interface.ts): `dashboard/src/interfaces/risk_return_data_interface.ts`
- [Risk-return chart](https://github.com/tdas-kolkata/market-mitra/blob/master/dashboard/src/components/plots/risk_return_plot.tsx): `dashboard/src/components/plots/risk_return_plot.tsx`

### Market data ingestion

- [Company universe load](https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/initial_load.py): `jobs/initial_load.py`
- [Daily pricing batch](https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/pricing/load_all_daily_pricing.py): `jobs/pricing/load_all_daily_pricing.py`
- [Single-symbol pricing load](https://github.com/tdas-kolkata/market-mitra/tree/master/jobs/pricing/daily): `jobs/pricing/daily`

### Data persistence

- [Company models](https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/models/company.py): `jobs/models/company.py`
- [Price model](https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/models/price.py): `jobs/models/price.py`
- **Market data database**
- **Risk-return view**

### Data operations

- [Risk-return view refresh](https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/update_view.py): `jobs/update_view.py`
- [Prefect history cleanup](https://github.com/tdas-kolkata/market-mitra/blob/master/jobs/cleanup/prefect_db_cleanup.py): `jobs/cleanup/prefect_db_cleanup.py`
- **Prefect database**

### Other components

- **Investor**
- **Market pricing source**

## Connections

- Investor → Analysis page: opens
- Analysis page → Risk-return view: queries
- Analysis page → Chart data transform: transforms
- Chart data transform → Risk-return chart: supplies data
- Company universe load → Company models: validates and loads
- Company models → Market data database: persists in
- Daily pricing batch → Market data database: queries companies
- Daily pricing batch → Single-symbol pricing load: invokes per symbol
- Daily pricing batch → Single-symbol pricing load: dispatches deployment
- Single-symbol pricing load → Market pricing source: retrieves prices
- Single-symbol pricing load → Price model: uses model
- Price model → Market data database: persists prices
- Daily pricing batch → Risk-return view refresh: invokes refresh
- Risk-return view refresh → Risk-return view: refreshes
- Prefect history cleanup → Prefect database: deletes old records
