# ETF Portal A comprehensive tool for ETF portfolio management and analysis. ## Installation 1. Clone the repository: ```bash git clone cd ETF_Portal ``` 2. Create and activate a virtual environment: ```bash python3 -m venv venv source venv/bin/activate # On Linux/Mac # or .\venv\Scripts\activate # On Windows ``` 3. Install the package in development mode: ```bash pip install -e . ``` ## Usage The ETF Portal provides a command-line interface for managing the application: ```bash # Start the launcher etf-portal start # Start a specific component etf-portal start --component portfolio_builder # Start in background mode etf-portal start --component launcher --background # Stop all components etf-portal stop # Stop a specific component etf-portal stop --component analyzer # Check status etf-portal status # Restart components etf-portal restart # View logs etf-portal logs # Update configuration etf-portal config --key ports.launcher --value 8500 ``` ## Components - **Launcher**: The main entry point for the ETF Portal (port 8500) - **Portfolio Builder**: Tool for building and managing ETF portfolios (port 8501) - **Analyzer**: Tool for analyzing ETF portfolios (port 8502) ## Configuration The configuration file is located at `config/etf_suite_config.json`. You can modify it directly or use the `config` command: ```bash etf-portal config --key ports.launcher --value 8500 ``` ## Logs Logs are stored in the `logs` directory. You can view recent logs using: ```bash etf-portal logs ``` ## Features - **ETF Discovery & Filtering**: Find ETFs based on yield, category, AUM, and other criteria - **Portfolio Builder**: Create balanced portfolios with custom allocations - **DRIP Calculator**: Project growth with dividend reinvestment - **Economic Comparison**: Compare DRIP vs. No-DRIP strategies with accurate capital recovery calculation - **Risk Assessment**: AI-powered analysis of NAV and yield erosion risks - **PDF Reports**: Generate downloadable PDF reports of your portfolio analysis - **ETF Analyzer**: Detailed analysis of individual ETFs including holdings, sectors, and dividend history - **CLI Tool**: Command-line interface for managing the ETF Suite applications ## Requirements - Python 3.8+ - Streamlit - Financial Modeling Prep API key (paid subscription) - Pandas, Numpy, Plotly, and other dependencies ## Setup 1. Clone the repository 2. Install dependencies: ``` pip install -r requirements.txt ``` 3. Get an API key from [Financial Modeling Prep](https://financialmodelingprep.com/developer/docs/) 4. Create a `.streamlit/secrets.toml` file with your API key: ``` fmp_api_key = "YOUR_API_KEY_HERE" ``` 5. Install the ETF Suite CLI: ``` pip install -e . ``` 6. Run the application using the CLI: ``` etf-suite start --component all ``` ## ETF Suite CLI The ETF Suite CLI provides a convenient way to manage the different components of the ETF Suite from the command line. ### Installation ```bash # Install the package pip install -e . # Create required directories sudo mkdir -p /var/run/etf-portal sudo mkdir -p /var/log/etf-portal sudo chown -R $USER:$USER /var/run/etf-portal sudo chown -R $USER:$USER /var/log/etf-portal ``` ### Usage ```bash # Start the ETF Portal application etf-portal start # Stop the ETF Portal application etf-portal stop # Restart the ETF Portal application etf-portal restart # Check the status of the ETF Portal application etf-portal status ``` ## Logs Logs are stored in `/var/log/etf-portal/cli_manager.log` ## PID File The PID file is stored in `/var/run/etf-portal/etf_portal.pid` ## Usage 1. Set your initial capital amount 2. Use the filters to discover ETFs based on your criteria 3. Add ETFs to your portfolio and adjust allocations 4. Run the analysis to see projections and comparisons 5. Generate a PDF report for your records ## Data Source This application uses the Financial Modeling Prep (FMP) API for real-time ETF data, including: - ETF listings and details - Price and dividend history - Fundamental data ## License MIT License ## Author Pascal