- Sparkline for summary cards
- AreaChart for asset trends
- DonutChart for sector allocation
- BarChart for portfolio comparison
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Portfolio pages updated with DashboardLayout and shadcn/ui Card components
- Strategy pages updated (multi-factor, quality, value-momentum)
- Backtest pages updated with consistent styling
- Admin data management page updated
- Login page improved with shadcn/ui Card, Input, Button, Label
- All pages now support dark mode via CSS variables
- Removed old Sidebar/Header imports, using unified DashboardLayout
- Added shadcn/ui input and label components
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Collapsible Sidebar with navigation
- Header with page titles and logout
- DashboardLayout with responsive design
- Updated dashboard page
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create ThemeProvider component
- Apply ThemeProvider to root layout
- Enable system theme detection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add tailwind.config.ts with shadcn/ui theme colors
- Update globals.css with CSS variables for dark/light mode
- Add utils.ts with cn() helper function
- Add components.json for shadcn/ui CLI
- Update postcss.config.mjs with autoprefixer
- Exclude playwright config from tsconfig to fix build
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Comprehensive redesign plan including:
- shadcn/ui + Lucide Icons + Recharts + TradingView charts
- Dark/light theme with system preference support
- Collapsible sidebar with responsive breakpoints
- Dashboard with charts and sparklines
- Portfolio pages with TradingView integration
- Strategy and backtest page improvements
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove unused login helper in portfolio.spec.ts
- Add eslint-disable for useEffect in history page
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- APScheduler for daily snapshots (18:30 weekdays)
- ReturnsCalculator with CAGR, TWR, MDD, volatility
- Portfolio history page with snapshots and returns tabs
- FastAPI lifespan integration for scheduler
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Backtest list/create page with strategy-specific params
- Backtest result page with metrics, holdings, transactions
- Polling for async backtest status
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- POST /api/backtest (create and start)
- GET /api/backtest (list)
- GET /api/backtest/{id} (detail)
- GET /api/backtest/{id}/equity-curve
- GET /api/backtest/{id}/holdings
- GET /api/backtest/{id}/transactions
- DELETE /api/backtest/{id}
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- VirtualPortfolio for portfolio simulation
- BacktestEngine for strategy backtesting
- Worker for async background execution
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- GET /api/market/stocks/{ticker}
- GET /api/market/stocks/{ticker}/prices
- GET /api/market/search
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- POST /api/strategy/multi-factor
- POST /api/strategy/quality
- POST /api/strategy/value-momentum
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- BaseStrategy abstract class
- MultiFactorStrategy with weighted factors
- QualityStrategy with F-Score filtering
- ValueMomentumStrategy combining value and momentum
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add user-facing error state with red alert box for failed operations
- Improve error handling in fetchJobs and runCollector functions
- Add aria-labels to collector buttons for better accessibility
- Add scope="col" to table headers for proper semantic HTML
- Add refresh loading state with disabled button styling
- Create handleRefresh function for proper state management during refresh
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add frontend page for admin data collection management at /admin/data.
The page displays available collectors (stocks, sectors, prices, valuations)
with buttons to trigger collection jobs, and shows recent job history
with status, timing, record counts, and error information.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add Query parameter validation with regex patterns for date fields (YYYYMMDD format) and numeric constraints for limit parameter. Update JobLogResponse to use datetime types instead of strings for proper date serialization.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>