← Back to Projects
Web App

Financial Insight

An AI-powered financial tracking platform that fetches real-time asset prices, aggregates news, and generates LLM insights via a Streamlit dashboard.

PythonStreamlitSQLiteLLMDockerPlotly

Overview

Financial Insight tracks gold futures and stock/ETF prices in real time, aggregates financial news from multiple RSS sources, and feeds the combined data to an LLM (OpenAI, Anthropic, or offline Ollama) to generate structured investment insights. An interactive Streamlit dashboard displays candlestick charts, a live news feed, and the AI insight panel. Built on top of a custom MCP tool architecture, it’s designed as the foundation for a future AI trading platform.

Key Features

  • Real-time gold futures and stock/ETF prices via yfinance (no API key required)
  • Multi-source financial news aggregation with optional Finnhub and NewsAPI enrichment
  • Dual-mode LLM insights: online (OpenAI / Anthropic) or offline (Ollama) with auto-fallback
  • APScheduler background refresh with market-hours awareness and price-change detection
  • Async SQLite persistence (aiosqlite, WAL mode) with pub/sub event bus for reactivity
  • Abstract TradingStrategy / PortfolioManager interfaces ready for signal implementation

Technical Decisions

The MCP tool architecture was chosen to keep each capability (price fetch, news fetch, LLM call, data aggregation) as a self-contained BaseTool subclass — easy to test in isolation and extend without touching the core. Streamlit was preferred over a custom frontend to stay focused on data and analysis logic rather than UI plumbing. An event bus (price_updated, news_updated, insight_generated) decouples the scheduler from the dashboard so both can evolve independently. Ollama offline fallback ensures the platform remains functional without API keys or internet access.