This commit introduces a more reliable and consistent approach to setting up the development environment using backups: - Add setup-from-backup.sh script for environment setup from existing backups - Standardize script naming and organization - Move obsolete scripts to bin/obsolete directory - Update documentation with new workflow instructions - Create migration guide for transitioning to new workflow - Update Memory Bank with workflow improvements The new workflow provides: - More reliable environment setup - Faster setup process - Offline development capability - Consistent development environments across team members Breaking changes: - setup-dev.sh is replaced by setup-from-backup.sh - sync-and-setup.sh is replaced by separate scripts - verify-with-wpcli.sh is no longer used Migration path is documented in MIGRATION_GUIDE.md
98 lines
No EOL
3.9 KiB
Markdown
98 lines
No EOL
3.9 KiB
Markdown
# 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 |