# verticalpartsia/asset-manager architecture

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

- Interactive diagram: https://gitdiagram.com/verticalpartsia/asset-manager
- Repository: https://github.com/verticalpartsia/asset-manager

## Overview

Asset Manager is an internal equipment and IT-support portal. Staff use the web app to manage assets, allocations, inventory, support tickets, checklists, and audit/reporting; the README documents Supabase as its backend. The sampled integration implements SSO and hybrid persistence, while the sampled domain modules provide UID and SLA rules. The main UI is represented by the existing public/index.html; its contents were not sampled, so detailed UI-to-backend calls and several documented features cannot be verified here.

Main entry points: [`public/index.html`](https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html) (Asset Manager UI), [`public/vp-integration.js`](https://github.com/verticalpartsia/asset-manager/blob/main/public/vp-integration.js) (SSO and sync), [`server.js`](https://github.com/verticalpartsia/asset-manager/blob/main/server.js) (Static web server), [`public/js/domain/uid.js`](https://github.com/verticalpartsia/asset-manager/blob/main/public/js/domain/uid.js) (UID rules)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Portal workflows"]
  node_webapp["Asset Manager UI<br/>[index.html]"]
  node_asset_ops["Asset management<br/>[index.html]"]
  node_allocations["Allocations and returns<br/>[index.html]"]
  node_stock["Supply inventory<br/>[index.html]"]
  node_support["Support and knowledge<br/>[index.html]"]
  node_checklists["Care checklists<br/>[index.html]"]
  node_reports_audit["Reports and audit<br/>[index.html]"]
end

subgraph group_domain["Domain rules"]
  node_uid_rules["UID rules<br/>[uid.js]"]
  node_sla_rules["SLA rules<br/>[sla.js]"]
end

subgraph group_backend["Identity and data"]
  node_integration["SSO and sync<br/>[vp-integration.js]"]
  node_supabase[("Supabase services")]
  node_web_server["Static web server<br/>[server.js]"]
end

node_staff(("Portal users"))

node_staff -->|"uses"| node_webapp
node_webapp -->|"manages"| node_asset_ops
node_webapp -->|"assigns"| node_allocations
node_webapp -->|"tracks"| node_stock
node_webapp -->|"handles"| node_support
node_webapp -->|"confirms"| node_checklists
node_webapp -->|"reports"| node_reports_audit
node_asset_ops -->|"generates UIDs"| node_uid_rules
node_support -->|"classifies SLA"| node_sla_rules
node_staff -->|"presents SSO token"| node_integration
node_integration -->|"authenticates and syncs"| node_supabase
node_web_server -->|"serves"| node_webapp

click node_webapp "https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html"
click node_asset_ops "https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html"
click node_allocations "https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html"
click node_stock "https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html"
click node_support "https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html"
click node_checklists "https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html"
click node_reports_audit "https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html"
click node_uid_rules "https://github.com/verticalpartsia/asset-manager/blob/main/public/js/domain/uid.js"
click node_sla_rules "https://github.com/verticalpartsia/asset-manager/blob/main/public/js/domain/sla.js"
click node_integration "https://github.com/verticalpartsia/asset-manager/blob/main/public/vp-integration.js"
click node_web_server "https://github.com/verticalpartsia/asset-manager/blob/main/server.js"

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_webapp,node_asset_ops,node_allocations,node_stock,node_support,node_checklists,node_reports_audit,node_staff toneBlue
class node_uid_rules,node_sla_rules toneAmber
class node_integration,node_supabase,node_web_server toneMint
```

## Components

### Portal workflows

- [Asset Manager UI](https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html): `public/index.html`
- [Asset management](https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html): `public/index.html`
- [Allocations and returns](https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html): `public/index.html`
- [Supply inventory](https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html): `public/index.html`
- [Support and knowledge](https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html): `public/index.html`
- [Care checklists](https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html): `public/index.html`
- [Reports and audit](https://github.com/verticalpartsia/asset-manager/blob/main/public/index.html): `public/index.html`

### Domain rules

- [UID rules](https://github.com/verticalpartsia/asset-manager/blob/main/public/js/domain/uid.js): `public/js/domain/uid.js`
- [SLA rules](https://github.com/verticalpartsia/asset-manager/blob/main/public/js/domain/sla.js): `public/js/domain/sla.js`

### Identity and data

- [SSO and sync](https://github.com/verticalpartsia/asset-manager/blob/main/public/vp-integration.js): `public/vp-integration.js`
- **Supabase services**
- [Static web server](https://github.com/verticalpartsia/asset-manager/blob/main/server.js): `server.js`

### Other components

- **Portal users**

## Connections

- Portal users → Asset Manager UI: uses (evidence: `README.md`)
- Asset Manager UI → Asset management: manages (evidence: `README.md`)
- Asset Manager UI → Allocations and returns: assigns (evidence: `README.md`)
- Asset Manager UI → Supply inventory: tracks (evidence: `README.md`)
- Asset Manager UI → Support and knowledge: handles (evidence: `README.md`)
- Asset Manager UI → Care checklists: confirms (evidence: `README.md`)
- Asset Manager UI → Reports and audit: reports (evidence: `README.md`)
- Asset management → UID rules: generates UIDs (evidence: `public/js/domain/uid.js`)
- Support and knowledge → SLA rules: classifies SLA (evidence: `public/js/domain/sla.js`)
- Portal users → SSO and sync: presents SSO token (evidence: `public/vp-integration.js`)
- SSO and sync → Supabase services: authenticates and syncs (evidence: `public/vp-integration.js`)
- Static web server → Asset Manager UI: serves (evidence: `server.js`)
