# distinctcodes/assetsup architecture

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

- Interactive diagram: https://gitdiagram.com/distinctcodes/assetsup
- Repository: https://github.com/distinctcodes/assetsup

## Overview

AssetsUp is an asset and inventory management platform: users register assets, assign them across organizational units, and track changes through audits and reports. The README describes a Next.js interface backed by a NestJS API and relational database; sampled source confirms selected frontend query, authentication, purchase-order, license, reservation, and transfer paths. Other documented capabilities are represented as domain components, but their internal call relationships are not inferred. The contract suite is shown as a separate product area; its connection to the API is unverified.

Main entry points: [`backend/src`](https://github.com/distinctcodes/assetsup/tree/main/backend/src) (Backend API), [`backend/src/auth/auth.service.ts`](https://github.com/distinctcodes/assetsup/blob/main/backend/src/auth/auth.service.ts) (Authentication), [`contracts/assetsup/src/lib.rs`](https://github.com/distinctcodes/assetsup/blob/main/contracts/assetsup/src/lib.rs) (Asset registry contract), [`frontend/app`](https://github.com/distinctcodes/assetsup/tree/main/frontend/app) (Management interface)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_web_app["Management interface"]
  node_asset_queries["Asset queries<br/>[useAsset.ts]"]
  node_api_client["API client<br/>[client.ts]"]
end

subgraph group_identity["Identity and access"]
  node_api["Backend API"]
  node_auth["Authentication<br/>[auth.service.ts]"]
  node_users["Users<br/>[users.service.ts]"]
end

subgraph group_asset_ops["Asset operations"]
  node_assets["Asset lifecycle"]
  node_org_setup["Org structure"]
  node_transfers["Asset transfers"]
  node_reservations["Reservations"]
  node_maintenance["Maintenance"]
  node_licenses["Software licenses"]
  node_procurement["Purchase orders"]
end

subgraph group_oversight["Oversight and services"]
  node_audits["Audits and history"]
  node_reporting["Reports and search"]
  node_alerts["Expiry alerts"]
  node_notifications["Notifications"]
end

subgraph group_contracts["Stellar contracts"]
  node_assetsup_contract["Asset registry contract<br/>[lib.rs]"]
  node_maintenance_contract["Maintenance contract<br/>[lib.rs]"]
  node_multisig_transfer["Multisig transfers<br/>[lib.rs]"]
  node_multisig_wallet["Multisig wallet<br/>[lib.rs]"]
  node_contrib_contract["Contract extensions<br/>[lib.rs]"]
end

node_user(("Organization user"))
node_database[("Relational database")]

node_user -->|"manages assets"| node_web_app
node_web_app -.->|"queries assets"| node_asset_queries
node_asset_queries -->|"calls API"| node_api_client
node_api_client -->|"sends requests"| node_api
node_api -.->|"routes auth"| node_auth
node_auth -->|"reads and updates"| node_users
node_auth -->|"logs actions"| node_audits
node_api -.->|"manages records"| node_assets
node_api -.->|"manages ownership"| node_org_setup
node_api -->|"routes transfers"| node_transfers
node_api -->|"routes reservations"| node_reservations
node_api -.->|"manages upkeep"| node_maintenance
node_api -->|"routes licenses"| node_licenses
node_api -->|"routes orders"| node_procurement
node_api -.->|"supports traceability"| node_audits
node_api -.->|"generates reports"| node_reporting
node_api -.->|"checks expiry"| node_alerts
node_api -.->|"sends notifications"| node_notifications
node_api -->|"persists records"| node_database
node_assetsup_contract -.-> node_maintenance_contract
node_assetsup_contract -.-> node_multisig_transfer
node_multisig_wallet -.-> node_multisig_transfer

click node_web_app "https://github.com/distinctcodes/assetsup/tree/main/frontend/app"
click node_asset_queries "https://github.com/distinctcodes/assetsup/blob/main/frontend/lib/query/hooks/useAsset.ts"
click node_api_client "https://github.com/distinctcodes/assetsup/blob/main/frontend/lib/api/client.ts"
click node_api "https://github.com/distinctcodes/assetsup/tree/main/backend/src"
click node_auth "https://github.com/distinctcodes/assetsup/blob/main/backend/src/auth/auth.service.ts"
click node_users "https://github.com/distinctcodes/assetsup/blob/main/backend/src/users/users.service.ts"
click node_assets "https://github.com/distinctcodes/assetsup/tree/main/backend/src/inventory"
click node_org_setup "https://github.com/distinctcodes/assetsup/tree/main/backend/src/departments"
click node_transfers "https://github.com/distinctcodes/assetsup/blob/main/backend/src/transfers/transfers.service.ts"
click node_reservations "https://github.com/distinctcodes/assetsup/blob/main/backend/src/reservations/reservations.service.ts"
click node_maintenance "https://github.com/distinctcodes/assetsup/tree/main/backend/src/maintenance"
click node_licenses "https://github.com/distinctcodes/assetsup/blob/main/backend/src/licenses/licenses.service.ts"
click node_procurement "https://github.com/distinctcodes/assetsup/blob/main/backend/src/purchase-orders/purchase-orders.service.ts"
click node_audits "https://github.com/distinctcodes/assetsup/blob/main/backend/src/audit-logs/audit-logs.service.ts"
click node_reporting "https://github.com/distinctcodes/assetsup/tree/main/backend/src/reports"
click node_alerts "https://github.com/distinctcodes/assetsup/blob/main/backend/src/alerts/expiry-alerts.service.ts"
click node_notifications "https://github.com/distinctcodes/assetsup/blob/main/backend/src/notifications/notifications.service.ts"
click node_assetsup_contract "https://github.com/distinctcodes/assetsup/blob/main/contracts/assetsup/src/lib.rs"
click node_maintenance_contract "https://github.com/distinctcodes/assetsup/blob/main/contracts/asset-maintenance/src/lib.rs"
click node_multisig_transfer "https://github.com/distinctcodes/assetsup/blob/main/contracts/multisig-transfer/src/lib.rs"
click node_multisig_wallet "https://github.com/distinctcodes/assetsup/blob/main/contracts/multisig-wallet/src/lib.rs"
click node_contrib_contract "https://github.com/distinctcodes/assetsup/blob/main/contracts/contrib/src/lib.rs"

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_web_app,node_asset_queries,node_api_client,node_user toneBlue
class node_api,node_auth,node_users,node_database toneAmber
class node_assets,node_org_setup,node_transfers,node_reservations,node_maintenance,node_licenses,node_procurement toneMint
class node_audits,node_reporting,node_alerts,node_notifications toneRose
class node_assetsup_contract,node_maintenance_contract,node_multisig_transfer,node_multisig_wallet,node_contrib_contract toneIndigo
```

## Components

### Web interface

- [Management interface](https://github.com/distinctcodes/assetsup/tree/main/frontend/app): `frontend/app`
- [Asset queries](https://github.com/distinctcodes/assetsup/blob/main/frontend/lib/query/hooks/useAsset.ts): `frontend/lib/query/hooks/useAsset.ts`
- [API client](https://github.com/distinctcodes/assetsup/blob/main/frontend/lib/api/client.ts): `frontend/lib/api/client.ts`

### Identity and access

- [Backend API](https://github.com/distinctcodes/assetsup/tree/main/backend/src): `backend/src`
- [Authentication](https://github.com/distinctcodes/assetsup/blob/main/backend/src/auth/auth.service.ts): `backend/src/auth/auth.service.ts`
- [Users](https://github.com/distinctcodes/assetsup/blob/main/backend/src/users/users.service.ts): `backend/src/users/users.service.ts`

### Asset operations

- [Asset lifecycle](https://github.com/distinctcodes/assetsup/tree/main/backend/src/inventory): `backend/src/inventory`
- [Org structure](https://github.com/distinctcodes/assetsup/tree/main/backend/src/departments): `backend/src/departments`
- [Asset transfers](https://github.com/distinctcodes/assetsup/blob/main/backend/src/transfers/transfers.service.ts): `backend/src/transfers/transfers.service.ts`
- [Reservations](https://github.com/distinctcodes/assetsup/blob/main/backend/src/reservations/reservations.service.ts): `backend/src/reservations/reservations.service.ts`
- [Maintenance](https://github.com/distinctcodes/assetsup/tree/main/backend/src/maintenance): `backend/src/maintenance`
- [Software licenses](https://github.com/distinctcodes/assetsup/blob/main/backend/src/licenses/licenses.service.ts): `backend/src/licenses/licenses.service.ts`
- [Purchase orders](https://github.com/distinctcodes/assetsup/blob/main/backend/src/purchase-orders/purchase-orders.service.ts): `backend/src/purchase-orders/purchase-orders.service.ts`

### Oversight and services

- [Audits and history](https://github.com/distinctcodes/assetsup/blob/main/backend/src/audit-logs/audit-logs.service.ts): `backend/src/audit-logs/audit-logs.service.ts`
- [Reports and search](https://github.com/distinctcodes/assetsup/tree/main/backend/src/reports): `backend/src/reports`
- [Expiry alerts](https://github.com/distinctcodes/assetsup/blob/main/backend/src/alerts/expiry-alerts.service.ts): `backend/src/alerts/expiry-alerts.service.ts`
- [Notifications](https://github.com/distinctcodes/assetsup/blob/main/backend/src/notifications/notifications.service.ts): `backend/src/notifications/notifications.service.ts`

### Stellar contracts

- [Asset registry contract](https://github.com/distinctcodes/assetsup/blob/main/contracts/assetsup/src/lib.rs): `contracts/assetsup/src/lib.rs`
- [Maintenance contract](https://github.com/distinctcodes/assetsup/blob/main/contracts/asset-maintenance/src/lib.rs): `contracts/asset-maintenance/src/lib.rs`
- [Multisig transfers](https://github.com/distinctcodes/assetsup/blob/main/contracts/multisig-transfer/src/lib.rs): `contracts/multisig-transfer/src/lib.rs`
- [Multisig wallet](https://github.com/distinctcodes/assetsup/blob/main/contracts/multisig-wallet/src/lib.rs): `contracts/multisig-wallet/src/lib.rs`
- [Contract extensions](https://github.com/distinctcodes/assetsup/blob/main/contracts/contrib/src/lib.rs): `contracts/contrib/src/lib.rs`

### Other components

- **Organization user**
- **Relational database**

## Connections

- Organization user → Management interface: manages assets (evidence: `README.md`)
- Management interface → Asset queries: queries assets
- Asset queries → API client: calls API (evidence: `frontend/lib/query/hooks/useAsset.ts`)
- API client → Backend API: sends requests (evidence: `README.md`)
- Backend API → Authentication: routes auth (evidence: `backend/src/auth/auth.service.ts`)
- Authentication → Users: reads and updates (evidence: `backend/src/auth/auth.service.ts`)
- Authentication → Audits and history: logs actions (evidence: `backend/src/auth/auth.service.ts`)
- Backend API → Asset lifecycle: manages records
- Backend API → Org structure: manages ownership
- Backend API → Asset transfers: routes transfers (evidence: `backend/src/transfers/transfers.controller.ts`)
- Backend API → Reservations: routes reservations (evidence: `backend/src/reservations/reservations.controller.ts`)
- Backend API → Maintenance: manages upkeep
- Backend API → Software licenses: routes licenses (evidence: `backend/src/licenses/licenses.controller.ts`)
- Backend API → Purchase orders: routes orders (evidence: `backend/src/purchase-orders/purchase-orders.controller.ts`)
- Backend API → Audits and history: supports traceability (evidence: `backend/src/auth/auth.service.ts`)
- Backend API → Reports and search: generates reports
- Backend API → Expiry alerts: checks expiry
- Backend API → Notifications: sends notifications
- Backend API → Relational database: persists records (evidence: `README.md`)
- Asset registry contract → Maintenance contract
- Asset registry contract → Multisig transfers
- Multisig wallet → Multisig transfers
