FREDML / README.md
Edwin Salguero
Update README.md
9aa7ba0
|
raw
history blame
6.63 kB
# FRED ML - Federal Reserve Economic Data Machine Learning System
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**
```bash
git clone https://github.com/ParallelLLC/FREDML.git
cd fred-ml
```
2. **Install dependencies**
```bash
pip install -r requirements.txt
```
3. **Set up environment variables**
```bash
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**
```bash
streamlit run scripts/streamlit_demo.py
```
## πŸ§ͺ Testing
### Run all tests
```bash
python scripts/run_tests.py
```
### Run specific test types
```bash
# 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
```bash
python scripts/test_dev.py
```
## πŸš€ Deployment
### Local Development
```bash
# Start development environment
python scripts/dev_setup.py
# Run development tests
python scripts/run_dev_tests.py
```
### Production Deployment
```bash
# Deploy to AWS
python scripts/deploy_aws.py
# Deploy complete system
python scripts/deploy_complete.py
```
## πŸ“Š Demo Applications
### Interactive Streamlit Demo
```bash
streamlit run scripts/streamlit_demo.py
```
Access at: http://localhost:8501
### Command-line Demo
```bash
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
- [API Documentation](docs/api/)
- [Architecture Guide](docs/architecture/)
- [Deployment Guide](docs/deployment/)
- [User Guide](docs/user-guide/)
- [Conversation Summary](docs/CONVERSATION_SUMMARY.md)
## 🀝 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](LICENSE) file for details.
## πŸ†˜ Support
For support and questions:
- Create an issue on GitHub
- Check the [documentation](docs/)
- Review the [conversation summary](docs/CONVERSATION_SUMMARY.md)
---
**FRED ML** - Transforming economic data analysis with machine learning and automation.