Aplicación web que monitorea precios de productos en PCFactory y envía alertas automáticas por Telegram y Email cuando el precio cambia.
- 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
| 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 |
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
git clone https://github.com/JeanBiza/Price-Agent-PCFACTORY.git
cd Price-Agent-PCFACTORYpip install -r requirements.txtCopia .env.example a .env y completa los valores:
cp .env.example .envTOKEN= # 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)python app.pyLa aplicación estará disponible en http://localhost:5000
- Busca
@BotFatheren Telegram - Envía
/newboty sigue los pasos - Copia el token generado a
TOKENen el.env - Para obtener tu
chat_id, envía un mensaje a tu bot y visita:https://api.telegram.org/bot<TOKEN>/getUpdates
- Crea una cuenta en resend.com
- Ve a Domains y agrega tu dominio propio
- Agrega los registros DNS en tu proveedor de dominio y verifica
- Genera una API key en API Keys
- Cópiala a
RESEND_API_KEYen el.env - Actualiza el campo
fromentools.pyynotifier.pycon tu dominio verificado
- Crea un proyecto en supabase.com
- Ve a Settings → Database → Connection string
- Copia la URL del connection pooler a
DATABASE_URLen el.env
- Conecta tu repositorio de GitHub en render.com
- Crea un nuevo Web Service con la siguiente configuración:
- Build Command:
pip install -r requirements.txt - Start Command:
gunicorn app:app
- Build Command:
- Agrega las siguientes variables de entorno en la sección Environment:
TOKEN
RESEND_API_KEY
SECRET_KEY
DATABASE_URL
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