| # Frontend Client Workspace |
|
|
| The frontend is a single-page React client built with TypeScript, Vite, Tailwind CSS, and lightweight UI components. It renders the trading workspace, manages websocket subscriptions, and displays real-time price trends. |
|
|
| --- |
|
|
| ## Technical Components & Integration Details |
|
|
| ### 1. TradingView Lightweight Charts (`StockChart.tsx`) |
| The centerpiece of the UI is the stock chart widget, which utilizes the `lightweight-charts` library: |
| - **WebSocket Real-Time Streaming:** The chart opens a connection to the backend WebSocket server (`ws://localhost:8000/api/v1/ws/ticks`). As ticks arrive from the Redpanda broker, they are pushed directly to the candlestick series update channel. |
| - **Tick Accumulation:** If a tick arrives for the current minute, its price updates the close of the current candle. If a new minute arrives, a new candle is created. |
| - **Historical Data Backfill:** When switching tickers, the chart calls the API to download the last 100 historical candles from NeonDB to prevent gaps in chart history. |
|
|
| ### 2. Component Directory Map |
|
|
| - **`App.tsx`**: Core routing, layout shell, and global authentication states. |
| - **`components/StockChart.tsx`**: Embeds the main candlestick chart, indicators toggle, and price-scaling canvas handlers. |
| - **`components/AIAnalyst.tsx`**: Interactive side-panel allowing users to query the Gemini ReAct agent loop. It displays reasoning steps, tool calls, and model outputs in real time. |
| - **`components/TrendingHub.tsx`**: A social trading feed displaying strategies and prediction records generated by the background ML models. |
| - **`components/WatchlistSidebar.tsx`**: Sidebar allowing users to add, remove, and manage monitored tickers. Saves state directly to NeonDB. |
| - **`components/PriceAlerts.tsx`**: Threshold settings page where users configure price levels for alerts. |
| - **`components/RechargeModal.tsx`**: A payment interface managing balance credits and subscription upgrades. |
|
|
| --- |
|
|
| ## Production Build & Deploy Verification |
|
|
| ### Strict TypeScript Constraints |
| The project runs clean type verification during compilation: |
| ```bash |
| npm run build |
| ``` |
| Under the hood, this executes `tsc -b` and `vite build`. To prevent production crashes: |
| - Any declared variables, parameters, or import statements that are unused will throw compiler error `TS6133` and fail the build. |
| - Always check that your dependencies are imported correctly and clean up unused code before deploying. |
|
|
| ### Deployment Configuration |
| The client is optimized for Vercel deployment: |
| - **`vercel.json`**: Sets up URL routing rules to redirect all page requests to `index.html` to support React client-side routing. |
| - **Vite Proxy Config**: Proxy rules are configured to redirect `/api/v1` routes to the backend port during local development. |
|
|