webservices/README.md
Mauro Rosero P. 6b6e9723b9
[IMPROVED] Documentación detallada sobre herramientas y plataformas
- Añadida sección dedicada a herramientas de procesamiento en README
- Documentada la integración con Browse AI y técnicas de web scraping
- Detallado el uso de expresiones regulares para procesamiento de datos
- Especificadas las fuentes de datos (IPACOOP y MICI)
- Expandida la sección de tecnologías con información completa
- Actualizado CHANGELOG.md a versión 0.5.0

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-03-28 00:37:07 -05:00

176 lines
5.5 KiB
Markdown

# 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
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)
---
Generado con MRDevs Tools © 2025