# deymar0118-max/communitylab-g10-grupo_34- architecture

> Architecture diagram of the GitHub repository deymar0118-max/communitylab-g10-grupo_34-, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-24). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/deymar0118-max/communitylab-g10-grupo_34-
- Repository: https://github.com/deymar0118-max/communitylab-g10-grupo_34-

## Overview

CommunityLab se plantea como un motor que convierte interacciones de comunidades digitales en activos de marketing trazables: recibe lotes, valida cada registro, analiza los válidos, genera publicaciones y resúmenes, y los somete a persistencia y curaduría. `validador.py` implementa el aislamiento de registros inválidos y `esquemas.py` define los contratos de datos. El README describe además la API, los agentes, OCI y el panel, pero sus implementaciones no aparecen en el árbol; esas conexiones reflejan la arquitectura documentada, no llamadas verificadas en código.

Main entry points: [`validador.py`](https://github.com/deymar0118-max/communitylab-g10-grupo_34-/blob/main/validador.py) (Validador local), [`data/raw/lote_prueba_01.json`](https://github.com/deymar0118-max/communitylab-g10-grupo_34-/blob/main/data/raw/lote_prueba_01.json) (Lotes crudos), [`esquemas.py`](https://github.com/deymar0118-max/communitylab-g10-grupo_34-/blob/main/esquemas.py) (Esquemas Pydantic)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ingest["Ingesta y validación"]
  node_api["API de ingesta"]
  node_rawfiles["Lotes crudos"]
  node_validator["Validador local<br/>[validador.py]"]
  node_valid["Interacciones válidas"]
  node_audit["Registros rechazados"]
end

subgraph group_analysis["Análisis y contenido"]
  node_agents["Agentes LLM"]
  node_analysisresult["Análisis cognitivo"]
  node_generation["Generación de activos"]
  node_assets["LinkedIn y resumen"]
end

subgraph group_review["Curaduría y persistencia"]
  node_oci[("OCI Object Storage")]
  node_panel["Panel Streamlit"]
  node_curator(("Curador humano"))
  node_approved["Revisión aprobada"]
end

subgraph group_contracts["Contratos de datos"]
  node_schemas["Esquemas Pydantic<br/>[esquemas.py]"]
end

node_sources(("n8n / webhook / manual"))

node_sources -->|"envía lote"| node_api
node_api -->|"guarda lote"| node_rawfiles
node_rawfiles -->|"lee lote"| node_validator
node_validator -->|"valida con"| node_schemas
node_validator -->|"separa válidos"| node_valid
node_validator -->|"aísla fallidos"| node_audit
node_valid -->|"envía válidos"| node_agents
node_agents -->|"produce análisis"| node_analysisresult
node_analysisresult -->|"orienta generación"| node_generation
node_generation -->|"produce activos"| node_assets
node_assets -->|"persiste borrador"| node_oci
node_assets -->|"presenta borrador"| node_panel
node_panel -->|"solicita revisión"| node_curator
node_curator -->|"decide"| node_panel
node_panel -->|"registra aprobación"| node_approved
node_approved -->|"sincroniza revisión"| node_oci

click node_rawfiles "https://github.com/deymar0118-max/communitylab-g10-grupo_34-/blob/main/data/raw/lote_prueba_01.json"
click node_validator "https://github.com/deymar0118-max/communitylab-g10-grupo_34-/blob/main/validador.py"
click node_schemas "https://github.com/deymar0118-max/communitylab-g10-grupo_34-/blob/main/esquemas.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_api,node_rawfiles,node_validator,node_valid,node_audit toneBlue
class node_agents,node_analysisresult,node_generation,node_assets toneAmber
class node_oci,node_panel,node_curator,node_approved,node_sources toneMint
class node_schemas toneRose
```

## Components

### Ingesta y validación

- **API de ingesta**
- [Lotes crudos](https://github.com/deymar0118-max/communitylab-g10-grupo_34-/blob/main/data/raw/lote_prueba_01.json): `data/raw/lote_prueba_01.json`
- [Validador local](https://github.com/deymar0118-max/communitylab-g10-grupo_34-/blob/main/validador.py): `validador.py`
- **Interacciones válidas**
- **Registros rechazados**

### Análisis y contenido

- **Agentes LLM**
- **Análisis cognitivo**
- **Generación de activos**
- **LinkedIn y resumen**

### Curaduría y persistencia

- **OCI Object Storage**
- **Panel Streamlit**
- **Curador humano**
- **Revisión aprobada**

### Contratos de datos

- [Esquemas Pydantic](https://github.com/deymar0118-max/communitylab-g10-grupo_34-/blob/main/esquemas.py): `esquemas.py`

### Other components

- **n8n / webhook / manual**

## Connections

- n8n / webhook / manual → API de ingesta: envía lote
- API de ingesta → Lotes crudos: guarda lote
- Lotes crudos → Validador local: lee lote
- Validador local → Esquemas Pydantic: valida con
- Validador local → Interacciones válidas: separa válidos
- Validador local → Registros rechazados: aísla fallidos
- Interacciones válidas → Agentes LLM: envía válidos
- Agentes LLM → Análisis cognitivo: produce análisis
- Análisis cognitivo → Generación de activos: orienta generación
- Generación de activos → LinkedIn y resumen: produce activos
- LinkedIn y resumen → OCI Object Storage: persiste borrador
- LinkedIn y resumen → Panel Streamlit: presenta borrador
- Panel Streamlit → Curador humano: solicita revisión
- Curador humano → Panel Streamlit: decide
- Panel Streamlit → Revisión aprobada: registra aprobación
- Revisión aprobada → OCI Object Storage: sincroniza revisión
