From 25b2ad7e157f67f81bd6a233a48c30a9d8c4457e Mon Sep 17 00:00:00 2001 From: shawnkim1997 Date: Thu, 16 Apr 2026 11:15:23 +0100 Subject: [PATCH] Refresh Morgan Terminal UI and README media --- atlas-terminal/README.md | 113 +++++-- atlas-terminal/apps/web/package.json | 1 + .../apps/web/src/app/components/app-shell.tsx | 6 +- .../web/src/app/components/chat-panel.tsx | 59 ++-- .../macro/GlobalMacroQuadrantChart.tsx | 37 +-- .../app/components/macro/SmartMoneyPanel.tsx | 33 +- .../components/macro/YieldFxDualAxisChart.tsx | 21 +- .../components/overview/EquityOverview.tsx | 49 ++- .../app/components/overview/KpiSection.tsx | 6 +- .../app/components/research/FScorePanel.tsx | 5 +- .../app/components/research/SankeyWidget.tsx | 11 +- .../components/research/WaterfallWidget.tsx | 88 ++++-- .../apps/web/src/app/components/sidebar.tsx | 99 +++--- .../web/src/app/components/ticker-bar.tsx | 15 +- .../apps/web/src/app/components/ui/Badge.tsx | 24 ++ .../apps/web/src/app/components/ui/Card.tsx | 34 ++ .../src/app/components/ui/ChartContainer.tsx | 27 ++ .../web/src/app/components/ui/DataTable.tsx | 73 +++++ .../web/src/app/components/ui/ErrorBanner.tsx | 48 +++ .../src/app/components/ui/LoadingPulse.tsx | 20 ++ .../src/app/components/ui/MetricChange.tsx | 20 ++ .../src/app/components/ui/SectionHeading.tsx | 27 ++ .../web/src/app/components/ui/StatCard.tsx | 32 ++ .../apps/web/src/app/components/ui/Tabs.tsx | 37 +++ .../apps/web/src/app/design-system.md | 31 ++ .../apps/web/src/app/filings/page.tsx | 6 +- atlas-terminal/apps/web/src/app/globals.css | 269 +++++++++------- atlas-terminal/apps/web/src/app/layout.tsx | 31 +- .../apps/web/src/app/lib/chart-theme.ts | 51 +++ .../apps/web/src/app/lib/use-api.ts | 187 +++++++++++ .../apps/web/src/app/macro/page.tsx | 180 ++++++++--- atlas-terminal/apps/web/src/app/page.tsx | 84 ++--- .../apps/web/src/app/portfolio/page.tsx | 30 +- .../report/components/financial-sections.tsx | 291 ++++++++++++++++++ .../src/app/report/components/sections.tsx | 192 ++++++++++++ .../apps/web/src/app/report/design-tokens.ts | 19 ++ .../apps/web/src/app/report/lib/formatters.ts | 77 +++++ .../web/src/app/report/lib/valuation-tier.ts | 126 ++++++++ .../apps/web/src/app/report/page.tsx | 153 ++++++--- .../apps/web/src/app/report/types.ts | 139 +++++++++ .../apps/web/src/app/research/page.tsx | 90 +++--- .../apps/web/src/app/screener/page.tsx | 17 +- .../apps/web/src/app/settings/page.tsx | 41 +-- .../apps/web/src/app/technical/page.tsx | 124 ++++---- .../apps/web/src/app/valuation/page.tsx | 109 ++++--- atlas-terminal/apps/web/tailwind.config.ts | 53 +++- atlas-terminal/docs/media/atlas-demo.mp4 | Bin 0 -> 104483 bytes atlas-terminal/docs/media/atlas-overview.png | Bin 0 -> 69682 bytes .../docs/media/atlas-report-preview.pdf | Bin 0 -> 132518 bytes atlas-terminal/docs/media/atlas-report.png | Bin 0 -> 95797 bytes atlas-terminal/docs/media/atlas-technical.png | Bin 0 -> 65438 bytes atlas-terminal/docs/media/atlas-valuation.png | Bin 0 -> 73722 bytes atlas-terminal/server/routers/analysis.py | 86 ++++-- atlas-terminal/server/routers/crypto.py | 67 ++-- atlas-terminal/server/routers/edinet.py | 11 +- atlas-terminal/server/routers/estimates.py | 6 + atlas-terminal/server/routers/financials.py | 7 + atlas-terminal/server/routers/macro.py | 106 ++++--- atlas-terminal/server/routers/market_data.py | 26 +- atlas-terminal/server/routers/news.py | 17 +- atlas-terminal/server/routers/portfolio.py | 3 + atlas-terminal/server/routers/research.py | 5 +- atlas-terminal/server/routers/screener.py | 5 + atlas-terminal/server/routers/valuation.py | 10 + .../server/services/etf_analysis.py | 39 ++- atlas-terminal/server/services/macro_cycle.py | 4 +- .../server/services/macro_fetcher.py | 4 +- .../server/services/research_dashboard.py | 176 +++++++++-- 68 files changed, 2941 insertions(+), 816 deletions(-) create mode 100644 atlas-terminal/apps/web/src/app/components/ui/Badge.tsx create mode 100644 atlas-terminal/apps/web/src/app/components/ui/Card.tsx create mode 100644 atlas-terminal/apps/web/src/app/components/ui/ChartContainer.tsx create mode 100644 atlas-terminal/apps/web/src/app/components/ui/DataTable.tsx create mode 100644 atlas-terminal/apps/web/src/app/components/ui/ErrorBanner.tsx create mode 100644 atlas-terminal/apps/web/src/app/components/ui/LoadingPulse.tsx create mode 100644 atlas-terminal/apps/web/src/app/components/ui/MetricChange.tsx create mode 100644 atlas-terminal/apps/web/src/app/components/ui/SectionHeading.tsx create mode 100644 atlas-terminal/apps/web/src/app/components/ui/StatCard.tsx create mode 100644 atlas-terminal/apps/web/src/app/components/ui/Tabs.tsx create mode 100644 atlas-terminal/apps/web/src/app/design-system.md create mode 100644 atlas-terminal/apps/web/src/app/lib/chart-theme.ts create mode 100644 atlas-terminal/apps/web/src/app/lib/use-api.ts create mode 100644 atlas-terminal/apps/web/src/app/report/components/financial-sections.tsx create mode 100644 atlas-terminal/apps/web/src/app/report/components/sections.tsx create mode 100644 atlas-terminal/apps/web/src/app/report/design-tokens.ts create mode 100644 atlas-terminal/apps/web/src/app/report/lib/formatters.ts create mode 100644 atlas-terminal/apps/web/src/app/report/lib/valuation-tier.ts create mode 100644 atlas-terminal/apps/web/src/app/report/types.ts create mode 100644 atlas-terminal/docs/media/atlas-demo.mp4 create mode 100644 atlas-terminal/docs/media/atlas-overview.png create mode 100644 atlas-terminal/docs/media/atlas-report-preview.pdf create mode 100644 atlas-terminal/docs/media/atlas-report.png create mode 100644 atlas-terminal/docs/media/atlas-technical.png create mode 100644 atlas-terminal/docs/media/atlas-valuation.png diff --git a/atlas-terminal/README.md b/atlas-terminal/README.md index e5bb7ae..890f958 100644 --- a/atlas-terminal/README.md +++ b/atlas-terminal/README.md @@ -1,41 +1,102 @@ -# ATLAS Terminal β€” Web Application +# ATLAS Terminal -> Next.js 14 + FastAPI full-stack financial analysis terminal. -> -> See the [main README](../README.md) for full documentation. +Institutional-style equity research terminal built with Next.js 14 and FastAPI. + +ATLAS Terminal brings market overview, quant research, valuation, technical analysis, macro monitoring, filings workflows, and printable institutional reports into one desktop-first interface. + +## What It Does + +- Multi-asset overview for equities, ETFs, commodities, crypto, FX, and macro signals +- Quant research dashboards with F-Score, DuPont, anomalies, Sankey, and waterfall views +- Valuation tooling including DCF, sensitivity, Monte Carlo, tornado, and reverse DCF +- Technical analysis with candlesticks, moving averages, Bollinger Bands, RSI, MACD, and Fibonacci levels +- Cross-market monitoring through macro, smart-money, yield/FX, earnings, news, filings, and portfolio pages +- Institutional report generation with printable PDF-style layouts + +## Core Product Principle + +> LLMs handle text. Python handles numbers. + +Qualitative analysis, summarization, and narrative framing can be AI-assisted, while valuation logic, financial metrics, and quantitative workflows are computed deterministically in code. + +## Product Tour + +### Overview + +![ATLAS overview](./docs/media/atlas-overview.png) + +### Valuation + +![ATLAS valuation](./docs/media/atlas-valuation.png) + +### Technical Analysis + +![ATLAS technical analysis](./docs/media/atlas-technical.png) + +### Institutional Report + +![ATLAS institutional report](./docs/media/atlas-report.png) + +## Demo Assets + +- [Open recorded demo video](./docs/media/atlas-demo.mp4) +- [Open report preview PDF](./docs/media/atlas-report-preview.pdf) + +You can also click the screenshot below to open the recorded walkthrough: + +[![Watch the ATLAS demo](./docs/media/atlas-overview.png)](./docs/media/atlas-demo.mp4) + +## Stack + +- Frontend: Next.js 14, React 18, TypeScript, Tailwind CSS, Recharts, Lightweight Charts +- Backend: FastAPI, Python 3.12+, Pydantic, yfinance, pandas, scipy +- Data: SEC, DART, EDINET, FRED, OECD, DBnomics, Yahoo Finance +- AI: Gemini for qualitative analysis only +- Storage: SQLite by default + +## Key Pages + +- `/` overview dashboard +- `/research` quant research workbench +- `/valuation` DCF and scenario analysis +- `/technical` chart-driven technical analysis +- `/macro` macro and smart-money dashboard +- `/filings` SEC, DART, and EDINET workflows +- `/report` institutional report generator +- `/portfolio` portfolio tracking and OCR import ## Quick Start -```bash -# Backend (from atlas-terminal/) -pip install -r requirements.txt -PYTHONPATH="." uvicorn server.main:app --port 8000 +### Backend -# Frontend (from atlas-terminal/apps/web/) +```bash +pip install -r requirements.txt +PYTHONPATH="." uvicorn server.main:app --host 127.0.0.1 --port 8000 +``` + +### Frontend + +```bash +cd apps/web npm install npm run dev ``` -- **Frontend:** http://localhost:3000 -- **Backend:** http://localhost:8000 -- **API Docs:** http://localhost:8000/docs +### Local URLs -## Stack +- Frontend: [http://localhost:3000](http://localhost:3000) +- Backend: [http://127.0.0.1:8000](http://127.0.0.1:8000) +- API docs: [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) -- **Frontend:** Next.js 14, TypeScript, Tailwind CSS, TradingView Lightweight Charts -- **Backend:** FastAPI, Python 3.12+, yfinance, yahooquery, Google Gemini -- **Database:** SQLite (local) / PostgreSQL (production) +## Recent Work -## Recent Updates +- Morgan Stanley-inspired redesign across the shell, overview, research, valuation, technical, macro, settings, and report flows +- Shared chart palette and UI primitives for a more consistent desktop terminal experience +- Research dashboard performance fixes for faster repeat loads and less blocking on page open +- Improved macro failure states, report messaging, tooltip formatting, and chart legibility -**2026-03-24** +## Why This Project -- **Macro:** Global Macro & Smart Money dashboard (`/macro`), Recharts widgets, FastAPI `/api/macro/quadrant`, `/yield-fx`, `/smart-money` (FRED + yfinance + OECD/DBnomics). -- **Stability:** Sidebar `dynamic(..., ssr: false)`; `useTicker` hydration-safe init; `app/error.tsx`; macro/research layouts use Tailwind grid (removed `react-grid-layout`). -- **News / Filings:** Iframe fallback for blocked publishers (e.g. Yahoo); SEC filings show plain text when HTML snapshot cache is absent. +ATLAS Terminal started as an attempt to build a personal Bloomberg-lite for retail investing workflows: high information density, clean narrative structure, and a hard separation between AI-generated language and deterministic financial computation. -**Earlier** - -- Multi-asset analysis branching across Overview/Research/Valuation/Earnings for equity, ETF, and commodity futures. -- Commodity and ETF market widgets; index-level stock heatmap with interactive index switching. -- Portfolio OCR upgrades, exchange selection (e.g. SMSN β†’ `SMSN.L`), inline edit/delete; exchange-aware recalculation and FX matrix for multi-currency display. +It is currently optimized as a desktop-first personal research environment rather than a SaaS product. diff --git a/atlas-terminal/apps/web/package.json b/atlas-terminal/apps/web/package.json index 8f1f176..1d7e09b 100644 --- a/atlas-terminal/apps/web/package.json +++ b/atlas-terminal/apps/web/package.json @@ -17,6 +17,7 @@ "@nivo/core": "^0.99.0", "@nivo/sankey": "^0.99.0", "lightweight-charts": "^5.1.0", + "lucide-react": "^1.8.0", "next": "14.2.35", "react": "^18", "react-dom": "^18", diff --git a/atlas-terminal/apps/web/src/app/components/app-shell.tsx b/atlas-terminal/apps/web/src/app/components/app-shell.tsx index dbe5385..4ecd1e0 100644 --- a/atlas-terminal/apps/web/src/app/components/app-shell.tsx +++ b/atlas-terminal/apps/web/src/app/components/app-shell.tsx @@ -16,7 +16,7 @@ const SidebarClient = dynamic( ssr: false, loading: () => (