Skip to content

Interactive Web API for PorQua

Vissarion Fisikopoulos edited this page Feb 17, 2025 · 2 revisions

Description

PorQua is a library for portfolio optimization and index replication, but its current usage requires writing Python scripts or Jupyter notebooks. To make it more accessible, this project aims to develop a RESTful Web API that exposes PorQua’s functionalities via FastAPI or Flask, allowing users to interact with it programmatically or through a web-based interface.

Additionally, an interactive Jupyter Notebook UI using ipywidgets can be developed to provide a user-friendly way to configure and execute portfolio optimization tasks.

Objectives

  1. Develop a REST API for PorQua

    • Implement FastAPI or Flask to expose PorQua’s optimization functionalities.
    • Create endpoints for:
      • Uploading financial data (CSV or JSON).
      • Running portfolio optimization routines.
      • Retrieving optimized portfolio allocations and risk metrics.
  2. Create an Interactive Web UI

    • Develop a Jupyter Notebook interface using ipywidgets for interactive user input.
    • Provide real-time visualization of optimization results using Plotly or Matplotlib.
  3. Enable Deployment and Scalability (optional)

    • Use Docker to containerize the API for easy deployment.
    • Explore cloud hosting options (e.g., AWS, Heroku, or DigitalOcean).
  4. Documentation and User Guide

    • Provide clear API documentation using e.g. Swagger.
    • Write tutorials for using the API with Jupyter Notebooks.

Expected Outcomes

  • A fully functional REST API to interact with PorQua’s optimization features.
  • An interactive Jupyter Notebook UI for configuring and running portfolio optimization.
  • Deployment-ready API with Docker for easy usage. (optional)
  • Comprehensive documentation and tutorials for both API and UI usage.

Difficulty: Medium

Size

Medium (175 hours)

Skills Required

  • Python (FastAPI/Flask, Jupyter, ipywidgets)
  • REST API design and deployment (optional, Docker, cloud services)
  • Frontend basics (optional, for UI enhancements)
  • Data visualization (Plotly, Matplotlib)

Mentorship and Guidance

  • Bachelard Cyril <cyril.bachelard at quantarea.ch> He serves as the Head of Quant Engineering and is a founding partner at Quantarea, a quantitative Asset Manager in Switzerland. He has 12+ years of experience in quantitative portfolio management and systematic equity research. His areas of expertise include high-dimensional portfolio optimization, machine learning, and signal processing for dynamic asset allocation. Mentoring experience with GeomScale since 2024.

  • Apostolos Chalkis <tolis.chal at gmail.com> is a Research Engineer at Quantagonia GmbH. He is an expert in statistical software, computational geometry, and optimization, and has previous GSoC student experience (2018 & 2019) and mentoring experience with GeomScale (from 2020 to 2024).

References

This project will significantly improve the usability of PorQua, making portfolio optimization accessible through a web API and interactive UI. 🚀