86 lines
4.1 KiB
Markdown
86 lines
4.1 KiB
Markdown
# 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.
|