flow like the river
This commit is contained in:
commit
013fe673f3
42435 changed files with 5764238 additions and 0 deletions
61
DOCS/ARQUITECTURA_CLIENTE_JS.txt
Normal file
61
DOCS/ARQUITECTURA_CLIENTE_JS.txt
Normal 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 │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
32
DOCS/ARQUITECTURA_FLUJOS_APP_JS.txt
Normal file
32
DOCS/ARQUITECTURA_FLUJOS_APP_JS.txt
Normal 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
69
DOCS/ELASTIC.txt
Executable 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
27
DOCS/estructura.txt
Executable 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue