diff --git a/README.md b/README.md index 1d48e1d8..a6cdb449 100644 --- a/README.md +++ b/README.md @@ -94,8 +94,11 @@ python -m quant_research_starter.cli compute-factors -d data_sample/sample_price # run a backtest python -m quant_research_starter.cli backtest -d data_sample/sample_prices.csv -s output/factors.csv -o output/backtest_results.json -# optional: start the Streamlit dashboard +# DISCLAIMER: OLD VERSION +# optional: start the Streamlit dashboard, if on main stream streamlit run src/quant_research_starter/dashboard/streamlit_app.py +# NEW VERSION: if streamlit is in legacy folder +streamlit run legacy/streamlit/streamlit_app.py ``` --- diff --git a/src/quant_research_starter/frontend/cauweb/package.json b/src/quant_research_starter/frontend/cauweb/package.json new file mode 100644 index 00000000..9f5cbe5a --- /dev/null +++ b/src/quant_research_starter/frontend/cauweb/package.json @@ -0,0 +1,32 @@ +{ + "name": "@qrs/cauweb", + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "lint": "eslint src --ext .ts,.tsx" + }, + "dependencies": { + "@tailwindcss/vite": "^4.1.17", + "chart.js": "^4.5.1", + "lucide-react": "^0.263.1", + "react": "^18.2.0", + "react-chartjs-2": "^5.3.1", + "react-dom": "^18.2.0", + "react-router-dom": "^6.8.0" + }, + "devDependencies": { + "@tailwindcss/cli": "^4.1.17", + "@tailwindcss/postcss": "^4.1.17", + "@types/react": "^18.3.26", + "@types/react-dom": "^18.3.7", + "@vitejs/plugin-react": "^4.1.0", + "autoprefixer": "^10.4.21", + "postcss": "^8.5.6", + "tailwindcss": "^4.1.17", + "typescript": "^5.9.3", + "vite": "^5.0.0" + } +} diff --git a/src/quant_research_starter/frontend/cauweb/src/pages/Dashboard.tsx b/src/quant_research_starter/frontend/cauweb/src/pages/Dashboard.tsx new file mode 100644 index 00000000..91757a3e --- /dev/null +++ b/src/quant_research_starter/frontend/cauweb/src/pages/Dashboard.tsx @@ -0,0 +1,95 @@ +import React from 'react'; +import { TrendingUp, TrendingDown, DollarSign, Target } from 'lucide-react'; + +export const Dashboard: React.FC = () => { + const metrics = [ + { title: 'Total Return', value: '+23.45%', change: '+2.1%', icon: TrendingUp, trend: 'up' }, + { title: 'Sharpe Ratio', value: '1.234', change: '+0.12', icon: TrendingUp, trend: 'up' }, + { title: 'Max Drawdown', value: '-12.34%', change: '-1.2%', icon: TrendingDown, trend: 'down' }, + { title: 'Win Rate', value: '64.50%', change: '+3.2%', icon: Target, trend: 'up' } + ]; + + return ( +
Welcome to your quantitative research workspace
+