Skip to content

Latest commit

 

History

History
98 lines (65 loc) · 3.06 KB

README.md

File metadata and controls

98 lines (65 loc) · 3.06 KB

Portfolio Analytics Platform

CI/CD Python Version Code style: black Pylint Score Code Coverage

🌐 Live Demo: dashboard.portfolio-analytics.click

Overview

A comprehensive portfolio management solution consisting of two main components:

Interactive Dashboard

Dashboard Interface

  • Real-time portfolio performance visualization
  • Key metrics tracking (Sharpe ratio, drawdown, PnL)
  • Currency conversion support
  • Customizable time period analysis

REST API

API Documentation

  • Portfolio management operations (create, list, delete)
  • Market data integration for FX and Equity
  • System health monitoring
  • OpenAPI 3.1 compliant

Expected input

The dashboard analyzes portfolio positions across multiple stock exchanges, accepting input data (csv, xlsx, parquet) in the following format:

Date AAPL ABBV ... SHEL.L DHL.DE BNP.PA
2018-01-01 52 79 ... 104 165 90
2018-01-02 122 95 ... 100 6 93
2018-01-03 86 199 ... 152 90 159
... ... ... ... ... ... ...
2024-12-19 133 105 ... 39 187 78

Getting Started

Quick Start with Docker

Run application locally for development/CI

docker-compose up -d --build

Run the app in production

GIT_TAG=v0.1.28 ./run.sh

Local Development

  1. Install dependencies:
python3.12 -m pip install poetry -U
poetry install --sync --no-interaction
  1. Start services:
python portfolio_analytics/dashboard/dashboard_main.py
python portfolio_analytics/api/api_main.py

CI

CI

Future Improvements

Data Pipeline

  • Add historical index constituents tracking via a point-in-time security master database

API Enhancements

  • Implement asynchronous pipeline execution with DynamoDB tracking
  • Add paginated portfolio listing endpoints

Storage Optimization

  • Migrate to S3 for blob storage
  • Implement S3 pre-signed URLs for portfolio file operations

Infrastructure

  • Deploy containers to ECS or Kubernetes for improved scalability
  • Implement automated pipeline scheduling system (Airflow). Currently relying on triggering the APIs manually.