{"id":23703359,"url":"https://github.com/gbourniq/portfolio-analytics-platform","last_synced_at":"2026-02-18T18:02:03.897Z","repository":{"id":269026950,"uuid":"904472422","full_name":"gbourniq/portfolio-analytics-platform","owner":"gbourniq","description":"Financial platform combining an interactive dashboard and REST API for investment portfolio analysis, providing real-time performance tracking across multiple stock exchanges.","archived":false,"fork":false,"pushed_at":"2024-12-30T04:13:10.000Z","size":13060,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-30T13:01:58.880Z","etag":null,"topics":["dash","equity","fastapi","fx","investment","pnl","portfolio","sp500-data-analysis","yahoo-finance"],"latest_commit_sha":null,"homepage":"https://dashboard.portfolio-analytics.click","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gbourniq.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-17T00:43:12.000Z","updated_at":"2024-12-22T00:15:00.000Z","dependencies_parsed_at":"2024-12-20T12:26:07.320Z","dependency_job_id":"9fe09362-7c05-4651-bd56-9cf99751444c","html_url":"https://github.com/gbourniq/portfolio-analytics-platform","commit_stats":null,"previous_names":["gbourniq/portfolio-analytics-platform"],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbourniq%2Fportfolio-analytics-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbourniq%2Fportfolio-analytics-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbourniq%2Fportfolio-analytics-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbourniq%2Fportfolio-analytics-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gbourniq","download_url":"https://codeload.github.com/gbourniq/portfolio-analytics-platform/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239780144,"owners_count":19695735,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dash","equity","fastapi","fx","investment","pnl","portfolio","sp500-data-analysis","yahoo-finance"],"created_at":"2024-12-30T13:01:29.614Z","updated_at":"2026-01-31T04:30:16.664Z","avatar_url":"https://github.com/gbourniq.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Portfolio Analytics Platform\n\n[![CI/CD](https://github.com/gbourniq/portfolio-analytics/actions/workflows/ci.yml/badge.svg)](https://github.com/gbourniq/portfolio-analytics/actions/workflows/ci.yml)\n[![Python Version](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Pylint Score](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/gbourniq/b149841cbef1088a8bf7671efee16734/raw/pylint.txt)](https://github.com/gbourniq/portfolio-analytics/actions)\n[![Code Coverage](https://codecov.io/gh/gbourniq/portfolio-analytics/graph/badge.svg?token=O5LIL4YV9L)](https://codecov.io/gh/gbourniq/portfolio-analytics)\n\n🌐 **Live Demo**: [dashboard.portfolio-analytics.click](https://dashboard.portfolio-analytics.click)\n\n## Overview\n\nA comprehensive portfolio management solution consisting of two main components:\n\n### Interactive Dashboard\n\n![Dashboard Interface](.github/images/dashboard.png)\n\n- Real-time portfolio performance visualization\n- Key metrics tracking (Sharpe ratio, drawdown, PnL)\n- Currency conversion support\n- Customizable time period analysis\n\n### REST API\n\n![API Documentation](.github/images/api.png)\n\n- Portfolio management operations (create, list, delete)\n- Market data integration for FX and Equity\n- System health monitoring\n- OpenAPI 3.1 compliant\n\n### Expected input\n\nThe dashboard analyzes portfolio positions across multiple stock exchanges, accepting input data (csv, xlsx, parquet) in the following format:\n\n| Date       | AAPL | ABBV | ... | SHEL.L | DHL.DE | BNP.PA |\n| ---------- | ---- | ---- | --- | ------ | ------ | ------ |\n| 2018-01-01 | 52   | 79   | ... | 104    | 165    | 90     |\n| 2018-01-02 | 122  | 95   | ... | 100    | 6      | 93     |\n| 2018-01-03 | 86   | 199  | ... | 152    | 90     | 159    |\n| ...        | ...  | ...  | ... | ...    | ...    | ...    |\n| 2024-12-19 | 133  | 105  | ... | 39     | 187    | 78     |\n\n## Getting Started\n\n### Quick Start with Docker\n\nRun application locally for development/CI\n```bash\ndocker-compose up -d --build\n```\n\nRun the app in production\n```bash\nGIT_TAG=v0.1.28 ./run.sh\n```\n\n### Local Development\n\n1. Install dependencies:\n\n```bash\npython3.12 -m pip install poetry -U\npoetry install --sync --no-interaction\n```\n\n2. Start services:\n\n```bash\npython portfolio_analytics/dashboard/dashboard_main.py\npython portfolio_analytics/api/api_main.py\n```\n\n### CI\n\n![CI](.github/images/ci.png)\n\n## Future Improvements\n\n### Data Pipeline\n\n- Add historical index constituents tracking via a point-in-time security master database\n\n### API Enhancements\n\n- Implement asynchronous pipeline execution with DynamoDB tracking\n- Add paginated portfolio listing endpoints\n\n### Storage Optimization\n\n- Migrate to S3 for blob storage\n- Implement S3 pre-signed URLs for portfolio file operations\n\n### Infrastructure\n\n- Deploy containers to ECS or Kubernetes for improved scalability\n- Implement automated pipeline scheduling system (Airflow). Currently relying on triggering the APIs manually.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbourniq%2Fportfolio-analytics-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgbourniq%2Fportfolio-analytics-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbourniq%2Fportfolio-analytics-platform/lists"}