Skip to content

JeanBiza/Price-Agent-PCFACTORY

Repository files navigation

Price Agent PCFactory

Aplicación web que monitorea precios de productos en PCFactory y envía alertas automáticas por Telegram y Email cuando el precio cambia.

Características

  • Seguimiento de múltiples productos simultáneamente
  • Alertas automáticas por Telegram y Email al detectar cambios de precio
  • Historial de precios por producto
  • Sistema de usuarios con registro, verificación por email y login
  • Desplegado en la nube con base de datos PostgreSQL
  • Monitoreo automático semanal via GitHub Actions

Stack tecnológico

Componente Tecnología
Backend Python + Flask
Base de datos PostgreSQL (Supabase)
Frontend HTML + Bootstrap 5
Alertas email Resend API
Alertas Telegram Telegram Bot API
Hosting Render
Monitoreo automático GitHub Actions

Estructura del proyecto

Price-Agent/
├── app.py              # Servidor Flask y rutas
├── database.py         # Conexión y operaciones con PostgreSQL
├── scraper.py          # Extracción de precios desde API de PCFactory
├── notifier.py         # Envío de alertas por Telegram y Email
├── monitor.py          # Script de monitoreo (ejecutado por GitHub Actions)
├── tools.py            # Utilidades (envío de código de verificación)
├── templates/          # Templates HTML con Jinja2
│   ├── index.html
│   ├── login.html
│   ├── register.html
│   ├── verify.html
│   ├── profile.html
│   └── history.html
├── .github/
│   └── workflows/
│       └── monitor.yml # Configuración de GitHub Actions
├── requirements.txt
├── .env.example
└── .gitignore

Instalación local

1. Clonar el repositorio

git clone https://github.com/JeanBiza/Price-Agent-PCFACTORY.git
cd Price-Agent-PCFACTORY

2. Instalar dependencias

pip install -r requirements.txt

3. Configurar variables de entorno

Copia .env.example a .env y completa los valores:

cp .env.example .env
TOKEN=          # Token de tu bot de Telegram (@BotFather)
RESEND_API_KEY= # API key de Resend (resend.com)
SECRET_KEY=     # Clave secreta para Flask sessions
DATABASE_URL=   # URL de conexión a PostgreSQL (Supabase)

4. Ejecutar la aplicación

python app.py

La aplicación estará disponible en http://localhost:5000

Configuración de servicios externos

Telegram Bot

  1. Busca @BotFather en Telegram
  2. Envía /newbot y sigue los pasos
  3. Copia el token generado a TOKEN en el .env
  4. Para obtener tu chat_id, envía un mensaje a tu bot y visita: https://api.telegram.org/bot<TOKEN>/getUpdates

Resend (envío de emails)

  1. Crea una cuenta en resend.com
  2. Ve a Domains y agrega tu dominio propio
  3. Agrega los registros DNS en tu proveedor de dominio y verifica
  4. Genera una API key en API Keys
  5. Cópiala a RESEND_API_KEY en el .env
  6. Actualiza el campo from en tools.py y notifier.py con tu dominio verificado

Supabase

  1. Crea un proyecto en supabase.com
  2. Ve a Settings → Database → Connection string
  3. Copia la URL del connection pooler a DATABASE_URL en el .env

Deploy en Render

  1. Conecta tu repositorio de GitHub en render.com
  2. Crea un nuevo Web Service con la siguiente configuración:
    • Build Command: pip install -r requirements.txt
    • Start Command: gunicorn app:app
  3. Agrega las siguientes variables de entorno en la sección Environment:
TOKEN
RESEND_API_KEY
SECRET_KEY
DATABASE_URL

Monitoreo automático con GitHub Actions

El archivo .github/workflows/monitor.yml ejecuta el monitoreo automáticamente todos los lunes a las 12:00 UTC.

Para configurarlo, agrega los siguientes secrets en tu repositorio: Settings → Secrets and variables → Actions

TOKEN
RESEND_API_KEY
DATABASE_URL

Jean — @JeanBiza

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors