# Decision Log This file records architectural and implementation decisions using a list format. 2025-03-26 11:11:00 - Updated with development environment workflow decisions ## Core Architectural Decisions ### Development Environment Configuration * **Decision**: Implement Docker-based development environment with PHP-FPM * **Rationale**: Better performance, control, and similarity to production * **Implementation Details**: * WordPress with PHP 8.1-FPM * Nginx as web server * MariaDB for database * Custom PHP-FPM configuration * Development-specific WordPress settings ### Development Environment Workflow * **Decision**: Implement backup-based workflow for development environment setup * **Rationale**: More reliable, faster setup, offline support, and consistent environments * **Implementation Details**: * Create backups from production using sync-production.sh * Set up environment from backups using setup-from-backup.sh * Standardized script naming and organization * Comprehensive documentation and migration guide * Improved error handling and verification ### WordPress Configuration Strategy * **Decision**: Use environment variables and wp-config.php overrides * **Rationale**: Maintain security and flexibility across environments * **Implementation Details**: * Environment-based configuration * Debug mode in development * Custom site URL handling * SSL configuration options * Security settings management ### Database Management * **Decision**: Use MariaDB with custom configuration * **Rationale**: Better performance and compatibility * **Implementation Details**: * Custom character set and collation * Optimized buffer settings * Development-specific permissions * Backup and restore capabilities * Data synchronization tools ### Version Control Strategy * **Decision**: Implement Git-based version control with GitHub hosting * **Rationale**: Enable collaborative development, code review, and version tracking * **Implementation Details**: * Git repository with main branch * GitHub remote for collaboration * .gitignore to exclude environment-specific files * Structured commit messages * Clean repository history ### Registration and Authentication Architecture * **Decision**: Implement custom registration and authentication system * **Rationale**: Need fine-grained control over user registration process and role management * **Implementation Details**: * Custom database table for trainer profiles * Client and server-side validation * Automated venue creation integration * Email notification system * Role-based access control * Security measures following WordPress best practices ### SSL Configuration for Development * **Decision**: Disable SSL requirement in development * **Rationale**: Simplify local development while maintaining production security * **Implementation Details**: * Configurable SSL settings * Environment-specific SSL handling * Production-ready SSL configuration * Secure cookie handling * HTTPS redirection management ### Custom Role Architecture * **Decision**: Implement hvac_trainer custom WordPress role * **Rationale**: Provide specific capabilities while restricting administrative access * **Implementation Details**: * Role name: hvac_trainer * Custom capabilities for HVAC-specific features * Integration with The Events Calendar capabilities * Automatic role management through plugin lifecycle * Strict security boundaries ### Integration-First Development Approach * **Decision**: Maximize use of existing WordPress and The Events Calendar functionality * **Rationale**: Leverage proven solutions, reduce custom code, ensure maintainability * **Implementation Details**: * Use WordPress core features whenever possible * Extend The Events Calendar functionality rather than rebuild * Custom development only when necessary * Maintain plugin upgrade compatibility 2025-03-26 11:11:00 - Added development environment workflow decisions