# shubham2249/data_analyst_agent architecture

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

- Interactive diagram: https://gitdiagram.com/shubham2249/data_analyst_agent
- Repository: https://github.com/shubham2249/data_analyst_agent

## Overview

Data Analyst Agent accepts an uploaded task/questions file, asks Gemini to generate Python, runs that code, retries on execution errors, and returns parsed list output. The README describes scraping, analysis, and visualizations; the checked-in main.py demonstrates CSV statistics and chart generation, but app.py overwrites it with generated code. Those capabilities are represented, but their runtime wiring is uncertain because generated code and its prompt-driven behavior were not inspected.

Main entry points: [`app.py`](https://github.com/shubham2249/data_analyst_agent/blob/main/app.py) (Upload API), [`main.py`](https://github.com/shubham2249/data_analyst_agent/blob/main/main.py) (Analysis script), [`prompts/task_breakdown.txt`](https://github.com/shubham2249/data_analyst_agent/blob/main/prompts/task_breakdown.txt) (Task prompt)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API orchestration"]
  node_app["Upload API<br/>[app.py]"]
  node_prompt["Task prompt<br/>[task_breakdown.txt]"]
  node_result["List response<br/>[app.py]"]
end

subgraph group_generated["Generated analysis"]
  node_script["Analysis script<br/>[main.py]"]
  node_collection["Data collection<br/>[main.py]"]
  node_analysis["Data analysis<br/>[main.py]"]
  node_visualization["Chart generation<br/>[main.py]"]
end

subgraph group_integrations["External services"]
  node_gemini["Gemini"]
  node_web["Web sources"]
end

node_user(("API user"))

node_user -->|"uploads task"| node_app
node_app -->|"reads prompt"| node_prompt
node_app -->|"requests code"| node_gemini
node_gemini -->|"returns code"| node_app
node_app -->|"writes code"| node_script
node_app -->|"runs script"| node_script
node_script -.->|"collects data"| node_collection
node_script -->|"analyzes data"| node_analysis
node_script -->|"creates charts"| node_visualization
node_collection -.->|"scrapes pages"| node_web
node_app -->|"parses stdout"| node_result
node_result -->|"returns list"| node_user

click node_app "https://github.com/shubham2249/data_analyst_agent/blob/main/app.py"
click node_prompt "https://github.com/shubham2249/data_analyst_agent/blob/main/prompts/task_breakdown.txt"
click node_script "https://github.com/shubham2249/data_analyst_agent/blob/main/main.py"
click node_collection "https://github.com/shubham2249/data_analyst_agent/blob/main/main.py"
click node_analysis "https://github.com/shubham2249/data_analyst_agent/blob/main/main.py"
click node_visualization "https://github.com/shubham2249/data_analyst_agent/blob/main/main.py"
click node_result "https://github.com/shubham2249/data_analyst_agent/blob/main/app.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_app,node_prompt,node_result,node_user toneBlue
class node_script,node_collection,node_analysis,node_visualization toneAmber
class node_gemini,node_web toneMint
```

## Components

### API orchestration

- [Upload API](https://github.com/shubham2249/data_analyst_agent/blob/main/app.py): `app.py`
- [Task prompt](https://github.com/shubham2249/data_analyst_agent/blob/main/prompts/task_breakdown.txt): `prompts/task_breakdown.txt`
- [List response](https://github.com/shubham2249/data_analyst_agent/blob/main/app.py): `app.py`

### Generated analysis

- [Analysis script](https://github.com/shubham2249/data_analyst_agent/blob/main/main.py): `main.py`
- [Data collection](https://github.com/shubham2249/data_analyst_agent/blob/main/main.py): `main.py`
- [Data analysis](https://github.com/shubham2249/data_analyst_agent/blob/main/main.py): `main.py`
- [Chart generation](https://github.com/shubham2249/data_analyst_agent/blob/main/main.py): `main.py`

### External services

- **Gemini**
- **Web sources**

### Other components

- **API user**

## Connections

- API user → Upload API: uploads task
- Upload API → Task prompt: reads prompt
- Upload API → Gemini: requests code
- Gemini → Upload API: returns code
- Upload API → Analysis script: writes code
- Upload API → Analysis script: runs script
- Analysis script → Data collection: collects data
- Analysis script → Data analysis: analyzes data
- Analysis script → Chart generation: creates charts
- Data collection → Web sources: scrapes pages
- Upload API → List response: parses stdout
- List response → API user: returns list
