FREDML / README.md
Edwin Salguero
feat: Complete project cleanup and professional structure
2b395f2
|
raw
history blame
6.98 kB

FRED ML - Federal Reserve Economic Data Machine Learning System

CI/CD Tests License

A comprehensive Machine Learning system for analyzing Federal Reserve Economic Data (FRED) with automated data processing, advanced analytics, and interactive visualizations.

πŸš€ Features

  • πŸ“Š Real-time Data Processing: Automated FRED API integration
  • πŸ€– Machine Learning Analytics: Advanced statistical modeling
  • πŸ“ˆ Interactive Visualizations: Dynamic charts and dashboards
  • πŸ”„ Automated Workflows: CI/CD pipeline with quality gates
  • ☁️ Cloud-Native: AWS Lambda and S3 integration
  • πŸ§ͺ Comprehensive Testing: Unit, integration, and E2E tests

πŸ“ Project Structure

FRED_ML/
β”œβ”€β”€ πŸ“ src/                    # Core application code
β”‚   β”œβ”€β”€ πŸ“ core/              # Core pipeline components
β”‚   β”œβ”€β”€ πŸ“ analysis/          # Economic analysis modules
β”‚   β”œβ”€β”€ πŸ“ visualization/     # Data visualization components
β”‚   └── πŸ“ lambda/           # AWS Lambda functions
β”œβ”€β”€ πŸ“ scripts/               # Utility and demo scripts
β”‚   β”œβ”€β”€ πŸ“„ streamlit_demo.py  # Interactive Streamlit demo
β”‚   β”œβ”€β”€ πŸ“„ run_tests.py       # Test runner
β”‚   └── πŸ“„ simple_demo.py     # Command-line demo
β”œβ”€β”€ πŸ“ tests/                 # Comprehensive test suite
β”‚   β”œβ”€β”€ πŸ“ unit/             # Unit tests
β”‚   β”œβ”€β”€ πŸ“ integration/      # Integration tests
β”‚   └── πŸ“ e2e/              # End-to-end tests
β”œβ”€β”€ πŸ“ docs/                  # Documentation
β”‚   β”œβ”€β”€ πŸ“ api/              # API documentation
β”‚   β”œβ”€β”€ πŸ“ architecture/     # System architecture docs
β”‚   └── πŸ“„ CONVERSATION_SUMMARY.md
β”œβ”€β”€ πŸ“ config/               # Configuration files
β”œβ”€β”€ πŸ“ data/                 # Data storage
β”‚   β”œβ”€β”€ πŸ“ raw/             # Raw data files
β”‚   β”œβ”€β”€ πŸ“ processed/       # Processed data
β”‚   └── πŸ“ exports/         # Generated exports
β”œβ”€β”€ πŸ“ deploy/               # Deployment configurations
β”‚   β”œβ”€β”€ πŸ“ docker/          # Docker configurations
β”‚   β”œβ”€β”€ πŸ“ kubernetes/      # Kubernetes manifests
β”‚   └── πŸ“ helm/            # Helm charts
β”œβ”€β”€ πŸ“ infrastructure/       # Infrastructure as code
β”‚   β”œβ”€β”€ πŸ“ ci-cd/          # CI/CD configurations
β”‚   β”œβ”€β”€ πŸ“ monitoring/      # Monitoring setup
β”‚   └── πŸ“ alerts/          # Alert configurations
β”œβ”€β”€ πŸ“ .github/workflows/    # GitHub Actions workflows
β”œβ”€β”€ πŸ“„ requirements.txt      # Python dependencies
β”œβ”€β”€ πŸ“„ pyproject.toml       # Project configuration
β”œβ”€β”€ πŸ“„ Dockerfile           # Container configuration
β”œβ”€β”€ πŸ“„ Makefile             # Build automation
└── πŸ“„ README.md            # This file

πŸ› οΈ Quick Start

Prerequisites

  • Python 3.8+
  • AWS Account (for cloud features)
  • FRED API Key

Installation

  1. Clone the repository

    git clone https://github.com/your-org/fred-ml.git
    cd fred-ml
    
  2. Install dependencies

    pip install -r requirements.txt
    
  3. Set up environment variables

    export AWS_ACCESS_KEY_ID="your_access_key"
    export AWS_SECRET_ACCESS_KEY="your_secret_key"
    export AWS_DEFAULT_REGION="us-east-1"
    export FRED_API_KEY="your_fred_api_key"
    
  4. Run the interactive demo

    streamlit run scripts/streamlit_demo.py
    

πŸ§ͺ Testing

Run all tests

python scripts/run_tests.py

Run specific test types

# Unit tests
python -m pytest tests/unit/

# Integration tests
python -m pytest tests/integration/

# End-to-end tests
python -m pytest tests/e2e/

Development testing

python scripts/test_dev.py

πŸš€ Deployment

Local Development

# Start development environment
python scripts/dev_setup.py

# Run development tests
python scripts/run_dev_tests.py

Production Deployment

# Deploy to AWS
python scripts/deploy_aws.py

# Deploy complete system
python scripts/deploy_complete.py

πŸ“Š Demo Applications

Interactive Streamlit Demo

streamlit run scripts/streamlit_demo.py

Access at: http://localhost:8501

Command-line Demo

python scripts/simple_demo.py

πŸ”§ Configuration

Environment Variables

  • AWS_ACCESS_KEY_ID: AWS access key
  • AWS_SECRET_ACCESS_KEY: AWS secret key
  • AWS_DEFAULT_REGION: AWS region (default: us-east-1)
  • FRED_API_KEY: FRED API key

Configuration Files

  • config/pipeline.yaml: Pipeline configuration
  • config/settings.py: Application settings

πŸ“ˆ System Architecture

Components

  • Frontend: Streamlit interactive dashboard
  • Backend: AWS Lambda serverless functions
  • Storage: AWS S3 for data persistence
  • Scheduling: EventBridge for automated triggers
  • Data Source: FRED API for economic indicators

Data Flow

FRED API β†’ AWS Lambda β†’ S3 Storage β†’ Streamlit Dashboard
            ↓
        EventBridge (Scheduling)
            ↓
        CloudWatch (Monitoring)

πŸ§ͺ Testing Strategy

Test Types

  • Unit Tests: Individual component testing
  • Integration Tests: API and data flow testing
  • End-to-End Tests: Complete system workflow testing

Coverage

  • Core pipeline components: 100%
  • API integrations: 100%
  • Data processing: 100%
  • Visualization components: 100%

πŸ”„ CI/CD Pipeline

GitHub Actions Workflows

  • Main Pipeline: Production deployments
  • Pull Request Checks: Code quality validation
  • Scheduled Maintenance: Automated updates
  • Release Management: Version control

Quality Gates

  • Automated testing
  • Code linting and formatting
  • Security vulnerability scanning
  • Documentation generation

πŸ“š Documentation

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests: python scripts/run_tests.py
  5. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

For support and questions:


FRED ML - Transforming economic data analysis with machine learning and automation.