# swamyabhiram/future-vision architecture

> Architecture diagram of the GitHub repository swamyabhiram/future-vision, 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/swamyabhiram/future-vision
- Repository: https://github.com/swamyabhiram/future-vision

## Overview

Previsor is a stock-analysis product with both a browser/API experience and a Streamlit dashboard. The main workflow is symbol search, market-data retrieval, technical and sentiment analysis, then delivery of signals, risk, financial context and AI commentary for dashboard views. The sampled API handler supports the analysis-stage connections shown; several UI and financial features are visible in excerpts, but their exact backend wiring is not fully sampled.

Main entry points: [`future vision/server.py`](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/server.py) (REST API), [`future vision/static/js/app.js`](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/static/js/app.js) (Browser controller), [`future vision/app.py`](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/app.py) (Streamlit dashboard), [`future vision/data/market_data.py`](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/data/market_data.py) (Price and company data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_browser["Browser UI<br/>[index.html]"]
  node_browser_app["Browser controller<br/>[app.js]"]
  node_streamlit["Streamlit dashboard<br/>[app.py]"]
  node_api["REST API<br/>[server.py]"]
  node_charts["Market charts<br/>[plotly_charts.py]"]
  node_watchlist["Watchlist and comparisons<br/>[server.py]"]
  node_local_history[("Local activity history<br/>[app.js]")]
end

subgraph group_analysis["Market analysis"]
  node_indicators["Technical indicators"]
  node_structure["Support/resistance<br/>[monotonic_stack.py]"]
  node_scoring["Signal scoring<br/>[signal_engine.py]"]
  node_event_ranker["Signal prioritization<br/>[priority_queue.py]"]
end

subgraph group_data["Market data"]
  node_price_data["Price and company data<br/>[market_data.py]"]
  node_financials["Advanced financials<br/>[market_data.py]"]
end

subgraph group_intelligence["Research intelligence"]
  node_sentiment["News sentiment"]
  node_ai["AI analyst<br/>[llm_analyst.py]"]
end

node_investor(("Investor"))
node_market_services["Market data providers"]
node_news_services["News providers"]
node_llm_service["Gemini service"]

node_investor -->|"uses"| node_browser
node_browser -->|"loads"| node_browser_app
node_browser_app -->|"requests analysis"| node_api
node_api -->|"fetches market data"| node_price_data
node_price_data -.->|"queries providers"| node_market_services
node_api -->|"computes indicators"| node_indicators
node_api -->|"detects levels"| node_structure
node_api -->|"fetches sentiment"| node_sentiment
node_sentiment -.->|"retrieves headlines"| node_news_services
node_api -->|"scores signals"| node_scoring
node_api -->|"ranks events"| node_event_ranker
node_api -->|"requests report"| node_ai
node_ai -.->|"generates commentary"| node_llm_service
node_api -->|"fetches financials"| node_financials
node_api -->|"returns analysis"| node_browser_app
node_browser_app -->|"renders charts"| node_charts
node_browser_app -->|"requests watchlist"| node_watchlist
node_browser_app -->|"stores activity"| node_local_history
node_investor -->|"uses"| node_streamlit
node_streamlit -->|"retrieves market data"| node_price_data
node_streamlit -->|"computes indicators"| node_indicators
node_streamlit -->|"renders charts"| node_charts

click node_browser "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/static/index.html"
click node_browser_app "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/static/js/app.js"
click node_streamlit "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/app.py"
click node_api "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/server.py"
click node_price_data "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/data/market_data.py"
click node_indicators "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/indicators/technical_indicators.py"
click node_structure "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/algorithms/monotonic_stack.py"
click node_scoring "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/analysis/signal_engine.py"
click node_event_ranker "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/algorithms/priority_queue.py"
click node_sentiment "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/sentiment/sentiment_engine.py"
click node_ai "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/ai/llm_analyst.py"
click node_charts "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/charts/plotly_charts.py"
click node_watchlist "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/server.py"
click node_financials "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/data/market_data.py"
click node_local_history "https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/static/js/app.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_browser,node_browser_app,node_streamlit,node_api,node_charts,node_watchlist,node_local_history toneBlue
class node_indicators,node_structure,node_scoring,node_event_ranker toneAmber
class node_price_data,node_financials toneMint
class node_sentiment,node_ai toneRose
class node_investor,node_market_services,node_news_services,node_llm_service toneIndigo
```

## Components

### User experience

- [Browser UI](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/static/index.html): `future vision/static/index.html`
- [Browser controller](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/static/js/app.js): `future vision/static/js/app.js`
- [Streamlit dashboard](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/app.py): `future vision/app.py`
- [REST API](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/server.py): `future vision/server.py`
- [Market charts](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/charts/plotly_charts.py): `future vision/charts/plotly_charts.py`
- [Watchlist and comparisons](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/server.py): `future vision/server.py`
- [Local activity history](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/static/js/app.js): `future vision/static/js/app.js`

### Market analysis

- [Technical indicators](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/indicators/technical_indicators.py): `future vision/indicators/technical_indicators.py`
- [Support/resistance](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/algorithms/monotonic_stack.py): `future vision/algorithms/monotonic_stack.py`
- [Signal scoring](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/analysis/signal_engine.py): `future vision/analysis/signal_engine.py`
- [Signal prioritization](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/algorithms/priority_queue.py): `future vision/algorithms/priority_queue.py`

### Market data

- [Price and company data](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/data/market_data.py): `future vision/data/market_data.py`
- [Advanced financials](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/data/market_data.py): `future vision/data/market_data.py`

### Research intelligence

- [News sentiment](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/sentiment/sentiment_engine.py): `future vision/sentiment/sentiment_engine.py`
- [AI analyst](https://github.com/swamyabhiram/future-vision/blob/main/future%20vision/ai/llm_analyst.py): `future vision/ai/llm_analyst.py`

### Other components

- **Investor**
- **Market data providers**
- **News providers**
- **Gemini service**

## Connections

- Investor → Browser UI: uses
- Browser UI → Browser controller: loads
- Browser controller → REST API: requests analysis
- REST API → Price and company data: fetches market data
- Price and company data → Market data providers: queries providers
- REST API → Technical indicators: computes indicators
- REST API → Support/resistance: detects levels
- REST API → News sentiment: fetches sentiment
- News sentiment → News providers: retrieves headlines
- REST API → Signal scoring: scores signals
- REST API → Signal prioritization: ranks events
- REST API → AI analyst: requests report
- AI analyst → Gemini service: generates commentary
- REST API → Advanced financials: fetches financials
- REST API → Browser controller: returns analysis
- Browser controller → Market charts: renders charts
- Browser controller → Watchlist and comparisons: requests watchlist
- Browser controller → Local activity history: stores activity
- Investor → Streamlit dashboard: uses
- Streamlit dashboard → Price and company data: retrieves market data
- Streamlit dashboard → Technical indicators: computes indicators
- Streamlit dashboard → Market charts: renders charts
