# vikasmv2007/smart-application-resource-monitor architecture

> Architecture diagram of the GitHub repository vikasmv2007/smart-application-resource-monitor, 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/vikasmv2007/smart-application-resource-monitor
- Repository: https://github.com/vikasmv2007/smart-application-resource-monitor

## Overview

This is a Python desktop system-resource monitor. Its main workflow is a user launching the dashboard, which periodically collects OS and per-process telemetry, then presents it in KPI cards, a searchable/sortable process table, and live charts. Users can inspect process metadata and manage process lifecycles, or record an observation window and review/export its report. The collector’s persistent process cache supports CPU interval measurements. The README documents these capabilities; sampled source excerpts confirm collection, caching, UI construction, and selected actions, but do not expose every refresh or export call.

Main entry points: [`resource_monitor.py`](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py) (System collector)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_telemetry["Telemetry collection"]
  node_collector["System collector"]
  node_cache[("Process cache")]
  node_psutil["psutil telemetry"]
end

subgraph group_dashboard["Live dashboard"]
  node_dashboard_app["Monitor dashboard"]
  node_kpis["System KPI cards"]
  node_process_table["Process table"]
  node_live_charts["Live charts"]
  node_filter_sort["Filter and sorting"]
end

subgraph group_process["Process management"]
  node_pcb_inspection["PCB inspection"]
  node_process_actions["Process actions"]
end

subgraph group_sessions["Observation reports"]
  node_session_capture["Session capture"]
  node_session_summary["Session summary"]
  node_csv_exports["CSV reports"]
end

node_user(("User"))
node_kernel["OS kernel APIs"]

node_user -->|"launches"| node_dashboard_app
node_dashboard_app -->|"creates"| node_collector
node_collector -->|"queries"| node_psutil
node_psutil -->|"queries"| node_kernel
node_collector -->|"reuses handles"| node_cache
node_collector -->|"supplies system stats"| node_kpis
node_collector -->|"supplies process rows"| node_process_table
node_collector -->|"supplies time series"| node_live_charts
node_dashboard_app -->|"filters and sorts"| node_filter_sort
node_filter_sort -->|"updates rows"| node_process_table
node_process_table -->|"opens on selection"| node_pcb_inspection
node_pcb_inspection -->|"offers actions"| node_process_actions
node_dashboard_app -->|"records metrics"| node_session_capture
node_session_capture -->|"computes averages and peaks"| node_session_summary
node_session_summary -->|"exports reports"| node_csv_exports

click node_dashboard_app "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py"
click node_collector "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py"
click node_cache "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py"
click node_kpis "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py"
click node_process_table "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py"
click node_live_charts "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py"
click node_filter_sort "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py"
click node_pcb_inspection "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py"
click node_process_actions "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py"
click node_session_capture "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py"
click node_session_summary "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py"
click node_csv_exports "https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.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_cache,node_psutil,node_user toneBlue
class node_dashboard_app,node_kpis,node_process_table,node_live_charts,node_filter_sort toneAmber
class node_pcb_inspection,node_process_actions,node_kernel toneMint
class node_session_capture,node_session_summary,node_csv_exports toneRose
```

## Components

### Telemetry collection

- [System collector](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`
- [Process cache](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`
- **psutil telemetry**

### Live dashboard

- [Monitor dashboard](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`
- [System KPI cards](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`
- [Process table](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`
- [Live charts](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`
- [Filter and sorting](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`

### Process management

- [PCB inspection](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`
- [Process actions](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`

### Observation reports

- [Session capture](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`
- [Session summary](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`
- [CSV reports](https://github.com/vikasmv2007/smart-application-resource-monitor/blob/main/resource_monitor.py): `resource_monitor.py`

### Other components

- **User**
- **OS kernel APIs**

## Connections

- User → Monitor dashboard: launches (evidence: `README.md`)
- Monitor dashboard → System collector: creates (evidence: `resource_monitor.py`)
- System collector → psutil telemetry: queries (evidence: `resource_monitor.py`)
- psutil telemetry → OS kernel APIs: queries (evidence: `README.md`)
- System collector → Process cache: reuses handles (evidence: `resource_monitor.py`)
- System collector → System KPI cards: supplies system stats (evidence: `README.md`)
- System collector → Process table: supplies process rows (evidence: `README.md`)
- System collector → Live charts: supplies time series (evidence: `README.md`)
- Monitor dashboard → Filter and sorting: filters and sorts (evidence: `resource_monitor.py`)
- Filter and sorting → Process table: updates rows (evidence: `resource_monitor.py`)
- Process table → PCB inspection: opens on selection (evidence: `README.md`)
- PCB inspection → Process actions: offers actions (evidence: `README.md`)
- Monitor dashboard → Session capture: records metrics (evidence: `README.md`)
- Session capture → Session summary: computes averages and peaks (evidence: `README.md`)
- Session summary → CSV reports: exports reports (evidence: `README.md`)
