# WebServices con Node-RED ![License](https://img.shields.io/badge/License-Copyright-darkred.svg) ![Status](https://img.shields.io/badge/Status-En%20Desarrollo-yellow) ![Node-RED](https://img.shields.io/badge/Node--RED-v4.0.9-red.svg) ## 📋 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)