Skip to content

09. Component Diagram (C4 Nivel 3)

Fase: 05 — Diseño Arquitectónico
Entregable: 09
Proyecto: NoteVault (PC, Mac, Android, iPhone)


1. Diagrama de Componentes C4 Nivel 3

graph TD
    subgraph Proceso Principal Electron (Node.js Core)
        REG["api/registry.ts (IPC Dispatcher)"]
        STATE["api/appState.ts (AppState)"]
        VMGR["core/vaultManager.ts (VaultManager)"]
        NSVC["core/notesService.ts (NotesService)"]

        subgraph Gestores de Módulos
            HMGR["HabitManager"]
            TMGR["TaskManager"]
            PMGR["ProjectManager"]
            EMGR["ExerciseManager"]
            FMGR["FinanceManager"]
            SMGR["StudySRSManager"]
            MMGR["MentorPlanBuild"]
            WMGR["WebStore"]
        end
    end

    subgraph Interfaz de Usuario (React 19 + Zustand)
        BRIDGE["lib/bridge.ts (Client API Bridge)"]
        STORES["store/ (Zustand Stores)"]
        UI_VIEWS["components/ (React Views & Tabs)"]
        EDITOR["CodeMirror 6 / Milkdown (Editor)"]
    end

    UI_VIEWS --> BRIDGE
    EDITOR --> BRIDGE
    BRIDGE -->|IPC nv.invoke| REG
    REG --> STATE
    STATE --> VMGR
    STATE --> NSVC
    STATE --> HMGR
    STATE --> TMGR
    STATE --> PMGR
    STATE --> EMGR
    STATE --> FMGR
    STATE --> SMGR
    STATE --> MMGR
    STATE --> WMGR

2. Marco Conceptual: Componente Arquitectónico C4

1. **Entidad principal e independiente.** 2. **Es la entidad líder del conjunto de datos:** posee un identificador global único que fija un módulo de código ejecutable (`c4_component_id`: `C4-COMP-REGISTRY-DISPATCHER`) consultado en los diagramas de dependencias. 3. **Existe por sí misma como unidad de código cohesiva sin depender de la UI que la invoca**, y es la única responsable de encapsular la lógica de su submódulo funcional. 4. **Punto de entrada y límite de consistencia:** Expone una interfaz pública tipada hacia los demás componentes.