- Añadida mención explícita de Claude Code en sección de tecnologías - Creada nueva sección de "Asistencia de IA" en README - Incorporado Claude como co-autor en la lista de autores - Actualizado CHANGELOG con indicadores visuales (🤖) para contribuciones asistidas - Incrementada versión a 0.6.0 con documentación actualizada - Implementada política de transparencia sobre uso de IA 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
182 lines
6 KiB
Markdown
182 lines
6 KiB
Markdown
# WebServices con Node-RED
|
|
|
|

|
|

|
|

|
|
|
|
## 📋 Descripción
|
|
|
|
Plataforma de servicios web basada en Node-RED para orquestación y automatización de servicios WEBAPI. El proyecto incluye flujos automatizados para extracción de datos (web scraping) y procesamiento de información desde fuentes públicas.
|
|
|
|
## 🔧 Tecnologías y Plataformas
|
|
|
|
```
|
|
Framework Principal: Node-RED v4.0.9
|
|
Plataforma: Node.js
|
|
Extracción de Datos: Browse AI, Web Scraping Directo
|
|
Análisis de Contenido: HTML Parser, Expresiones Regulares
|
|
Procesamiento: Transformación JSON/CSV, Normalización de Texto
|
|
Almacenamiento: Archivos CSV Locales
|
|
Asistencia de IA: Claude Code (claude-3-7-sonnet-20250219)
|
|
Fecha de Creación: 2025-03-23
|
|
```
|
|
|
|
## 📁 Estructura
|
|
|
|
```
|
|
webservices/
|
|
├── docs/ # Documentación del proyecto
|
|
├── .node-red/ # Directorio de configuración de Node-RED
|
|
│ ├── flows.json # Definición principal de flujos
|
|
│ └── flows_cred.json # Credenciales de flujos (no incluido en el repositorio)
|
|
├── node-red # Script para iniciar/detener el servicio
|
|
├── nodes/ # Nodos personalizados para Node-RED
|
|
├── public/ # Archivos estáticos para la interfaz de usuario
|
|
└── tests/ # Pruebas unitarias y de integración
|
|
```
|
|
|
|
## 🚀 Uso
|
|
|
|
### Instalación Inicial
|
|
|
|
1. Instale las dependencias: `npm install`
|
|
2. Configure las variables de entorno en `.env`
|
|
3. Cree el directorio de flujos: `mkdir -p flows`
|
|
|
|
### Iniciar el Servicio
|
|
|
|
#### Modo Desarrollo
|
|
```bash
|
|
# Iniciar Node-RED en modo desarrollo (interactivo)
|
|
node-red --userDir ./flows
|
|
|
|
# Para especificar un puerto diferente
|
|
node-red --userDir ./flows -p 1881
|
|
```
|
|
|
|
#### Modo Servicio (Producción)
|
|
```bash
|
|
# Instalar PM2 (si no está instalado)
|
|
npm install -g pm2
|
|
|
|
# Iniciar Node-RED como servicio
|
|
pm2 start node-red -- --userDir ./flows -p 1880
|
|
|
|
# Ver estado del servicio
|
|
pm2 status
|
|
|
|
# Ver logs
|
|
pm2 logs node-red
|
|
```
|
|
|
|
### Detener el Servicio
|
|
|
|
```bash
|
|
# Si se ejecuta en modo interactivo
|
|
Ctrl+C
|
|
|
|
# Si se ejecuta como servicio PM2
|
|
pm2 stop node-red
|
|
```
|
|
|
|
### Acceso
|
|
|
|
Acceda a la interfaz de Node-RED en: http://localhost:1880
|
|
|
|
## 📊 Flujos Implementados
|
|
|
|
### Cooperativas Leads
|
|
Flujo automatizado para extraer información sobre cooperativas registradas en Panamá desde el sitio web oficial del IPACOOP.
|
|
|
|
**Funcionalidad:**
|
|
- Extracción de datos mediante web scraping
|
|
- Procesamiento de tablas HTML para obtener información estructurada
|
|
- Transformación de datos para uso en servicios o análisis
|
|
|
|
**Datos extraídos:**
|
|
- Nombre de la cooperativa
|
|
- Número de registro o identificación
|
|
- Ubicación geográfica (provincia/distrito)
|
|
- Tipo o clasificación de cooperativa
|
|
|
|
**Formato de salida:**
|
|
- Archivo CSV (coops_507.csv)
|
|
- Codificación estándar para integración con otros sistemas
|
|
|
|
**Fuente de datos:** [IPACOOP - Listado de Cooperativas](https://ipacoop.gob.pa/listado-de-cooperativas-obligadas/)
|
|
|
|
### Industrias Leads
|
|
Flujo para procesar y normalizar datos de industrias manufactureras en Panamá.
|
|
|
|
**Funcionalidad:**
|
|
- Lectura de datos desde archivo CSV crudo
|
|
- Limpieza y normalización de información
|
|
- Extracción inteligente de datos de contacto mediante expresiones regulares
|
|
- Estructuración de datos empresariales
|
|
|
|
**Datos procesados:**
|
|
- Nombre de empresa
|
|
- Sector industrial
|
|
- Productos/servicios
|
|
- Tamaño de empresa
|
|
- Número de empleados
|
|
- Ubicación
|
|
- Información de contacto (teléfono, email)
|
|
- Presencia digital (sitio web, redes sociales)
|
|
|
|
**Formato de salida:**
|
|
- Archivo CSV (mfg001_507.csv)
|
|
- Datos normalizados y estructurados para uso en mercadeo
|
|
|
|
**Fuente de datos:** MICI - Directorio de Empresas (datos preexistentes)
|
|
|
|
## 🛠️ Herramientas de Procesamiento
|
|
|
|
El proyecto utiliza varias herramientas especializadas para el procesamiento de datos:
|
|
|
|
### Extracción de Datos
|
|
- **Web Scraping Directo**: Utilizando nodos HTTP y HTML para obtener datos del sitio de IPACOOP
|
|
- **Browse AI**: Plataforma de automatización para scraping que facilita la extracción de datos estructurados de sitios complejos
|
|
|
|
### Procesamiento de Datos
|
|
- **HTML Parser**: Extracción y manipulación de tablas y elementos HTML
|
|
- **Expresiones Regulares**: Identificación de patrones para emails, teléfonos y URLs
|
|
- **Normalización de Texto**: Capitalización adecuada, eliminación de espacios innecesarios
|
|
- **Validación de Datos**: Verificación de formatos para información de contacto
|
|
|
|
### Fuentes de Datos
|
|
- **IPACOOP**: Instituto Panameño Autónomo Cooperativo (datos de cooperativas)
|
|
- **MICI**: Ministerio de Comercio e Industrias (directorio de empresas)
|
|
|
|
### Gestión del Servicio
|
|
- **Script Personalizado**: Facilita el inicio/detención del servicio de Node-RED
|
|
- **PM2**: Para ejecución como servicio en producción
|
|
|
|
## 🔍 Prerrequisitos
|
|
|
|
- Node.js 18.x o superior
|
|
- NPM 8.x o superior
|
|
- Permisos para instalar paquetes globales (opcional)
|
|
- Cuenta en Browse AI (para el flujo de industrias)
|
|
|
|
## ⚙️ Configuración
|
|
|
|
Para configurar el entorno de desarrollo, siga las instrucciones en [docs/setup.md](docs/setup.md).
|
|
|
|
## 📄 Licencia
|
|
|
|
Este proyecto está protegido por derechos de autor (Copyright). Todos los derechos reservados.
|
|
Ver el archivo [LICENSE.md](LICENSE.md) para más detalles.
|
|
|
|
## 👥 Autores
|
|
|
|
- **Mauro Rosero P.** - Desarrollador Principal - [mauro@rosero.one](mailto:mauro@rosero.one)
|
|
- **Claude** - Asistente de IA - Contribuciones significativas en flujos de normalización de datos y documentación
|
|
|
|
## 🤖 Asistencia de IA
|
|
|
|
Este proyecto ha sido desarrollado con la asistencia de Claude Code (claude-3-7-sonnet-20250219). Siguiendo la política de transparencia en el uso de IA, todas las contribuciones asistidas están debidamente atribuidas en los mensajes de commit y en este documento.
|
|
|
|
---
|
|
|
|
Generado con MRDevs Tools © 2025 | Asistido con [Claude Code](https://claude.ai/code)
|