Descripción General

Este proyecto es una aplicación web CRUD desarrollada en PHP 8, con arquitectura por capas y principios SOLID, que consume una API externa, almacena los resultados en base de datos y permite mejorar los registros categorizados como bad hasta convertirlos en medium o good.

Incluye:

  1. Carga inicial de datos desde la API
  2. Barridos de mejora hasta eliminar todos los registros bad
  3. Interfaz web para gestión CRUD
  4. API interna para operaciones desde cURL

Estructura del Proyecto

/proyecto-api-crud/ ├── config/ │ └── database.php # Configuración de conexión a la BD (usa .env) ├── src/ │ ├── Controllers/ # Controladores que reciben y responden las peticiones HTTP │ ├── Services/ # Lógica de negocio (API externa, mejoras, etc.) │ ├── Repositories/ # Acceso a la base de datos │ ├── Models/ # Representación de las entidades (ApiResult) │ ├── DTOs/ # Objetos de transferencia de datos (ApiResponseDTO) │ └── Exceptions/ # Manejo de errores personalizados ├── public/ │ ├── index.php # Punto de entrada de la aplicación y ruteo básico │ ├── index.html # Interfaz web principal │ ├── app.js # Lógica frontend (fetch API interna, eventos) │ └── styles.css # Estilos de la interfaz ├── scripts/ │ └── initialize_db.php # Script para crear base de datos y tablas ├── vendor/ # Dependencias instaladas con Composer ├── .env # Variables de entorno (no subir a git) ├── composer.json # Configuración de dependencias

Tecnologías Usadas

Backend: PHP 8 + PDO + Composer Frontend: HTML, CSS, JavaScript puro Dependencias: guzzlehttp/guzzle: cliente HTTP para consumir API externa. vlucas/phpdotenv: manejo de variables de entorno.

Requisitos Previos

PHP 8.0+ MySQL Composer Servidor web XAMPP para entorno local (incluye Apache, PHP y MySQL)

Instalación y Configuración

  1. Clonar el repositorio git clone https://github.com/RafaelBetancur/prueba-tecnica-php-crud-api.git cd prueba-tecnica-php-crud-api
  2. Instalar dependencias composer install