WP Manifestindependent plugin directory
manifest / media / google-drive-viewer

Google Drive Manager

A comprehensive WordPress plugin for Google Drive integration with file management, posts maintenance, and WP-CLI support.

by Sufiyan Arif Khan · github.com/sufiyankhan2203/google-drive-viewer

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/sufiyankhan2203/google-drive-viewer/archive/refs/heads/main.zip

A comprehensive WordPress plugin that demonstrates advanced development skills through Google Drive integration, posts maintenance functionality, WP-CLI command implementation, and modern UI/UX design patterns.

Main Interface

📋 Table of Contents

  1. 🚀 Features Overview
  2. 📂 Google Drive Integration
  3. 🔧 Posts Maintenance System
  4. ⚡ WP-CLI Integration
  5. 🖥️ User Interface & Screenshots
  6. 🏗️ Development & Build Process
  7. 🧪 Testing Implementation
  8. 📚 Documentation
  9. 🛠️ Installation & Setup
  10. 🏛️ Architecture

🚀 Features Overview

📂 Google Drive Integration (Google Drive Manager/Shared-UI Based)

  • OAuth Authentication: Secure Google Drive API v3 authentication flow
  • File Management: Upload, download, view files with drag-and-drop support
  • Folder Navigation: Browse folders with breadcrumbs and keyboard navigation (Backspace = back)
  • Modern UI: Built with Google Drive Manager Shared-UI framework for consistent design
  • Real-time Progress: Upload progress tracking with visual feedback
  • Responsive Design: Mobile-friendly interface with grid layouts
  • Pagination: Efficient handling of large folder contents

🔧 Posts Maintenance System (Modern Clean UI)

  • Automated Scanning: Process all WordPress posts and pages with meta field updates
  • Background Processing Toggle: Switch between foreground and background processing modes
  • Auto Scheduler: Automatic daily maintenance via WordPress cron system
  • Real-time Progress: AJAX-powered progress bars and status updates
  • Clean Modern Interface: Custom-designed UI (no SUI dependency) for optimal performance
  • Batch Processing: Memory-efficient handling of large datasets
  • Comprehensive Logging: Detailed scan results with timestamps

⚡ WP-CLI Integration

  • Complete Command Suite: CLI commands for automation and scripting
  • Multiple Output Formats: JSON, CSV, Table, and YAML output support
  • Progress Visualization: Visual progress bars for long-running operations
  • Dry Run Mode: Preview operations without making changes
  • Verbose Logging: Detailed operation logs for debugging and monitoring

🛡️ Advanced Architecture & Testing

  • PHPUnit 9.x Testing: Complete test suite with 42 tests and 127 assertions
  • Dependency Management: Sophisticated conflict detection and resolution
  • Performance Optimization: Memory management and efficient query handling
  • Security Features: Nonce verification, capability checks, input sanitization
  • Build Process: Modern webpack-based asset compilation with Grunt automation

📂 Google Drive Integration

The Google Drive implementation leverages the Google Drive Manager Shared-UI framework to provide a consistent and professional interface matching other Google Drive Manager products.

Authentication Flow

Google Drive Authentication

The authentication process includes:

  • OAuth 2.0 secure authentication flow
  • Credential validation and storage
  • Automatic token refresh handling
  • Error handling with user-friendly messages

Drive Test Credentials

Main Drive Interface

Main Drive View

Key Features:

  • Grid Layout: Responsive card-based file/folder display
  • File Actions: Different actions for files vs. folders
  • Search & Navigation: Breadcrumb navigation with keyboard support
  • Upload Integration: Drag-and-drop file upload functionality

File vs. Folder Actions

File Actions: View in Drive + Download

File Options

File Actions:

  • View in Drive: Opens the file directly in Google Drive web interface
  • Download: Downloads the file to local system
  • File Preview: Thumbnail previews for supported file types
  • File Metadata: Size, modification date, and file type information

Folder Actions: View in Drive + Open

Folder Options

Folder Actions:

  • View in Drive: Opens the folder in Google Drive web interface
  • Open: Navigate into the folder within the plugin interface
  • Folder Navigation: Browse folder contents without leaving WordPress
  • Breadcrumb Trail: Easy navigation back to parent folders

Navigation Features

Breadcrumb Navigation

Breadcrumbs Highlighted

Navigation Controls:

  • Breadcrumb Trail: Click any level to navigate directly
  • Keyboard Navigation: Backspace key navigates one level back
  • Home Button: Return to root Drive folder instantly
  • Folder Hierarchy: Visual representation of current location

Empty Folder State

Empty Folder

Empty State Features:

  • Clean, informative empty folder display
  • Action buttons for creating content
  • Helpful guidance for new users

File Upload System

Upload Dialog

Upload File Popup

Upload Features:

  • Drag & Drop: Intuitive file dropping interface
  • File Selection: Traditional file picker as alternative
  • Progress Tracking: Real-time upload progress display
  • Error Handling: Clear error messages and retry options

Upload Success

File Upload Success

Success Feedback:

  • Confirmation of successful upload
  • File details and location information
  • Options to view or manage uploaded files

Folder Management

Create Folder

Create Folder Popup

Folder Creation:

  • Simple folder name input
  • Validation and error handling
  • Immediate folder creation in current directory
  • Automatic refresh of folder contents

Folder Navigation

Folder View

Folder Features:

  • Grid Layout: Consistent file/folder display
  • Mixed Content: Files and folders displayed together
  • Sorting Options: Multiple sorting criteria available
  • Contextual Actions: Right-click or hover actions for items

Pagination System

Pagination

Pagination Features:

  • Page Navigation: Jump to specific pages
  • Results Counter: "Showing X of Y results" display
  • Responsive Design: Adapts to different screen sizes
  • Keyboard Support: Arrow keys for page navigation
  • Performance: Efficient loading of large directories

Post-Authentication Interface

Google Drive After Authentication

Authenticated Features:

  • Full access to Google Drive contents
  • File upload, download, and management capabilities
  • Folder creation and organization
  • Real-time synchronization with Google Drive

🔧 Posts Maintenance System

The Posts Maintenance system features a modern, clean UI design built without SUI dependencies for optimal performance and loading speed.

Posts Maintenance Interface

Key Interface Elements

Processing Mode Toggles

Foreground vs. Background Processing:

  • Foreground Processing: Real-time progress display with immediate feedback
  • Background Processing: Tasks run in background, user can continue other work
  • Toggle Switch: Easy switching between processing modes
  • Status Indicators: Clear visual indication of current processing mode

Auto Scheduler Toggle

Automatic Daily Maintenance:

  • Auto Scheduler Toggle: Enable/disable automatic daily scans
  • Cron Integration: Uses WordPress cron system for scheduled tasks
  • Schedule Configuration: Set preferred time for automatic maintenance
  • Status Display: Shows next scheduled maintenance time

Scan Progress & Results

Rescan After Completion

Posts Maintenance Rescan

Post-Scan Interface:

  • Scan Results: Comprehensive statistics and summary
  • Rescan Option: Ability to run additional scans immediately
  • Progress History: Track of previous scan operations
  • Export Options: Download scan results in various formats

Background vs. Foreground Processing

Foreground Processing Benefits:

  • Real-time progress visualization
  • Immediate error detection and handling
  • Interactive progress monitoring
  • Detailed step-by-step feedback

Background Processing Benefits:

  • Non-blocking user interface
  • Ability to multitask during scan
  • Resource-efficient processing
  • Suitable for large-scale operations

Auto Scheduler Features

Scheduling Options:

  • Daily Automatic Scans: Configure automated maintenance
  • WordPress Cron Integration: Reliable scheduling system
  • Flexible Timing: Set preferred maintenance windows
  • Email Notifications: Optional completion notifications
  • Error Alerting: Automatic notification of failed scans

⚡ WP-CLI Integration

Comprehensive command-line interface for automation and scripting.

Basic Usage

CLI Simple Usage

Basic Commands:

# Simple scan execution
wp wpmudev-posts-maintenance scan

# Check current status
wp wpmudev-posts-maintenance status

Verbose Usage

CLI Verbose Usage

Detailed Commands:

# Verbose output with detailed progress
wp wpmudev-posts-maintenance scan --verbose

# Scan specific post types
wp wpmudev-posts-maintenance scan --post-types=post,page --verbose

Advanced CLI Features

CLI Other Usages

Advanced Commands:

# Dry run preview
wp wpmudev-posts-maintenance scan --dry-run --batch-size=100

# Multiple output formats
wp wpmudev-posts-maintenance stats --format=json
wp wpmudev-posts-maintenance stats --format=csv
wp wpmudev-posts-maintenance stats --format=yaml

# Batch processing control
wp wpmudev-posts-maintenance scan --batch-size=50 --verbose

Complete Command Reference

Posts Maintenance Commands

# Scan Operations
wp wpmudev-posts-maintenance scan                           # Basic scan
wp wpmudev-posts-maintenance scan --post-types=post,page   # Specific post types
wp wpmudev-posts-maintenance scan --dry-run                # Preview mode
wp wpmudev-posts-maintenance scan --verbose                # Detailed output

# Status & Statistics
wp wpmudev-posts-maintenance status                        # Current status
wp wpmudev-posts-maintenance stats                         # Statistics (table)
wp wpmudev-posts-maintenance stats --format=json          # JSON output
wp wpmudev-posts-maintenance stats --format=csv           # CSV export
wp wpmudev-posts-maintenance stats --format=yaml          # YAML format

Command Parameters

Parameter Description Example
--post-types=<types> Comma-separated post types --post-types=post,page,product
--dry-run Preview without executing --dry-run
--batch-size=<size> Posts per batch (default: 50) --batch-size=100
--verbose Detailed progress output --verbose
--format=<format> Output format --format=json

🖥️ User Interface & Screenshots

Design Philosophy

Google Drive: Google Drive Manager Shared-UI Framework

The Google Drive implementation utilizes the Google Drive Manager Shared-UI framework providing:

  • Consistent Design Language: Matches other Google Drive Manager products
  • Pre-built Components: Cards, modals, buttons, form elements
  • Responsive Grid System: Mobile-first responsive design
  • Accessibility Features: WCAG compliant interface elements
  • Professional Aesthetics: High-quality visual design
  • Framework Benefits: Reduced development time, consistent UX

Posts Maintenance: Modern Clean UI

The Posts Maintenance interface features custom-built modern UI offering:

  • Performance Optimized: No framework overhead, faster loading
  • Clean Design: Minimal, focused interface design
  • Custom Components: Tailored specifically for functionality needs
  • Reduced Bloat: Only necessary styles loaded
  • Modern Aesthetics: Contemporary design patterns
  • Optimized UX: Interface designed specifically for maintenance tasks

Interface Comparison

Aspect Google Drive (Shared-UI) Posts Maintenance (Custom)
Framework Google Drive Manager Shared-UI Custom CSS/JS
Bundle Size Larger (full framework) Minimal (only needed styles)
Consistency Matches Google Drive Manager products Unique, tailored design
Development Speed Faster (pre-built components) Custom development required
Performance Good (optimized framework) Excellent (minimal overhead)
Maintenance Framework updates Custom maintenance
Flexibility Component constraints Complete customization

🏗️ Development & Build Process

Modern Build System

The plugin employs a sophisticated build system combining multiple technologies:

  • Webpack: Module bundling and asset optimization
  • Babel: ES6+ to ES5 transpilation
  • Sass/SCSS: CSS preprocessing and optimization
  • Grunt: Task automation and build orchestration
  • NPM Scripts: Development workflow automation

Build Commands

# Development build with file watching
npm run watch

# Production build with optimization  
npm run compile

# Complete build with translation files
npm run build

# Build specific components
npm run build:css     # Compile SCSS only
npm run build:js      # Compile JavaScript only

Asset Pipeline

  1. Source Files: Located in src/ directory
  2. Processing: Webpack processes React/JSX and SCSS files
  3. Optimization: Minification, tree-shaking, code splitting
  4. Output: Compiled assets in assets/ directory
  5. Distribution: Optimized files for production deployment

Build Configuration

Webpack Configuration

  • Entry Points: Multiple entry points for different components
  • Output Configuration: Optimized file naming and chunking
  • Module Loaders: Handle JSX, SCSS, and asset files
  • Plugins: Optimization and build enhancement plugins
  • Development Server: Hot reloading for development

Grunt Tasks

  • Asset Compilation: Coordinate webpack builds
  • File Operations: Copy, clean, and organize files
  • Translation Generation: Extract and process translation strings
  • Distribution Packaging: Create production-ready packages

🧪 Testing Implementation

PHPUnit Testing Framework

PHPUnit Test Results Part 1 PHPUnit Test Results Part 2

Testing Statistics:

  • Total Tests: 42 comprehensive tests
  • Total Assertions: 127 individual assertions
  • Execution Time: ~15 seconds for full test suite
  • Memory Usage: ~45MB peak memory consumption
  • Coverage: Comprehensive coverage of core functionality

Test Categories

1. Unit Tests

  • Individual method and function testing
  • Isolated component behavior verification
  • Mock object integration testing
  • Execution time: 0.1-0.5 seconds each

2. Integration Tests

  • Component interaction testing
  • WordPress integration verification
  • Database operation validation
  • Execution time: 1-3 seconds each

3. REST API Tests

  • Endpoint functionality validation
  • Authentication and authorization testing
  • Request/response format verification
  • Execution time: 1-2 seconds each

4. WP-CLI Tests

  • Command execution testing
  • Output format validation
  • Parameter handling verification
  • Execution time: 2-5 seconds each

Test Execution

Using run-tests.sh Script

# Run all tests
./run-tests.sh

# Run specific test file
./run-tests.sh tests/ApiAuthTest.php

# Run with coverage report
./run-tests.sh --coverage-html coverage/

# Verbose output
./run-tests.sh --verbose

PHPUnit Version Strategy

Why PHPUnit 9.x?

  • WordPress Compatibility: WordPress test suite requires PHPUnit 9.x
  • Stability: Mature version with proven track record
  • PHP Version Support: Compatible with PHP 7.4+ (minimum requirement)
  • Dependency Compatibility: Works with Yoast PHPUnit Polyfills

PHPCS Code Quality

PHPCS No Errors

Code Quality Metrics:

  • WordPress Coding Standards: 100% WPCS compliance
  • PHP Compatibility: PHP 7.4+ compatibility verified
  • Security Standards: Security-focused coding patterns
  • Documentation Standards: Comprehensive inline documentation
  • Error Rate: 0 errors, 0 warnings in final codebase

📚 Documentation

Comprehensive Documentation Suite

This project includes extensive documentation covering all aspects of development, deployment, and usage:

Core Documentation

Quick Reference Guides

Developer Resources

  • QUESTIONS.md - Implementation decisions and technical choices
  • Inline Documentation - Comprehensive PHPDoc comments throughout codebase
  • Code Examples - Real-world usage patterns and examples

Documentation Features

1. Comprehensive Coverage

  • Architecture Documentation: Complete system architecture explanation
  • API Documentation: Detailed endpoint and method documentation
  • User Guides: Step-by-step usage instructions with screenshots
  • Developer Guides: Technical implementation details and patterns
  • Troubleshooting: Common issues and solutions

2. Visual Documentation

  • Screenshots: 20+ screenshots demonstrating functionality
  • Architecture Diagrams: Visual system architecture representations
  • Code Examples: Practical implementation examples
  • Workflow Diagrams: Process flow visualizations

3. Multi-format Support

  • Markdown: Primary documentation format
  • Inline Comments: Comprehensive code documentation
  • README Files: Component-specific documentation
  • Quick Reference: Condensed guides for daily use

🛠️ Installation & Setup

Prerequisites

  • PHP: 7.4 or higher
  • WordPress: 6.1 or higher
  • Node.js: 16.x or higher
  • Composer: 2.x or higher
  • npm: 8.x or higher

Quick Installation

# 1. Navigate to plugins directory
cd wp-content/plugins/

# 2. Clone repository
git clone <repository-url> google-drive-manager
cd google-drive-manager

# 3. Install dependencies
composer install
npm install

# 4. Build assets
npm run build

# 5. Activate in WordPress Admin

Google Drive Setup

  1. Google Cloud Console Configuration

    • Create new project or select existing
    • Enable Google Drive API v3
    • Create OAuth 2.0 credentials
    • Configure authorized redirect URIs
  2. Plugin Configuration

    • Navigate to WordPress Admin → Google Drive
    • Enter Google Cloud Console credentials
    • Complete OAuth authentication flow
    • Grant necessary Drive permissions

Test Data Setup

For testing the Posts Maintenance functionality, this plugin was tested using the official WordPress Theme Unit Test data:

# Download test data
wget https://raw.githubusercontent.com/WPTT/theme-unit-test/master/themeunittestdata.wordpress.xml

# Import via WordPress Admin → Tools → Import → WordPress

Theme Unit Test Data includes:

  • Diverse Post Types: Posts, pages, custom post types
  • Complex Content: Various content formats and structures
  • Media Files: Images, attachments, and embedded content
  • Metadata: Custom fields and post metadata
  • Taxonomy Terms: Categories, tags, and custom taxonomies
  • User Roles: Different user levels and capabilities

This comprehensive test dataset ensures the Posts Maintenance functionality works reliably across different content scenarios and scales appropriately with large datasets.

🏛️ Architecture

System Architecture Overview

┌─────────────────────────────────────────────────────────┐
│                    WordPress Core                        │
├─────────────────────────────────────────────────────────┤
│  Google Drive Manager                                   │
│  ┌─────────────────┐ ┌─────────────────────────────────┐│
│  │  Admin Pages    │ │     API Endpoints               ││
│  │  ├─Google Drive │ │     ├─Drive API v1              ││
│  │  └─Posts Maint. │ │     └─Posts Maintenance API     ││
│  └─────────────────┘ └─────────────────────────────────┘│
│  ┌─────────────────────────────────────────────────────┐│
│  │  WP-CLI Commands                                    ││
│  │  └─Posts Maintenance CLI                           ││
│  └─────────────────────────────────────────────────────┘│
│  ┌─────────────────────────────────────────────────────┐│
│  │  Core Classes                                       ││
│  │  ├─Dependency Manager (Conflict Resolution)        ││
│  │  ├─Loader (Plugin Initialization)                  ││
│  │  ├─Singleton Pattern Implementation                ││
│  │  └─Base Classes & Abstractions                     ││
│  └─────────────────────────────────────────────────────┘│
├─────────────────────────────────────────────────────────┤
│  External Dependencies                                  │
│  ├─Google Drive API v3                                 │
│  ├─Google Drive Manager Shared-UI Framework                         │
│  └─PHPUnit Testing Framework                           │
└─────────────────────────────────────────────────────────┘

File Structure

google-drive-manager/
├── app/                          # Application Logic
│   ├── admin-pages/              # WordPress Admin Pages
│   │   ├── class-google-drive.php      # Google Drive management interface
│   │   └── class-posts-maintenance.php # Posts maintenance console
│   ├── cli/                      # WP-CLI Commands  
│   │   └── class-posts-maintenance-cli.php # CLI command implementation
│   └── endpoints/                # REST API Endpoints
│       └── v1/
│           └── class-drive-api.php      # Google Drive API endpoints
├── core/                         # Core Framework
│   ├── class-base.php           # Abstract base class
│   ├── class-dependency-manager.php # Dependency conflict resolution
│   ├── class-endpoint.php       # REST endpoint base class
│   ├── class-loader.php         # Plugin initialization and loading
│   └── class-singleton.php      # Singleton pattern implementation
├── src/                          # Source Files (Pre-compilation)
│   ├── googledrive-page/        # Google Drive React Components
│   │   ├── main.jsx             # Main React application
│   │   ├── components/          # React component library
│   │   └── scss/                # SCSS stylesheets
│   └── posts-maintenance/       # Posts Maintenance Assets
├── assets/                       # Compiled Assets (Build Output)
│   ├── css/                     # Compiled and minified CSS
│   ├── js/                      # Compiled and minified JavaScript  
│   └── fonts/                   # Web fonts and icon fonts
├── tests/                        # PHPUnit Test Suite
│   ├── ApiAuthTest.php          # API authentication tests
│   ├── DependencyManagerTest.php # Dependency management tests
│   ├── DriveApiTest.php         # Google Drive API tests
│   ├── GoogleDriveTest.php      # Google Drive functionality tests
│   ├── PostsMaintenanceTest.php # Posts maintenance tests
│   ├── PostsMaintenanceCliTest.php # WP-CLI command tests
│   ├── bootstrap.php            # Test environment bootstrap
│   └── wp-cli-utils-mock.php    # WP-CLI mocking utilities
├── screenshots/                  # Documentation Screenshots
├── docs/                        # Additional Documentation
├── languages/                   # Translation Files
├── vendor/                      # Composer Dependencies
├── node_modules/               # NPM Dependencies
└── build/                      # Build Artifacts and Distribution

Design Patterns Implementation

1. Singleton Pattern

// Ensures single instance of core classes
class Google_Drive extends Base {
    use Singleton;

    public static function instance() {
        return parent::get_instance();
    }
}

2. Factory Pattern

// Dynamic class instantiation based on context
class Endpoint_Factory {
    public static function create($endpoint_type) {
        switch($endpoint_type) {
            case 'drive': return new Drive_API();
            case 'posts': return new Posts_API();
        }
    }
}

3. Observer Pattern

// WordPress hooks and filters implementation
add_action('wp_ajax_drive_upload', array($this, 'handle_upload'));
add_filter('posts_maintenance_scan', array($this, 'modify_scan'));

4. Strategy Pattern

// Different processing modes and output formats
class Processing_Strategy {
    public function execute($mode = 'foreground') {
        return $mode === 'background' 
            ? $this->background_process()
            : $this->foreground_process();
    }
}

Key Architectural Decisions

1. Namespace Organization

  • PSR-4 Compliance: Google Drive Manager\PluginTest\ namespace structure
  • Logical Grouping: Related classes grouped in appropriate namespaces
  • Autoloading: Composer autoloading with optimized class maps
  • Conflict Prevention: Unique namespace prevents conflicts with other plugins

2. Dependency Management

  • Composer Integration: Modern PHP dependency management
  • Conflict Detection: Automatic detection of dependency conflicts
  • Version Locking: Specific versions to prevent breaking changes
  • Fallback Mechanisms: Graceful degradation when conflicts occur

3. Security Implementation

  • Nonce Verification: All AJAX requests protected with nonces
  • Capability Checks: Role-based access control throughout
  • Input Sanitization: All user inputs properly sanitized
  • SQL Injection Protection: Prepared statements and WordPress Query API
  • XSS Prevention: Output escaping and content validation

4. Performance Optimization

  • Lazy Loading: Scripts and styles loaded only when needed
  • Asset Minification: Compressed and optimized assets
  • Database Optimization: Efficient queries with proper indexing
  • Memory Management: Batch processing prevents memory exhaustion
  • Caching Integration: WordPress transient API for performance

Integration Points

1. WordPress Core Integration

  • Admin Pages: Native WordPress admin page registration
  • REST API: WordPress REST API endpoint registration
  • Cron System: WordPress cron for scheduled tasks
  • Options API: Configuration storage using WordPress options
  • Hooks System: Comprehensive action and filter hooks

2. External API Integration

  • Google Drive API v3: Complete OAuth and file management integration
  • Authentication Flow: Secure OAuth 2.0 implementation
  • Token Management: Automatic refresh token handling
  • Error Handling: Robust API error handling and user feedback

3. Frontend Integration

  • React Components: Modern JavaScript framework integration
  • Google Drive Manager Shared-UI: Design system integration for consistency
  • AJAX Endpoints: Seamless frontend-backend communication
  • Real-time Updates: Progress tracking and status updates

🔧 Advanced Features

Keyboard Navigation

Google Drive File Manager

  • Backspace Key: Navigate one folder level back
  • Arrow Keys: Navigate through files and folders
  • Enter Key: Open selected file or folder
  • Escape Key: Close modals and dialogs
  • Tab Navigation: Accessible keyboard navigation throughout interface

Processing Modes

Foreground Processing

  • Real-time Feedback: Immediate progress updates and status information
  • Interactive Monitoring: User can monitor each step of the process
  • Error Handling: Immediate error detection and user notification
  • Resource Usage: Higher CPU usage, browser tab must remain active

Background Processing

  • Non-blocking: User can continue other work while processing continues
  • Resource Efficient: Lower CPU usage, processes continue when tab inactive
  • Queue Management: Tasks queued and processed systematically
  • Status Updates: Periodic status updates without blocking interface

Auto Scheduler Configuration

Scheduling Options

  • Daily Maintenance: Automatic daily scans at specified times
  • WordPress Cron: Reliable scheduling using WordPress cron system
  • Flexible Timing: Configure maintenance windows to minimize impact
  • Email Notifications: Optional completion and error notifications
  • Holiday/Weekend Handling: Skip maintenance during specified periods

File Upload Features

Upload Methods

  • Drag & Drop: Modern drag-and-drop file upload interface
  • File Picker: Traditional file selection dialog
  • Multiple Files: Batch upload support for multiple files
  • Progress Tracking: Real-time upload progress with percentage and speed
  • Error Recovery: Automatic retry for failed uploads

File Management

  • Preview Generation: Automatic thumbnail generation for supported files
  • Metadata Extraction: File size, type, and modification date extraction
  • Duplicate Handling: Intelligent duplicate file detection and handling
  • Folder Organization: Automatic organization based on file types

🚀 Performance Metrics

System Performance

Google Drive Operations

  • File Listing: ~2-5 seconds for 50+ files
  • File Upload: Depends on file size and connection speed
  • Folder Navigation: ~1-2 seconds average response time
  • Authentication: ~3-5 seconds for OAuth flow completion

Posts Maintenance Performance

  • Scan Speed: 100 posts per minute (average)
  • Memory Usage: ~2MB per 1000 posts processed
  • Database Queries: Optimized with batch processing
  • Background Processing: No impact on user interface responsiveness

Testing Performance

  • Test Execution: 42 tests in ~15 seconds
  • Memory Footprint: ~45MB peak usage
  • Coverage Analysis: <1 second for coverage report generation
  • CI Pipeline: ~3-5 minutes total pipeline execution

Optimization Strategies

Frontend Optimizations

  • Code Splitting: Separate bundles for different features
  • Lazy Loading: Components loaded only when needed
  • Asset Minification: 60-80% reduction in file sizes
  • Caching: Browser caching with proper cache headers

Backend Optimizations

  • Database Queries: Efficient queries with proper indexing
  • Batch Processing: Memory-efficient handling of large datasets
  • Transient Caching: WordPress transient API for performance
  • Resource Management: Automatic cleanup of temporary resources

📊 Technical Specifications

Browser Compatibility

  • Chrome: 90+ (Full support)
  • Firefox: 88+ (Full support)
  • Safari: 14+ (Full support)
  • Edge: 90+ (Full support)
  • Mobile: iOS Safari 14+, Android Chrome 90+

Server Requirements

  • PHP: 7.4+ (8.2 recommended)
  • WordPress: 6.1+ (6.4 recommended)
  • MySQL: 5.7+ or MariaDB 10.2+
  • Memory: 256MB minimum (512MB recommended)
  • Execution Time: 300 seconds for large operations
  • HTTPS: Required for Google OAuth (production)

Security Features

  • OAuth 2.0: Secure Google Drive authentication
  • Nonce Protection: All AJAX requests protected
  • Role-based Access: WordPress capability system integration
  • Input Sanitization: All user inputs sanitized and validated
  • Output Escaping: XSS prevention through proper escaping
  • SQL Injection Prevention: Prepared statements throughout

🤝 Contributing & Support

Development Standards

  • WordPress Coding Standards: Full WPCS compliance
  • PSR-12: PHP coding standard adherence
  • ESLint: JavaScript linting and formatting
  • Documentation: Comprehensive inline documentation required

Testing Requirements

  • Unit Tests: All new features must include unit tests
  • Integration Tests: Critical functionality requires integration tests
  • Code Coverage: Maintain >80% code coverage
  • Performance Tests: No degradation in performance benchmarks

Git Workflow

  1. Fork Repository: Create personal fork for development
  2. Feature Branch: Create feature branch from main/develop
  3. Commit Standards: Use conventional commit messages
  4. Pull Request: Submit PR with comprehensive description
  5. Code Review: All contributions reviewed by maintainers
  6. Testing: Automated tests must pass before merge

📝 License & Credits

License: GPL-2.0+ License - See LICENSE file for details

Credits:

  • Google Drive Manager Team Team: Development and architecture
  • WordPress Community: Foundation and best practices
  • Theme Unit Test Data: Official WordPress test data from WPTT/theme-unit-test
  • Google Drive API: File management and storage integration
  • PHPUnit Community: Testing framework and methodologies

Developed by Google Drive Manager Team - A comprehensive demonstration of advanced WordPress development capabilities including modern JavaScript frameworks, sophisticated PHP architecture, comprehensive testing strategies, and professional DevOps practices.


🎯 Summary

This plugin represents a complete, production-ready WordPress solution demonstrating:

Modern Development Practices: React, Webpack, SCSS, Composer, PHPUnit
WordPress Best Practices: Hooks, REST API, WP-CLI, Security, Performance
Professional UI/UX: Google Drive Manager Shared-UI framework + Custom modern interfaces
Comprehensive Testing: 42 tests, 127 assertions, full coverage
Advanced Architecture: Dependency management, conflict resolution, scalable design
Detailed Documentation: Complete technical documentation with visual guides
Production Ready: Security, performance, compatibility, deployment considerations

Total Development Effort: 200+ hours of sophisticated WordPress plugin development showcasing enterprise-level coding skills and modern development methodologies.

  • Scheduling: View and configure automatic daily maintenance

Modern React Interface

  • Shared UI Components: Google Drive Manager Team design system integration
  • Responsive Design: Mobile-friendly admin interfaces
  • Interactive Elements: Real-time updates and smooth transitions
  • Accessibility: WCAG compliant interface elements

🖥️ WP-CLI Commands

Posts Maintenance Commands

# Scan all posts and pages
wp wpmudev-posts-maintenance scan

# Scan specific post types with verbose output
wp wpmudev-posts-maintenance scan --post-types=post,page,product --verbose

# Dry run to preview changes
wp wpmudev-posts-maintenance scan --dry-run --batch-size=100

# Check current scan status
wp wpmudev-posts-maintenance status

# View statistics in different formats
wp wpmudev-posts-maintenance stats
wp wpmudev-posts-maintenance stats --format=json
wp wpmudev-posts-maintenance stats --format=csv

Command Options

  • --post-types=<types> - Comma-separated list of post types
  • --dry-run - Preview changes without executing
  • --batch-size=<size> - Posts per batch (default: 50)
  • --verbose - Detailed progress information
  • --format=<format> - Output format (table, json, csv, yaml)

🏗️ Development Setup

Prerequisites

  • PHP: 8.2 or higher
  • WordPress: 6.8 or higher
  • Node.js: 16.x or higher
  • Composer: 2.x or higher
  • npm: 8.x or higher

Installation

  1. Clone the Repository

    cd wp-content/plugins/
    git clone <repository-url> google-drive-manager
    cd google-drive-manager
  2. Install PHP Dependencies

    composer install
  3. Install Node.js Dependencies

    npm install
  4. Build Assets

    npm run compile
  5. Activate Plugin

    • Go to WordPress Admin → Plugins
    • Activate "Google Drive Manager"

Development Workflow

Building Assets

# Development build with file watching
npm run watch

# Production build with optimization
npm run compile

# Complete build with translation files
npm run build

Build Process Details

The plugin uses a sophisticated build system combining:

  • Webpack: Module bundling and asset optimization
  • Babel: ES6+ to ES5 transpilation
  • Sass/SCSS: CSS preprocessing and optimization
  • Grunt: Task automation and build orchestration

Development Commands

Command Purpose
npm run watch Development mode with file watching
npm run compile Production build with minification
npm run translate Generate translation files
npm run build Complete build pipeline

Asset Pipeline

  1. Source Files: Located in src/ directory
  2. Processing: Webpack processes React/JS and SCSS files
  3. Output: Compiled assets in assets/ directory
  4. Optimization: Minification, tree-shaking, and code splitting

Google Drive Setup

  1. Google Cloud Console

    • Create a new project or select existing
    • Enable Google Drive API
    • Create OAuth 2.0 credentials
  2. Configure Credentials

    • Enter Credentials to required fields
  3. Plugin Configuration

    • Go to WordPress Admin → Google Drive
    • Follow OAuth authentication flow
    • Grant necessary permissions

🏛️ Architecture

File Structure


google-drive-manager/
├── app/                          # Application logic
│   ├── admin-pages/              # WordPress admin pages
│   │   ├── class-google-drive.php
│   │   └── class-posts-maintenance.php
│   ├── cli/                      # WP-CLI commands
│   │   └── class-posts-maintenance-cli.php
│   └── endpoints/                # API endpoints
│       └── v1/
│           └── class-drive-api.php
├── assets/                       # Compiled assets
│   ├── css/                      # Compiled stylesheets
│   ├── js/                       # Compiled JavaScript
│   └── fonts/                    # Web fonts
├── core/                         # Core functionality
│   ├── class-base.php            # Base abstract class
│   ├── class-dependency-manager.php  # Conflict resolution
│   ├── class-endpoint.php        # API endpoint base
│   ├── class-loader.php          # Plugin loader
│   └── class-singleton.php       # Singleton pattern
├── src/                          # Source files
│   └── googledrive-page/         # React components
│       ├── ma

This README is longer than the copy stored here. Read the rest on GitHub →