The Pattern Pursuit Challenge project follows a modular structure designed to support incremental development over 30 days, from basic model implementation to production deployment.
pattern-pursuit/
├── README.md # Project overview and getting started
├── LICENSE # Project license
├── setup.py # Project installation configuration
├── requirements.txt # Project dependencies
├── .env.example # Environment variable templates
├── .gitignore # Git ignore patterns
│
├── core/ # Core package directory
│ ├── setup.py # Package setup configuration
│ ├── requirements.txt # Package-specific dependencies
│ ├── dlcore/ # Main package source
│ │ ├── __init__.py
│ │ ├── models/ # Model implementations
│ │ ├── data/ # Data processing modules
│ │ ├── evaluation/ # Evaluation metrics and tools
│ │ └── utils/ # Utility functions
│ └── tests/ # Package tests
│
├── challenges/ # Daily challenge implementations
│ ├── templates/ # Templates for daily work
│ └── day_XX/ # Day-specific directories
│ ├── notebook.ipynb # Implementation notebook
│ ├── technical_report.md # Technical documentation
│ ├── summary_report.md # Executive summary
│ └── README.md # Day overview
│
├── infrastructure/ # Infrastructure configuration
│ ├── docker/ # Docker configurations
│ │ ├── development/ # Development environment
│ │ └── production/ # Production environment
│ ├── k8s/ # Kubernetes manifests
│ ├── airflow/ # Airflow DAGs and config
│ └── monitoring/ # Monitoring configuration
│
├── data/ # Data directory
│ ├── raw/ # Raw market data
│ ├── processed/ # Processed features
│ └── README.md # Data documentation
│
├── docs/ # Project documentation
│ ├── getting_started.md # Setup guide
│ ├── infrastructure/ # Infrastructure docs
│ ├── development/ # Development guides
│ ├── api/ # API documentation
│ └── phases/ # Phase-specific docs
│
├── notebooks/ # Research and analysis notebooks
│ ├── research/ # Research experiments
│ └── analysis/ # Data analysis
│
├── scripts/ # Utility scripts
│ ├── setup/ # Setup scripts
│ ├── data/ # Data processing scripts
│ └── deployment/ # Deployment scripts
│
└── api/ # API implementation
├── routes/ # API endpoints
├── models/ # API models
└── tests/ # API tests
The dlcore
package contains reusable components:
- models/: Trading model implementations
- Base model classes
- Model architectures
- Training utilities
- data/: Data processing functionality
- Data loaders
- Feature engineering
- Data validation
- evaluation/: Evaluation framework
- Performance metrics
- Backtesting tools
- Risk metrics
- utils/: Utility functions
- Helper functions
- Common calculations
- System utilities
Each day's implementation includes:
- Jupyter notebook with code
- Technical documentation
- Executive summary
- Day-specific data and models
- Progress tracking
Configuration for all services:
- Docker containers
- Kubernetes deployments
- Service configurations
- Monitoring setup
Comprehensive project documentation:
- Setup guides
- Architecture documentation
- API documentation
- Development guidelines
- Phase documentation
Organized data storage:
- Raw market data
- Processed features
- Model predictions
- Evaluation results
REST API for model serving:
- Route definitions
- Request/response models
- Authentication
- Testing
- Clone repository
- Install dependencies
- Set up infrastructure
- Start development services
- Create new day directory
- Implement solution
- Document findings
- Update core package
- Run tests
- Commit changes
- Build containers
- Deploy to Kubernetes
- Configure monitoring
- Enable API endpoints
main
: Production-ready codedevelopment
: Integration branchfeature/*
: Feature branchesday-XX
: Daily challenge branches
- Conventional commits format
- Descriptive messages
- Reference issues/tasks
- Google style docstrings
- Inline comments for complexity
- README files for components
- Markdown format
- Clear structure
- Code examples
- Diagrams when needed
- Unit tests for core package
- Integration tests for API
- Performance tests
- Documentation tests
- Linting (flake8)
- Formatting (black)
- Type checking (mypy)
- Code review process