upskill-event-manager/wordpress-dev/dev_env_proposal.md

12 KiB

WordPress Development Environment Management Proposal

Status: Needs Review Last Updated: March 25, 2025 Scope: Development environment setup and management

Note

: This document is a suggestion for Roo to consider for managing and testing the development environment and compariring it to the production environment.

Overview

This script manages the WordPress development environment for the Upskill HVAC Community Events project, providing functionality to check status, sync with production, and deploy test configurations.

Core Functions

1. Check Environment Status

  • Container Health Check

    • Verify Docker containers are running
    • Check container logs for errors
    • Validate container network connectivity
  • Visual Comparison

    • Capture screenshot of dev environment homepage
    • Capture screenshot of production homepage
    • Perform pixel-by-pixel comparison
    • Generate diff report if mismatched
  • WordPress Configuration Check

    • Verify required plugins:
      • The Events Calendar (Free)
      • Events Calendar Pro
      • Event Tickets
      • Event Tickets Plus
      • The Events Calendar: Community
    • Check Upskill Network plugin status
    • Validate plugin versions match production
    • Check WordPress core version (6.7.2)

2. Production to Development Sync

  • Backup Management

    • Check /wordpress-dev/backups/ for recent backups
    • Verify backup integrity
    • Download new backup if needed:
      • WordPress files
      • Database dump
      • Media files
      • Plugin configurations
  • Environment Setup

    • Stop existing containers if running
    • Clear existing volumes if needed
    • Start fresh containers via docker-compose
    • Wait for container health checks
  • Data Synchronization

    • Import database backup
    • Sync media files
    • Update WordPress configuration
    • Verify data integrity

3. Plugin Deployment & Testing

  • Plugin Deployment

    • Copy plugin files to wp-content/plugins
    • Activate plugin via WP-CLI
    • Monitor error logs
  • Test Data Creation

    • Create test HVAC Trainer user
    • Generate test event
    • Create test order and ticket
    • Verify data relationships
  • Automated Testing

    • Launch headless browser
    • Perform login test
    • Validate dashboard access
    • Verify test event visibility

Implementation Flow

graph TD
    A[Start Script] --> B{Select Option}
    B -->|1| C[Check Status]
    B -->|2| D[Sync Production]
    B -->|3| E[Deploy & Test]
    B -->|4| F[Exit]
    
    C --> C1[Check Containers]
    C --> C2[Compare Screenshots]
    C --> C3[Verify Plugins]
    C --> C4[Check Custom Plugin]
    
    D --> D1[Check Recent Backups]
    D1 -->|Found| D2[Confirm Usage]
    D1 -->|Not Found| D3[Download New Backup]
    D2 --> D4[Start Containers]
    D3 --> D4
    D4 --> D5[Sync Data]
    D5 --> C
    
    E --> E1[Environment Check]
    E1 --> E2[Deploy Plugin]
    E2 --> E3[Load Test Data]
    E3 --> E4[Run Browser Tests]

Implementation Checklist

  1. Setup Phase

    • Create script directory structure
    • Set up logging system
    • Create configuration file template
    • Add error handling framework
  2. Docker Management

    • Write container status check function
    • Create container management functions
    • Implement health check system
    • Add network validation
    • Add container log monitoring
      • Log analysis for errors and warnings
      • Disk space monitoring for logs
      • Log rotation configuration
      • Summary reporting with recent issues
      • Automated log maintenance
  3. Screenshot Comparison

    • Implement headless browser capture
    • Create image comparison function
    • Add diff generation
    • Set up report generation
  4. WordPress Management

    • Implement WP-CLI wrapper functions
    • Create plugin verification system
    • Add version comparison logic
    • Implement configuration validation
  5. Backup Management

    • Create backup discovery function
    • Implement backup download system
    • Add backup validation
    • Create cleanup routines
  6. Data Synchronization

    • Create database import function
    • Implement file sync system
    • Add configuration update logic
    • Create verification routines
  7. Test Data Management

    • Create test data generation functions
      • Basic mode: 1 trainer, 1 event, standard ticket
      • Extended mode: 3 trainers, 9 events, multiple ticket types
      • Stress mode: 10 trainers, 100 events, varied ticket configurations
    • Implemented data relationship validation
      • Events properly linked to trainers
      • Tickets correctly associated with events
      • Metadata validation for dates and venues
    • Added cleanup routines
      • Safe removal of test events
      • Clean deletion of test tickets
      • Proper cleanup of test users
    • Created verification system
      • Status checks for each operation
      • Colored output for better visibility
      • Confirmation prompts for destructive actions
    • Added automated test data reset
      • Command-line interface with multiple modes
      • Skip confirmation option for automation
      • Comprehensive help documentation
  8. Automated Testing

    • Set up Playwright test framework
    • Create login test suite
    • Implement dashboard validation
    • Add reporting system
  9. Documentation

    • Write usage documentation
    • Create troubleshooting guide
    • Add configuration reference
    • Include example workflows

Progress Updates

Current Status (2025-03-12)

  1. Setup Phase

    • Created script directory structure
    • Set up logging system
    • Created configuration file template
    • Added error handling framework
    • Created Docker environment files
    • Missing: Command completion for management script
  2. Docker Management

    • Written container status check function (verify-dev.sh)
    • Created container management functions (setup-dev.sh)
    • Implemented health check system
    • Added network validation
    • Added container log monitoring
      • Log analysis for errors and warnings
      • Disk space monitoring for logs
      • Log rotation configuration
      • Summary reporting with recent issues
      • Automated log maintenance
  3. 🔄 Screenshot Comparison

    • Implemented headless browser capture
    • Image comparison function not implemented
    • Diff generation missing
    • Report generation pending
    • Not critical for current phase
  4. WordPress Management

    • Implemented WP-CLI wrapper functions
    • Created plugin verification system
    • Added version comparison logic
    • Implemented configuration validation
    • Missing: Plugin version sync with production
  5. 🔄 Backup Management

    • Created backup discovery function
    • Implemented backup download system (sync-production.sh)
    • Backup validation incomplete
    • Cleanup routines needed
    • Need local backup option when production sync unavailable
  6. 🔄 Data Synchronization

    • Created database import function (manage-db.sh)
    • Implemented file sync system
    • Added configuration update logic
    • Verification routines incomplete
    • Need offline/local-only mode
  7. Test Data Management

    • Created test data generation functions
      • Basic mode: 1 trainer, 1 event, standard ticket
      • Extended mode: 3 trainers, 9 events, multiple ticket types
      • Stress mode: 10 trainers, 100 events, varied ticket configurations
    • Implemented data relationship validation
      • Events properly linked to trainers
      • Tickets correctly associated with events
      • Metadata validation for dates and venues
    • Added cleanup routines
      • Safe removal of test events
      • Clean deletion of test tickets
      • Proper cleanup of test users
    • Created verification system
      • Status checks for each operation
      • Colored output for better visibility
      • Confirmation prompts for destructive actions
    • Added automated test data reset
      • Command-line interface with multiple modes
      • Skip confirmation option for automation
      • Comprehensive help documentation
  8. 🔄 Automated Testing

    • Set up Playwright test framework
    • Created login test suite
    • Implemented dashboard validation
    • Added reporting system
    • Need better test isolation

Immediate Action Items

  1. Critical Fixes Needed:

    • Add local-only setup mode to setup-dev.sh that doesn't require production data
    • Implement automated test data generation in manage-db.sh
    • Add container log monitoring to verify-dev.sh
    • Create backup validation in sync-production.sh
  2. New Features Required:

    • Create reset-dev.sh script for quick environment reset
    • Test data management implemented in manage-db.sh
    • Implement cleanup.sh for environment cleanup
    • Add logs.sh for centralized log viewing

Recent Changes

  • Added local-only setup mode to setup-dev.sh
    • Supports both production sync and fresh installation
    • Includes command-line options for flexibility
    • Automatically installs required plugins
    • Creates test users and basic configuration
  • Enhanced manage-db.sh with test data management
    • Added three test data generation modes (basic, extended, stress)
    • Implemented safe cleanup functionality
    • Added confirmation prompts and skip option
    • Improved error handling and status reporting
  • Enhanced verify-dev.sh with log monitoring
    • Added container log analysis
    • Implemented log rotation configuration
    • Added disk space monitoring
    • Improved database connection verification
    • Enhanced error reporting and status checks
  • Identified gaps in current implementation
  • Updated progress tracking
  • Added new required scripts
  • Prioritized critical fixes

Next Sprint Focus

  1. Implement local-only setup mode
  2. Create test data management scripts
  3. Add container monitoring
  4. Improve backup management
  5. Update documentation with new workflows

Long-term Improvements

  1. Add script command completion
  2. Implement automated environment snapshots
  3. Create visual diff reporting
  4. Add performance monitoring
  5. Implement automated recovery procedures

This section will be updated as implementation progresses

Next Steps

  1. Fix Remaining Issues:

    • API Created Events Visibility Issue
    • Dashboard Button Navigation Issue
    • Modify Event Page Test Issues
  2. Begin Phase 2 Implementation:

    • Email Attendees Page
    • Order Summary Page
    • Enhanced Event Management
    • Comprehensive Transaction Reporting
  3. Testing Framework Enhancements:

    • Expand test coverage for Phase 2 features
    • Phase out remaining Puppeteer tests
    • Implement CI/CD integration
  4. Future Environment Enhancements (Phase 4):

    • Add SSL support for local development (moved from Phase 3)
      • Note: SSL support was temporarily removed from the testing framework due to configuration complexities
      • Will be re-implemented with proper certificate management and nginx configuration
    • Implement backup compression
    • Add support for custom domains
    • Optimize container performance
  5. Security Improvements:

    • Implement secure credential storage
    • Add environment-specific configuration validation
    • Implement access control for sensitive operations
    • Add audit logging for critical actions
  6. Developer Experience:

    • Add command completion for the management script
    • Create VS Code debugging configuration
    • Add development workflow documentation
    • Create plugin development guidelines

Recent Changes

  • Removed SSL requirement from testing framework to simplify local development
  • Updated test configuration to use HTTP by default
  • Simplified test setup and execution process
  • Moved SSL support to Phase 4 for proper implementation

Immediate Focus

  1. Complete the troubleshooting guide
  2. Create example workflows
  3. Test production data sync with real data
  4. Implement remaining Phase 2 features

Progress Updates

This section will be updated as implementation progresses

Current Status

  • Plan created and saved
  • Beginning implementation of setup phase