Curso en Udemy Laravel

Laravel 13 + ChatGPT: Comparador de Precios con Scraping

Crea un proyecto real con Laravel 13, MySQL, scraping web, providers, matching y desarrollo asistido con Chat

5.0 valoración $9.99 Acceso mediante Udemy
Comparte este curso Envíalo a alguien a quien también pueda interesarle.
5.0 $9.99 Laravel 13 + ChatGPT: Comparador de Precios con Scraping
Conoce el curso

Descripción completa

Revisa el contenido y los detalles antes de continuar a Udemy.

Disponible en Udemy Accede al curso por $9.99
Compra segura en Udemy

¿Quieres aprender Laravel desarrollando algo más completo que los típicos proyectos CRUD?

En este curso construiremos paso a paso un comparador de precios de supermercados utilizando Laravel 13, MySQL, Blade, Bootstrap y ChatGPT como asistente durante el proceso de desarrollo.

El objetivo será desarrollar una aplicación web real capaz de buscar productos, obtener información desde diferentes supermercados, almacenar y normalizar los resultados, comparar sus precios y mostrar al usuario las mejores opciones disponibles.

Durante el proyecto trabajaremos con información procedente de diferentes proveedores, implementando scraping de HTML público mediante una arquitectura desacoplada. Cada supermercado contará con su propio Provider, permitiendo mantener la lógica de cada fuente independiente del núcleo principal de nuestra aplicación.

No construiremos simplemente una página que extrae precios. Desarrollaremos una arquitectura completa que incluye persistencia en MySQL, búsqueda híbrida, normalización de productos, matching, caché, tareas programadas, tracking, administración, seguridad, SEO y despliegue.

¿Qué proyecto construiremos?

Desarrollaremos un comparador de precios donde un usuario podrá buscar productos y visualizar diferentes ofertas provenientes de supermercados integrados.

Durante el curso trabajaremos inicialmente con proveedores como Metro, Plaza Vea y Tottus, manteniendo cada integración completamente independiente.

El sistema permitirá:

  • Buscar productos desde una interfaz pública.

  • Consultar primero los productos almacenados en MySQL.

  • Obtener información externa cuando sea necesario.

  • Procesar HTML público de diferentes supermercados.

  • Extraer nombres, precios, imágenes, disponibilidad y promociones.

  • Normalizar información obtenida desde diferentes fuentes.

  • Detectar cuándo dos ofertas corresponden al mismo producto.

  • Comparar precios entre supermercados.

  • Identificar visualmente la mejor oferta disponible.

  • Almacenar productos y ofertas para reutilizarlos posteriormente.

  • Evitar solicitudes externas innecesarias.

  • Actualizar precios mediante tareas programadas.

  • Registrar búsquedas y clics realizados por los usuarios.

  • Administrar productos, proveedores y ofertas desde un panel privado.

  • Preparar las páginas públicas para SEO.

  • Desplegar el proyecto en un entorno de producción.

Laravel 13 aplicado a un proyecto real

Uno de los objetivos principales del curso es utilizar Laravel en un escenario mucho más cercano a una aplicación real.

Trabajaremos con rutas, controladores, modelos Eloquent, relaciones, migraciones, seeders, middlewares, validaciones, servicios, DTOs, caché, comandos Artisan y otras herramientas del framework.

Aprenderás a evitar controladores excesivamente grandes y a separar las diferentes responsabilidades de la aplicación utilizando servicios especializados.

Construiremos componentes encargados de tareas específicas como:

  • Normalización de búsquedas.

  • Gestión de proveedores.

  • Búsqueda de productos.

  • Persistencia de resultados.

  • Matching de productos.

  • Tracking de búsquedas.

  • Registro de ejecuciones externas.

  • Validación de enlaces de salida.

La arquitectura ha sido diseñada para que añadir una nueva tienda en el futuro no requiera modificar completamente el motor de búsqueda.

Scraping web con Laravel

Una parte importante del curso estará dedicada al scraping web aplicado a un caso práctico.

Aprenderemos a trabajar con HTML público y a desarrollar un Provider independiente para cada comercio.

Cada Provider será responsable de conocer la estructura de su propia tienda y convertir la información encontrada a un formato común que nuestra aplicación pueda comprender.

Veremos cómo:

  • Construir URLs de búsqueda.

  • Realizar solicitudes HTTP desde Laravel.

  • Procesar respuestas HTML.

  • Extraer enlaces de productos.

  • Analizar páginas individuales.

  • Obtener precios e imágenes.

  • Identificar disponibilidad.

  • Procesar promociones.

  • Controlar errores.

  • Aplicar timeouts.

  • Restringir los dominios que nuestra aplicación puede consultar.

También trabajaremos con solicitudes HTTP concurrentes para evitar ejecutar todas las consultas de forma completamente secuencial.

La aplicación utilizará diferentes etapas de consulta para obtener primero los resultados y posteriormente procesar las fichas seleccionadas.

Normalización y matching de productos

Uno de los retos más interesantes de un comparador de precios es determinar cuándo dos supermercados están mostrando exactamente el mismo producto.

Por ejemplo, una tienda podría utilizar:

Arroz Extra Costeño Bolsa 5 Kg

mientras otra podría mostrar:

Arroz Extra COSTEÑO 5Kg

Aunque los textos sean diferentes, nuestra aplicación necesita analizar diferentes atributos antes de decidir si ambas ofertas pueden compararse.

Durante el curso aprenderemos a normalizar:

  • Nombres.

  • Marcas.

  • Tildes.

  • Presentaciones.

  • Cantidades.

  • Unidades de medida.

  • Packs.

También trabajaremos con conceptos como GTIN, EAN, SKU, match keys y productos canónicos.

La aplicación seguirá una estrategia conservadora: cuando no exista suficiente información para afirmar que dos ofertas pertenecen al mismo producto, será preferible mantenerlas separadas antes que realizar una comparación incorrecta.

Búsqueda híbrida y MySQL

Nuestra aplicación no realizará scraping cada vez que un usuario escriba una búsqueda.

Construiremos un sistema donde MySQL será la primera fuente consultada.

Cuando la información almacenada sea suficientemente reciente, el usuario podrá recibir los resultados sin realizar nuevas solicitudes externas.

Cuando sea necesario actualizar la información, la aplicación podrá consultar nuevamente los Providers, almacenar los nuevos resultados y reconstruir la búsqueda utilizando la base de datos.

Con esto aprenderemos conceptos como:

  • Persistencia de información externa.

  • Frescura de datos.

  • Cooldown de búsquedas.

  • Caché.

  • Búsquedas locales.

  • Búsquedas híbridas.

  • Actualización de ofertas.

Panel administrativo

El proyecto contará con autenticación administrativa y un panel privado.

Desde esta sección podremos gestionar diferentes elementos de la aplicación.

Trabajaremos con:

  • Proveedores.

  • Productos.

  • Ofertas.

  • Estados de disponibilidad.

  • Activación y desactivación de registros.

  • Configuraciones de proveedores.

  • URLs externas.

  • Precios.

  • Información obtenida durante las actualizaciones.

Utilizaremos Blade y Bootstrap para construir la interfaz y SweetAlert2 para mejorar determinadas confirmaciones y mensajes administrativos.

El proyecto no necesitará Vite para funcionar. Bootstrap y SweetAlert2 serán utilizados mediante CDN y nuestros recursos propios podrán servirse directamente desde la carpeta public.

Tracking y analítica

También desarrollaremos mecanismos para comprender cómo se utiliza nuestra aplicación.

Podremos registrar:

  • Búsquedas realizadas.

  • Cantidad de resultados encontrados.

  • Proveedores consultados.

  • Proveedores que respondieron correctamente.

  • Tiempo utilizado durante determinadas operaciones.

  • Errores producidos por cada Provider.

  • Clics realizados hacia los supermercados.

  • Precio existente al momento del clic.

Esto nos permitirá introducir conceptos de observabilidad y analizar el comportamiento técnico del sistema.

SEO para Laravel

Una aplicación pública también necesita estar correctamente preparada para los buscadores.

Durante el proyecto trabajaremos con diferentes elementos de SEO técnico, entre ellos:

  • URLs amigables mediante slugs.

  • Meta títulos.

  • Meta descriptions.

  • URLs canonical.

  • Open Graph.

  • Sitemap XML.

  • robots.txt.

  • Páginas de productos indexables.

  • Resultados de búsqueda configurados como noindex.

  • Datos estructurados cuando la información disponible permita utilizarlos correctamente.

Seguridad y buenas prácticas

No nos limitaremos a conseguir que el proyecto funcione.

También implementaremos diferentes medidas destinadas a reducir riesgos comunes en aplicaciones web y sistemas que realizan solicitudes externas.

Trabajaremos con:

  • Validación del lado del servidor.

  • Protección CSRF.

  • Middleware de autenticación.

  • Rate limiting.

  • Validación de URLs externas.

  • Listas de hosts permitidos.

  • Protección frente a posibles solicitudes hacia dominios no autorizados.

  • Manejo de errores.

  • Timeouts.

  • Protección de credenciales.

  • Configuración segura para producción.

El scraping realizado durante el proyecto estará orientado exclusivamente al procesamiento responsable de HTML públicamente accesible. No se implementarán técnicas destinadas a evadir CAPTCHA, autenticación, controles de acceso o mecanismos anti-bot.

Desarrollo asistido con ChatGPT

A lo largo del curso utilizaremos ChatGPT como asistente durante diferentes etapas del desarrollo.

Veremos cómo apoyarnos en inteligencia artificial para:

  • Analizar requerimientos.

  • Diseñar soluciones.

  • Generar partes del código.

  • Comprender implementaciones.

  • Detectar errores.

  • Analizar mensajes de excepción.

  • Refactorizar.

  • Crear pruebas.

  • Mejorar componentes existentes.

ChatGPT será utilizado como herramienta de apoyo, mientras nosotros continuaremos tomando las decisiones sobre arquitectura, reglas de negocio y funcionamiento del proyecto.

El objetivo no será simplemente copiar código generado por inteligencia artificial, sino aprender a utilizarla dentro de un flujo de desarrollo real.

Tecnologías utilizadas

Durante el curso trabajaremos principalmente con:

  • Laravel 13.

  • PHP 8.3 o superior.

  • MySQL.

  • Blade.

  • Bootstrap 5.

  • SweetAlert2.

  • Eloquent ORM.

  • Laravel HTTP Client.

  • Laravel Cache.

  • Artisan.

  • HTML y CSS.

  • Git.

  • ChatGPT.

No utilizaremos React, Vue ni una SPA para construir la interfaz principal.

¿Qué obtendrás al finalizar?

Al finalizar el curso habrás participado en la construcción completa de una aplicación Laravel que combina desarrollo backend, base de datos, scraping web, arquitectura de software, automatización, administración, tracking y SEO.

Más importante aún, conocerás diferentes técnicas que podrás reutilizar en otros proyectos.

La arquitectura de Providers puede aplicarse a comparadores, agregadores, directorios, buscadores y aplicaciones que necesiten procesar información procedente de múltiples fuentes.

Si ya conoces los fundamentos de PHP y quieres utilizar Laravel 13 para construir un proyecto diferente, práctico y mucho más completo que un CRUD convencional, este curso está pensado para ti.

¿Tienes dudas sobre este curso?

Escríbeme directamente por WhatsApp. Puedo orientarte sobre el contenido, el nivel recomendado o resolver una consulta antes de que continúes a Udemy.

Consultar por WhatsApp
¿Listo para continuar? Accede al curso por $9.99
Compra segura en Udemy
Copy completo copiado