webservices/README.md
Mauro Rosero P. 1afbbfeee8
[IMPROVED] Actualización de README con instrucciones para proyectos Node-RED
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-01 18:33:37 -05:00

189 lines
6 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
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
│ └── settings.js # Configuración de Node-RED
├── node-red # Script para iniciar/detener el servicio
├── 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` (si aplica)
### Iniciar el Servicio
#### Modo Desarrollo
```bash
# Iniciar Node-RED en modo desarrollo (interactivo)
node-red
# Para especificar un puerto diferente
node-red -p 1881
```
#### Modo con Proyectos (Recomendado)
```bash
# Iniciar Node-RED con soporte para proyectos
node-red
# Acceder a la interfaz y seleccionar el proyecto "webservices"
# en el menú de gestión de proyectos
```
#### Modo Servicio (Producción)
```bash
# Instalar PM2 (si no está instalado)
npm install -g pm2
# Iniciar Node-RED como servicio
pm2 start node-red -- -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)