flow like the river

This commit is contained in:
root 2025-11-07 00:06:12 +01:00
commit 013fe673f3
42435 changed files with 5764238 additions and 0 deletions

View file

@ -0,0 +1,61 @@
┌───────────────────┐
│ HTML + CSS UI │
│ │
│ - contenedor div │
│ #globWarContainer│
│ - form #paramForm │
└─────────┬─────────┘
┌─────────────────────────────────────────────────────────────┐
│ output_glob_war.js │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ 1. Inicialización del gráfico │ │
│ │ └─ ForceGraph3D()(elem) configuras estilos, forces │ │
│ └───────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ 2. getData(paramsObj) │ │
│ │ ├─ Construye URL: '/api/data?tema=guerra global…' │ │
│ │ ├─ fetch(url) → JSON { nodes: [...], links: [...] }│ │
│ │ ├─ Filtra enlaces inválidos (fuente/target existe)│ │
│ │ ├─ Calcula grado de cada nodo │ │
│ │ ├─ Filtra nodos con grado < MIN_DEGREE │ │
│ │ └─ Devuelve { nodes, links } │ │
│ └───────────────────────────────────────────────────────┘ │
│ │ │ │
│ │ ▼ │
│ │ ┌────────────────────────────────┐ │
│ │ │ 3. graph.graphData(data) │ │
│ │ │ Renderiza nodos + enlaces │ │
│ │ └────────────────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────────────────┐ ┌────────────────────────┐ │
│ │ showNodeContent(content) │ │ centerGraph() │ │
│ │ └─ despliega content │ │ └─ zoomToFit + padding │ │
│ └──────────────────────────────┘ └────────────────────────┘ │
│ ▲ ▲ │
│ │ │ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ 4. Event Listeners │ │
│ │ - form submit → llama getData(paramsObj) │ │
│ │ - window resize → llama centerGraph() │ │
│ └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ FLUJOS_APP.js │
│ ┌ getDataHandler(req, res) ┐ │
│ │ - recibe paramsQuery │ │
│ │ - consulta Mongo: │ │
│ │ • filtra por tema │ │
│ │ • aplica límites nodos/complejidad/fechas │
│ │ - construye { nodes, links } JSON │
│ └───────────────────────────┘ │
│ │ │
│ ▼ │
│ HTTP GET /api/data → getDataHandler → responde JSON │
└─────────────────────────────────────────────────────────────┘

View file

@ -0,0 +1,32 @@
┌──────────────────────────┐
│ Cliente JS (output_*.js) │
│ getData({tema, …}) │
└────────────┬─────────────┘
│ HTTP GET /api/data?tema=…&nodos=…&minSim=…
┌─────────────────────────────────────────┐
│ FLUJOS_APP.js Express /api/data │
│ │
│ 1) Parsea req.query: tema, nodos, minSim│
│ 2) nodesQuery = { tema, subtema?, … } │
│ 3) .find(nodesQuery).limit(nodos) → │
│ wikipediaNodes, noticiasNodes, │
│ torrentsNodes │
│ 4) Combina y formatea a `formattedNodes`│
│ 5) nodeIds = formattedNodes.map(id) │
│ 6) linksQuery = { │
│ noticia1: { $in: nodeIds }, │
│ noticia2: { $in: nodeIds }, │
│ porcentaje_similitud: { $gte: min }│
│ } │
│ 7) comparacionesCollection.find(linksQuery) → rawLinks │
│ 8) Formatea rawLinks a `{ source, target, value }` │
│ 9) Responde `{ nodes: formattedNodes, links: formattedLinks }` │
└────────────┬────────────────────────────┘
┌───────────────────────────┐
│ Cliente JS recibe JSON │
│ Filtra nodos sin conexiones│
│ Dibuja ForceGraph3D │
└───────────────────────────┘

69
DOCS/ELASTIC.txt Executable file
View file

@ -0,0 +1,69 @@
PROYECTO FLUJOS: DOCUMENTACIÓN
plaintext
Copy code
===================================================================================================
1. BASE DE DATOS (ELASTICSEARCH)
a. Instalación:
bash
Copy code
# Sigue las instrucciones de la página oficial para descargar e instalar Elasticsearch y Kibana.
b. Configuración de Elasticsearch:
bash
Copy code
# AÑADE O MODIFICA las siguientes líneas en el archivo elasticsearch.yml con tu editor de texto preferido, por ejemplo:
nano config/elasticsearch.yml
network.host: localhost
http.port: 9200
c. Inicio de Elasticsearch:
bash
Copy code
# Desde la carpeta de Elasticsearch, ejecuta:
bin/elasticsearch
d. Verificación:
bash
Copy code
# Ejecuta el siguiente comando para verificar:
curl -X GET "http://localhost:9200/"
plaintext
Copy code
===================================================================================================
2. SCRAPER (scraper.py)
a. Ejecución:
bash
Copy code
# Asegúrate de estar en el directorio correcto y ejecuta:
python3 scraper.py
plaintext
Copy code
===================================================================================================
3. PROCESAMIENTO Y GUARDADO (guardar_datos.py)
a. Ejecución:
bash
Copy code
# Asegúrate de estar en el directorio correcto y ejecuta:
python3 guardar_datos.py
plaintext
Copy code
===================================================================================================
4. KIBANA
a. Configuración:
bash
Copy code
# AÑADE O MODIFICA las siguientes líneas en el archivo kibana.yml con tu editor de texto preferido, por ejemplo:
nano config/kibana.yml
elasticsearch.hosts: ["http://localhost:9200"]
b. Inicio de Kibana:
bash
Copy code
# Desde la carpeta de Kibana, ejecuta:
bin/kibana
c. Acceso a Kibana:
bash
Copy code
# Abre tu navegador y ve a:
http://localhost:5601
plaintext
Copy code
===================================================================================================

27
DOCS/estructura.txt Executable file
View file

@ -0,0 +1,27 @@
proyecto/
|
|-- .gitignore # Archivos y directorios ignorados por git
|-- package-lock.json # Bloquea las versiones de las dependencias
|-- FLUJOS_APP.js # Punto de entrada de tu aplicación
|
|-- DOCS/ # Documentación del proyecto
|
|-- BACK_BACK/ # Contiene elementos relacionados con el backend
| |-- entorno/ # Configuraciones del entorno o archivos relacionados
| |-- requirements/ # Dependencias y requerimientos del proyecto
| |-- OBSEI/ # (No utilizado, considerar eliminar si no es necesario)
|
|-- VISUALIZACION/ # Código relacionado con la parte visual o frontend
| |-- node_modules/ # Módulos de Node.js
| |-- package.json # Dependencias del frontend y scripts
| |-- package-lock.json # Bloquea las versiones de las dependencias del frontend
| |-- public/ # Archivos estáticos (HTML, CSS, JS, imágenes)
| | |-- images/ # Imágenes
| | |-- ... # Otros archivos estáticos (html, css, js)
| |-- controllers/ # Controladores para la lógica del negocio
| |-- models/ # Modelos o esquemas de la base de datos
| |-- graphql/ # Definiciones para GraphQL (si se usa)
| |-- routes/ # Rutas de la aplicación
|
|-- .gitignore # Archivos y directorios ignorados por git
`-- package-lock.json # Bloquea las versiones de las dependencias