upskill-event-manager/memory-bank/decisionLog.md
bengizmo d1509b3d60 feat(dev-env): implement backup-based development workflow
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
2025-03-26 11:26:18 -03:00

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