https://github.com/shefreenkaur/comp_430_project
A comprehensive, open-source business intelligence visualization tool designed for algorithmic trading systems. This application transforms complex trading data into intuitive visualizations, enabling traders and analysts to make data-driven decisions.
https://github.com/shefreenkaur/comp_430_project
algorithmic-trading api-development business-intelligence data-analytics data-visualization etl-pipeline fastapi finance financial-analysis interactive-dashboard plotly streamlit
Last synced: about 1 month ago
JSON representation
A comprehensive, open-source business intelligence visualization tool designed for algorithmic trading systems. This application transforms complex trading data into intuitive visualizations, enabling traders and analysts to make data-driven decisions.
- Host: GitHub
- URL: https://github.com/shefreenkaur/comp_430_project
- Owner: shefreenkaur
- Created: 2025-03-12T00:56:49.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-04-08T01:46:08.000Z (7 months ago)
- Last Synced: 2025-06-02T22:59:49.587Z (5 months ago)
- Topics: algorithmic-trading, api-development, business-intelligence, data-analytics, data-visualization, etl-pipeline, fastapi, finance, financial-analysis, interactive-dashboard, plotly, streamlit
- Language: Python
- Homepage:
- Size: 37.1 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Business Intelligence Visualization Tool for Algorithmic Trading
A comprehensive, open-source business intelligence visualization tool designed for algorithmic trading systems. This application transforms complex trading data into intuitive visualizations, enabling traders and analysts to make data-driven decisions.
## Features
- **Multi-Asset Class Analysis**: Support for equities, cryptocurrencies, and forex
- **Interactive Dashboards**: Dynamic charts and filters for data exploration
- **Strategy Performance Tracking**: Monitor and compare trading strategies
- **Multi-Dimensional Analysis**: Filter by symbol, strategy, time period, and asset class
- **Real Market Data Integration**: Uses real-world data from Yahoo Finance
- **Star Schema Data Model**: Optimized for analytical processing

## Technology Stack
- **Backend**: FastAPI + Uvicorn
- **Frontend**: Streamlit + Plotly
- **Database**: SQLite with SQLAlchemy ORM
- **Data Processing**: Pandas + yfinance
- **Version Control**: Git
## Getting Started
### Prerequisites
- Python 3.8+
- pip
- virtualenv (recommended)
### Installation
1. Clone the repository
```bash
git clone https://github.com/your-username/trading-bi-tool.git
cd trading-bi-tool
```
2. Create and activate a virtual environment
```bash
python -m venv ProjectVenv
# On Windows
ProjectVenv\Scripts\activate
# On macOS/Linux
source ProjectVenv/bin/activate
```
3. Install dependencies
```bash
pip install -r requirements.txt
```
### Running the Application
1. Start the FastAPI backend server
```bash
python bi_tool_test.py
```
2. In a new terminal, start the Streamlit frontend
```bash
streamlit run bi_tool_streamlit.py
```
3. Load sample data (if needed)
```bash
python load_market_data.py
```
4. Access the dashboard at http://localhost:8501
## Project Structure
```
Project/
├── Backend/
│ ├── __init__.py
│ ├── database.py # Database models and connection
│ ├── etl.py # ETL processes
│ ├── main.py # API entry point
│ ├── models.py # Data models
│ ├── routes.py # API routes
│ └── services.py # Business logic
│
├── Frontend/
│ ├── __init__.py
│ ├── app.py # Streamlit application
│ ├── charts.py # Chart definitions
│ └── data_loader.py # API integration
│
├── ProjectVenv/ # Virtual environment
├── bi_tool_streamlit.py # Streamlit dashboard
├── bi_tool_test.py # FastAPI server
├── database.py # Main database models
├── load_market_data.py # Data loading script
├── data.db # SQLite database
└── README.md # Project documentation
```
## Core Components
### 1. Data Model
The system implements a star schema with:
- **Fact Table**: trade_facts
- **Dimension Tables**: symbol_dim, trader_dim, strategy_dim
This design enables efficient querying and analysis across multiple dimensions.
### 2. API Endpoints
- `/symbols` - List all trading symbols
- `/strategies` - List all trading strategies
- `/traders` - List all traders
- `/trades` - Get trade data with optional filtering
- `/performance/{strategy_id}` - Get performance data for a strategy
### 3. Dashboard Visualizations
- Trading value by symbol
- Trading distribution by strategy
- Performance over time
- Recent trades table
- Key performance metrics



## Contributors
- **Diego Mckay** - Initial project setup, database foundation, API framework, basic dashboard
- **Shefreen Kaur** - Advanced data modeling, data pipeline, enhanced API layer, advanced visualizations, system integration
## Academic Context
This project was developed as part of the COMP 430 course. It demonstrates the application of business intelligence principles, data visualization techniques, and full-stack development in the context of algorithmic trading systems.
## Future Enhancements
- Real-time data streaming via WebSockets
- User authentication and multitenancy
- Strategy backtesting capabilities
- Machine learning integration for predictive analytics
- Export capabilities for reports and analysis