Se busca un desarrollador experto para crear un sistema automatizado de scraping de precios, diseñado para monitorear y comparar el costo de productos específicos en tiendas de Cuernavaca. El objetivo principal es consolidar esta información en Google Sheets y generar reportes DIARIOS enviados a través de Telegram.
Arquitectura Técnica Requerida (No negociable):
* Lenguaje de Programación: Python 3.10+.
* Infraestructura de Ejecución: GitHub Actions (para cron jobs, con costo $0 en la etapa inicial). No se aceptarán VPS ni servidores externos.
* Tecnología de Scraping: Playwright y playwright-stealth para asegurar la evasión de bloqueos y una extracción de datos eficiente.
* Base de Datos/Backend: Google Sheets API (utilizando la librería gspread) para el almacenamiento y gestión de datos.
* Sistema de Notificaciones: Telegram Bot API para el envío de mensajes y FPDF2 para la generación de reportes adjuntos en formato PDF.
Flujo Operativo del Script:
El script se ejecutará automáticamente mediante un Cron Job configurado en GitHub Actions, siguiendo la siguiente secuencia:
1. Extracción de Datos: El sistema consultará precios en tiendas locales, con prioridad en 'Tienda X'. Es crucial que el scraper esté configurado para obtener datos específicos de Cuernavaca, incluyendo el manejo de cookies y parámetros geográficos.
2. Normalización de Datos: Se implementará Fuzzy Matching (utilizando la librería TheFuzz) para comparar y unificar los nombres de productos de diferentes fuentes bajo un 'ID Maestro', garantizando la coherencia de los datos.
3. Persistencia de Datos: Los resultados obtenidos se escribirán en una hoja de Google Sheets, manteniendo un registro histórico diario que incluya la Fecha, Producto, Tienda y Precio.
4. Generación de Reporte: Se creará un documento PDF resumen que contendrá una tabla con las mejores opciones de precios del día.
5. Notificación por Telegram: Se enviará un mensaje a través de un bot de Telegram que incluirá:
* Un resumen de las tres mejores ofertas encontradas.
* Una alerta si el precio de algún producto ha disminuido más del 10% respecto a su promedio histórico.
* El archivo PDF del reporte adjunto.
Entregables Obligatorios:
Para la finalización exitosa del proyecto, el desarrollador deberá proporcionar:
* Acceso al Repositorio Privado: El código fuente debe estar completamente documentado y ser accesible.
* Archivo
requirements.txt: Un archivo que liste todas las librerías utilizadas con sus versiones estables.
* Configuración de GitHub Secrets: Una explicación clara sobre cómo configurar y dónde almacenar el TELEGRAM_TOKEN y las credenciales de Google.
* Dashboard de Google Sheets: Una hoja de cálculo de Google Sheets configurada con:
* Una pestaña dedicada a los datos crudos extraídos.
* Una pestaña de análisis que incluya gráficas de tendencia y un sistema de semáforo de precios para una visualización rápida.
* Manual de Usuario: Un manual detallado que explique el funcionamiento del sistema y cómo gestionarlo.
Plazo de Entrega: No definido