# arya-dumane/investiq architecture

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

- Interactive diagram: https://gitdiagram.com/arya-dumane/investiq
- Repository: https://github.com/arya-dumane/investiq

## Overview

InvestIQ is an investor-education web app whose core workflow takes users from goal or scenario inputs to financial plans and visualizations, or from pasted news/questions to plain-language AI explanations. The frontend separates these learning experiences into calculator, simulator, and market-analysis routes; shared charts and navigation support them, while an Express API provides Gemini-backed explanations and analysis. The README documents additional API capabilities. Backend internals and some frontend request wiring were not excerpted, so their connections are shown only where documented or directly visible.

Main entry points: [`final-project/frontend/app/calculator/page.js`](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/calculator/page.js) (Goal Calculator), [`final-project/frontend/app/simulator/page.js`](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/simulator/page.js) (Goal Simulator), [`final-project/frontend/app/market-insights/page.js`](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/market-insights/page.js) (Market Analyzer), [`final-project/frontend/app/page.js`](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/page.js) (Home)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_learning["Learning Experience"]
  node_home["Home<br/>[page.js]"]
  node_navigation["Navigation<br/>[Navbar.jsx]"]
  node_disclaimer["Disclaimer Footer<br/>[Footer.jsx]"]
end

subgraph group_planning["Financial Planning"]
  node_calculator["Goal Calculator<br/>[page.js]"]
  node_simulator["Goal Simulator<br/>[page.js]"]
  node_calculations["Calculation Engine"]
  node_growthchart["Growth Charts<br/>[GrowthChart.jsx]"]
end

subgraph group_insights["AI Insights"]
  node_assistant["AI Assistant"]
  node_marketpage["Market Analyzer<br/>[page.js]"]
  node_marketresult["Analysis Results"]
end

subgraph group_services["API Services"]
  node_api["Express API<br/>[server.js]"]
end

node_investor(("Investor"))
node_gemini{{"Google Gemini"}}

node_investor -->|"opens"| node_home
node_home -->|"links to"| node_calculator
node_home -->|"links to"| node_simulator
node_investor -->|"uses"| node_calculator
node_investor -->|"uses"| node_simulator
node_investor -->|"submits news"| node_marketpage
node_calculator -->|"calculates with"| node_calculations
node_simulator -->|"calculates with"| node_calculations
node_calculator -->|"renders"| node_growthchart
node_simulator -->|"renders"| node_growthchart
node_growthchart -->|"formats with"| node_calculations
node_marketpage -->|"renders"| node_marketresult
node_assistant -->|"requests explanation"| node_api
node_investor -->|"asks questions"| node_assistant
node_marketpage -->|"requests analysis"| node_api
node_api -->|"generates AI responses"| node_gemini
node_home -->|"renders"| node_navigation
node_calculator -->|"renders"| node_navigation
node_simulator -->|"renders"| node_navigation
node_marketpage -->|"renders"| node_navigation
node_calculator -->|"renders"| node_disclaimer
node_simulator -->|"renders"| node_disclaimer
node_marketpage -->|"renders"| node_disclaimer

click node_home "https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/page.js"
click node_navigation "https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/components/Navbar.jsx"
click node_disclaimer "https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/components/Footer.jsx"
click node_assistant "https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/components/FloatingAssistant.jsx"
click node_calculator "https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/calculator/page.js"
click node_simulator "https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/simulator/page.js"
click node_calculations "https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/lib/financialCalculations.js"
click node_growthchart "https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/components/GrowthChart.jsx"
click node_marketpage "https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/market-insights/page.js"
click node_marketresult "https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/components/MarketInsightsResult.jsx"
click node_api "https://github.com/arya-dumane/investiq/blob/main/final-project/backend/server.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_home,node_navigation,node_disclaimer toneBlue
class node_calculator,node_simulator,node_calculations,node_growthchart toneAmber
class node_assistant,node_marketpage,node_marketresult toneMint
class node_api toneRose
class node_investor,node_gemini toneIndigo
```

## Components

### Learning Experience

- [Home](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/page.js): `final-project/frontend/app/page.js`
- [Navigation](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/components/Navbar.jsx): `final-project/frontend/app/components/Navbar.jsx`
- [Disclaimer Footer](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/components/Footer.jsx): `final-project/frontend/app/components/Footer.jsx`

### Financial Planning

- [Goal Calculator](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/calculator/page.js): `final-project/frontend/app/calculator/page.js`
- [Goal Simulator](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/simulator/page.js): `final-project/frontend/app/simulator/page.js`
- [Calculation Engine](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/lib/financialCalculations.js): `final-project/frontend/app/lib/financialCalculations.js`
- [Growth Charts](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/components/GrowthChart.jsx): `final-project/frontend/app/components/GrowthChart.jsx`

### AI Insights

- [AI Assistant](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/components/FloatingAssistant.jsx): `final-project/frontend/app/components/FloatingAssistant.jsx`
- [Market Analyzer](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/market-insights/page.js): `final-project/frontend/app/market-insights/page.js`
- [Analysis Results](https://github.com/arya-dumane/investiq/blob/main/final-project/frontend/app/components/MarketInsightsResult.jsx): `final-project/frontend/app/components/MarketInsightsResult.jsx`

### API Services

- [Express API](https://github.com/arya-dumane/investiq/blob/main/final-project/backend/server.js): `final-project/backend/server.js`

### Other components

- **Investor**
- **Google Gemini**

## Connections

- Investor → Home: opens
- Home → Goal Calculator: links to (evidence: `final-project/frontend/app/page.js`)
- Home → Goal Simulator: links to (evidence: `final-project/frontend/app/page.js`)
- Investor → Goal Calculator: uses
- Investor → Goal Simulator: uses
- Investor → Market Analyzer: submits news
- Goal Calculator → Calculation Engine: calculates with (evidence: `final-project/frontend/app/calculator/page.js`)
- Goal Simulator → Calculation Engine: calculates with (evidence: `final-project/frontend/app/simulator/page.js`)
- Goal Calculator → Growth Charts: renders (evidence: `final-project/frontend/app/calculator/page.js`)
- Goal Simulator → Growth Charts: renders (evidence: `final-project/frontend/app/simulator/page.js`)
- Growth Charts → Calculation Engine: formats with (evidence: `final-project/frontend/app/components/GrowthChart.jsx`)
- Market Analyzer → Analysis Results: renders (evidence: `final-project/frontend/app/market-insights/page.js`)
- AI Assistant → Express API: requests explanation (evidence: `final-project/frontend/app/components/FloatingAssistant.jsx`)
- Investor → AI Assistant: asks questions
- Market Analyzer → Express API: requests analysis
- Express API → Google Gemini: generates AI responses
- Home → Navigation: renders (evidence: `final-project/frontend/app/page.js`)
- Goal Calculator → Navigation: renders (evidence: `final-project/frontend/app/calculator/page.js`)
- Goal Simulator → Navigation: renders (evidence: `final-project/frontend/app/simulator/page.js`)
- Market Analyzer → Navigation: renders (evidence: `final-project/frontend/app/market-insights/page.js`)
- Goal Calculator → Disclaimer Footer: renders (evidence: `final-project/frontend/app/calculator/page.js`)
- Goal Simulator → Disclaimer Footer: renders (evidence: `final-project/frontend/app/simulator/page.js`)
- Market Analyzer → Disclaimer Footer: renders (evidence: `final-project/frontend/app/market-insights/page.js`)
