# 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 ``` Framework: Node-RED v4.0.9 Plataforma: Node.js 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) ## 🔍 Prerrequisitos - Node.js 18.x o superior - NPM 8.x o superior - Permisos para instalar paquetes globales (opcional) ## ⚙️ 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) --- Generado con MRDevs Tools © 2025