Files
backPRO/GEMINI.md

4.1 KiB

GEMINI.md - BackPRO (SEO Management System)

Project Overview

BackPRO is a custom PHP-based SEO management system designed to automate the management and content generation for a network of WordPress satellite sites. It leverages the WordPress REST API, OpenAI for content generation, and various image APIs (like Freepik) to create and publish SEO-optimized articles.

Core Technologies

  • Language: PHP 8.3+ (Strict Types enabled)
  • Framework: Custom MVC architecture (no external framework like Laravel/Symfony)
  • Database: MySQL/MariaDB (via PDO)
  • Frontend: Bootstrap 5, Vanilla CSS/JS, PHP Templates
  • Integrations:
    • WordPress REST API (via Application Passwords)
    • OpenAI API (GPT models for content)
    • Freepik/Unsplash/Pexels APIs (for images)
    • Semstorm/DataForSeo (for SEO metrics)
  • Dependencies: Managed via Composer (guzzlehttp/guzzle, phpdotenv)

Architecture & Structure

The project follows a standard MVC pattern with a clear separation of concerns:

  • index.php: Front Controller - entry point for all web requests.
  • src/Core/: The "engine" of the application.
    • App.php: Application bootstrapper.
    • Router.php: Maps URLs to controllers (defined in config/routes.php).
    • Model.php: Base class for database interactions using PDO.
    • Controller.php: Base class for all controllers.
    • Auth.php: Session-based authentication system.
  • src/Controllers/: Contains application logic (Auth, Dashboard, Sites, Topics, Articles, etc.).
  • src/Models/: Database entity representations.
  • src/Services/: External API clients and complex business logic (e.g., WordPressService, OpenAIService, PublisherService).
  • templates/: PHP-based view templates.
  • cron/: Scripts designed for CLI execution via system cron jobs (automated publishing).
  • migrations/: SQL files for database schema evolution.

Development Guidelines

1. Coding Standards

  • Naming: Follow PSR-4 for class autoloading (Namespace App\ maps to src/).
  • Database: Always use Prepared Statements via src/Core/Database.php or src/Core/Model.php to prevent SQL Injection.
  • Security:
    • Use htmlspecialchars() in templates for XSS protection.
    • Passwords must be hashed using bcrypt (via password_hash).
    • API keys and sensitive data belong in the .env file.
  • Error Handling: Use App\Helpers\Logger for logging application events and errors. Logs are stored in storage/logs/.

2. Working with Models

Models extend App\Core\Model and should contain methods for specific data retrieval. Use $this->db (a PDO instance) for queries.

3. Adding Routes

New endpoints must be registered in config/routes.php. Format: $router->METHOD('/path', 'ControllerName', 'methodName').

4. Integration Logic

Place logic for interacting with external services in the src/Services/ directory. These should be designed as reusable components.


Deployment & Running

Environment Setup

  1. PHP: Ensure PHP 8.1+ is installed.
  2. Composer: Run composer install to install dependencies.
  3. Configuration: Copy .env.example to .env and fill in:
    • Database credentials (DB_HOST, DB_NAME, DB_USER, DB_PASS)
    • API Keys (OPENAI_API_KEY, FREEPIK_API_KEY, etc.)
  4. Database: Execute SQL scripts from the migrations/ directory in order.

Commands & Scripts

  • Web Interface: Accessible via a web server pointing to the root directory (ensure .htaccess is respected).
  • Automation (CRON):
    • php cron/publish.php - Triggers the automated publishing cycle.
    • php cron/semstorm.php - Syncs SEO metrics.

Key Features

  • WordPress Site CRUD: Add and manage WP instances.
  • Topic Balancer: Ensures content is distributed evenly across assigned topics.
  • AI Content Engine: Generates unique articles with contextual images.
  • Remote Installer: Automates the installation of WordPress and themes on remote servers.
  • SEO Analytics: Tracks visibility and indexing status via third-party services.