# n3x4r6h/linuxpulse architecture

> Architecture diagram of the GitHub repository n3x4r6h/linuxpulse, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/n3x4r6h/linuxpulse
- Repository: https://github.com/n3x4r6h/linuxpulse

## Overview

LINUXPULSE is a desktop system-monitoring dashboard. The main workflow acquires host and process data, parses it into a canonical snapshot, coordinates analytics and GUI updates, then presents live metrics, process tables, alerts, and historical charts. Mock sampling is also supported. The README documents the queue/threading flow and major features; source excerpts and the SOURCE INDEX provide additional module relationships, but some implementation details are unsampled.

Main entry points: [`main.py`](https://github.com/n3x4r6h/linuxpulse/blob/main/main.py) (App Controller), [`collector/top_collector.py`](https://github.com/n3x4r6h/linuxpulse/blob/main/collector/top_collector.py) (System Collector), [`gui/dashboard.py`](https://github.com/n3x4r6h/linuxpulse/blob/main/gui/dashboard.py) (Dashboard Views), [`analytics/engine.py`](https://github.com/n3x4r6h/linuxpulse/blob/main/analytics/engine.py) (Analytics Engine)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_acquisition["Data Acquisition"]
  node_collector["System Collector<br/>[top_collector.py]"]
  node_parsers["Platform Parsers<br/>[parser.py]"]
end

subgraph group_runtime["Application Runtime"]
  node_controller["App Controller<br/>[main.py]"]
  node_mock["Mock Sampler<br/>[main.py]"]
  node_queue["Snapshot Queue<br/>[main.py]"]
  node_config["App Configuration<br/>[config.py]"]
  node_models["Snapshot Models<br/>[models.py]"]
end

subgraph group_analysis["Analytics"]
  node_analytics["Analytics Engine<br/>[engine.py]"]
end

subgraph group_presentation["Dashboard Presentation"]
  node_dashboard["Dashboard Views<br/>[dashboard.py]"]
  node_processes["Process Table<br/>[process_table.py]"]
end

subgraph group_visualization["Visualization"]
  node_charts["Historical Charts<br/>[plots.py]"]
end

node_user(("Desktop User"))
node_host["Host System"]

node_user -->|"views"| node_dashboard
node_host -->|"provides metrics"| node_collector
node_collector -->|"parses output"| node_parsers
node_collector -->|"publishes snapshots"| node_queue
node_mock -->|"publishes samples"| node_queue
node_queue -->|"transfers snapshots"| node_controller
node_controller -->|"starts sampling"| node_collector
node_controller -->|"selects demo mode"| node_mock
node_controller -->|"uses settings"| node_config
node_controller -->|"builds snapshots"| node_models
node_controller -->|"processes measurements"| node_analytics
node_controller -->|"supplies view state"| node_dashboard
node_analytics -->|"returns statistics and alerts"| node_controller
node_dashboard -->|"renders process rows"| node_processes
node_dashboard -->|"updates charts"| node_charts

click node_collector "https://github.com/n3x4r6h/linuxpulse/blob/main/collector/top_collector.py"
click node_parsers "https://github.com/n3x4r6h/linuxpulse/blob/main/collector/parser.py"
click node_controller "https://github.com/n3x4r6h/linuxpulse/blob/main/main.py"
click node_mock "https://github.com/n3x4r6h/linuxpulse/blob/main/main.py"
click node_queue "https://github.com/n3x4r6h/linuxpulse/blob/main/main.py"
click node_config "https://github.com/n3x4r6h/linuxpulse/blob/main/config.py"
click node_models "https://github.com/n3x4r6h/linuxpulse/blob/main/models.py"
click node_analytics "https://github.com/n3x4r6h/linuxpulse/blob/main/analytics/engine.py"
click node_dashboard "https://github.com/n3x4r6h/linuxpulse/blob/main/gui/dashboard.py"
click node_processes "https://github.com/n3x4r6h/linuxpulse/blob/main/gui/process_table.py"
click node_charts "https://github.com/n3x4r6h/linuxpulse/blob/main/visualization/plots.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_collector,node_parsers,node_user toneBlue
class node_controller,node_mock,node_queue,node_config,node_models toneAmber
class node_analytics toneMint
class node_dashboard,node_processes toneRose
class node_charts,node_host toneIndigo
```

## Components

### Data Acquisition

- [System Collector](https://github.com/n3x4r6h/linuxpulse/blob/main/collector/top_collector.py): `collector/top_collector.py`
- [Platform Parsers](https://github.com/n3x4r6h/linuxpulse/blob/main/collector/parser.py): `collector/parser.py`

### Application Runtime

- [App Controller](https://github.com/n3x4r6h/linuxpulse/blob/main/main.py): `main.py`
- [Mock Sampler](https://github.com/n3x4r6h/linuxpulse/blob/main/main.py): `main.py`
- [Snapshot Queue](https://github.com/n3x4r6h/linuxpulse/blob/main/main.py): `main.py`
- [App Configuration](https://github.com/n3x4r6h/linuxpulse/blob/main/config.py): `config.py`
- [Snapshot Models](https://github.com/n3x4r6h/linuxpulse/blob/main/models.py): `models.py`

### Analytics

- [Analytics Engine](https://github.com/n3x4r6h/linuxpulse/blob/main/analytics/engine.py): `analytics/engine.py`

### Dashboard Presentation

- [Dashboard Views](https://github.com/n3x4r6h/linuxpulse/blob/main/gui/dashboard.py): `gui/dashboard.py`
- [Process Table](https://github.com/n3x4r6h/linuxpulse/blob/main/gui/process_table.py): `gui/process_table.py`

### Visualization

- [Historical Charts](https://github.com/n3x4r6h/linuxpulse/blob/main/visualization/plots.py): `visualization/plots.py`

### Other components

- **Desktop User**
- **Host System**

## Connections

- Desktop User → Dashboard Views: views (evidence: `README.md`)
- Host System → System Collector: provides metrics (evidence: `README.md`)
- System Collector → Platform Parsers: parses output (evidence: `collector/top_collector.py`)
- System Collector → Snapshot Queue: publishes snapshots (evidence: `README.md`)
- Mock Sampler → Snapshot Queue: publishes samples (evidence: `README.md`)
- Snapshot Queue → App Controller: transfers snapshots (evidence: `README.md`)
- App Controller → System Collector: starts sampling (evidence: `README.md`)
- App Controller → Mock Sampler: selects demo mode (evidence: `README.md`)
- App Controller → App Configuration: uses settings (evidence: `main.py`)
- App Controller → Snapshot Models: builds snapshots (evidence: `main.py`)
- App Controller → Analytics Engine: processes measurements (evidence: `main.py`)
- App Controller → Dashboard Views: supplies view state (evidence: `README.md`)
- Analytics Engine → App Controller: returns statistics and alerts (evidence: `README.md`)
- Dashboard Views → Process Table: renders process rows (evidence: `gui/dashboard.py`)
- Dashboard Views → Historical Charts: updates charts (evidence: `gui/dashboard.py`)
