# kicik-ireng/api-sprocket architecture

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

- Interactive diagram: https://gitdiagram.com/kicik-ireng/api-sprocket
- Repository: https://github.com/kicik-ireng/api-sprocket

## Overview

This is a NestJS warehouse and order-management API, not the Nest starter described by the README. Its visible workflow covers master parts and mappings, pickup-order intake and comparison, warehouse execution (shopping, packing, delivery, and incoming scans), and inventory checks; Ansei transfers and operational reports are additional capabilities. The tree and sampled controllers establish endpoint-to-service calls, but service internals and most module wiring were not sampled, so storage and cross-module links are omitted where their ownership is uncertain.

Main entry points: [`src/modules/auth/auth.controller.ts`](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/auth/auth.controller.ts) (Authentication API), [`src/modules/master-data/controllers/part.controller.ts`](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/master-data/controllers/part.controller.ts) (Master data API), [`src/modules/orders/orders.controller.ts`](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/orders/orders.controller.ts) (Orders API), [`src/modules/operations/shopping.controller.ts`](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/operations/shopping.controller.ts) (Shopping API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Identity and Access"]
  node_auth_api["Authentication API<br/>[auth.controller.ts]"]
  node_auth_service["Authentication service<br/>[auth.service.ts]"]
  node_users_api["User management API"]
  node_permissions_api["Permissions API"]
end

subgraph group_catalog["Master Data and Orders"]
  node_master_api["Master data API<br/>[part.controller.ts]"]
  node_master_service["Part service<br/>[part.service.ts]"]
  node_orders_api["Orders API"]
  node_orders_service["Orders service<br/>[orders.service.ts]"]
end

subgraph group_warehouse["Warehouse Operations"]
  node_shopping_api["Shopping API"]
  node_shopping_service["Shopping service"]
  node_packing_delivery["Packing and delivery"]
end

subgraph group_inventory["Inventory and Integration"]
  node_incoming_api["Incoming scans"]
  node_incoming_service["Incoming service"]
  node_opname_api["Stock opname"]
  node_ansei_api["Ansei transfers"]
  node_ansei_service["Ansei service<br/>[ansei.service.ts]"]
end

subgraph group_insight["Monitoring and Reports"]
  node_dashboard["Dashboard"]
  node_audit["Audit log"]
  node_export["Excel exports"]
end

node_operator(("User / operator"))
node_ansei_system["Ansei system"]
node_database[("Prisma database access<br/>[prisma.service.ts]")]

node_operator -->|"logs in"| node_auth_api
node_auth_api -->|"delegates"| node_auth_service
node_operator -->|"manages accounts"| node_users_api
node_operator -->|"manages permissions"| node_permissions_api
node_operator -->|"maintains parts"| node_master_api
node_master_api -->|"delegates"| node_master_service
node_operator -->|"uploads or views orders"| node_orders_api
node_orders_api -->|"delegates"| node_orders_service
node_operator -->|"scans parts"| node_shopping_api
node_shopping_api -->|"delegates"| node_shopping_service
node_operator -->|"scans receipts"| node_incoming_api
node_incoming_api -->|"delegates"| node_incoming_service
node_operator -->|"records counts"| node_opname_api
node_operator -->|"manages transfers"| node_ansei_api
node_ansei_api -->|"delegates"| node_ansei_service
node_ansei_service -.->|"requests or receives"| node_ansei_system
node_operator -->|"views summaries"| node_dashboard
node_operator -->|"reviews activity"| node_audit
node_operator -->|"downloads reports"| node_export

click node_auth_api "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/auth/auth.controller.ts"
click node_auth_service "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/auth/auth.service.ts"
click node_users_api "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/users/users.controller.ts"
click node_permissions_api "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/permissions/permissions.controller.ts"
click node_master_api "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/master-data/controllers/part.controller.ts"
click node_master_service "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/master-data/services/part.service.ts"
click node_orders_api "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/orders/orders.controller.ts"
click node_orders_service "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/orders/orders.service.ts"
click node_shopping_api "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/operations/shopping.controller.ts"
click node_shopping_service "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/operations/shopping.service.ts"
click node_packing_delivery "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/operations/packing.controller.ts"
click node_incoming_api "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/incoming/incoming.controller.ts"
click node_incoming_service "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/incoming/incoming.service.ts"
click node_opname_api "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/stock-opname/stock-opname.controller.ts"
click node_ansei_api "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/integrations/ansei.controller.ts"
click node_ansei_service "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/integrations/ansei.service.ts"
click node_dashboard "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/dashboard/dashboard.controller.ts"
click node_audit "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/audit-log/audit-log.controller.ts"
click node_export "https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/export/export.controller.ts"
click node_database "https://github.com/kicik-ireng/api-sprocket/blob/main/src/prisma/prisma.service.ts"

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_auth_api,node_auth_service,node_users_api,node_permissions_api,node_operator toneBlue
class node_master_api,node_master_service,node_orders_api,node_orders_service,node_database toneAmber
class node_shopping_api,node_shopping_service,node_packing_delivery toneMint
class node_incoming_api,node_incoming_service,node_opname_api,node_ansei_api,node_ansei_service toneRose
class node_dashboard,node_audit,node_export,node_ansei_system toneIndigo
```

## Components

### Identity and Access

- [Authentication API](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/auth/auth.controller.ts): `src/modules/auth/auth.controller.ts`
- [Authentication service](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/auth/auth.service.ts): `src/modules/auth/auth.service.ts`
- [User management API](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/users/users.controller.ts): `src/modules/users/users.controller.ts`
- [Permissions API](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/permissions/permissions.controller.ts): `src/modules/permissions/permissions.controller.ts`

### Master Data and Orders

- [Master data API](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/master-data/controllers/part.controller.ts): `src/modules/master-data/controllers/part.controller.ts`
- [Part service](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/master-data/services/part.service.ts): `src/modules/master-data/services/part.service.ts`
- [Orders API](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/orders/orders.controller.ts): `src/modules/orders/orders.controller.ts`
- [Orders service](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/orders/orders.service.ts): `src/modules/orders/orders.service.ts`

### Warehouse Operations

- [Shopping API](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/operations/shopping.controller.ts): `src/modules/operations/shopping.controller.ts`
- [Shopping service](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/operations/shopping.service.ts): `src/modules/operations/shopping.service.ts`
- [Packing and delivery](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/operations/packing.controller.ts): `src/modules/operations/packing.controller.ts`

### Inventory and Integration

- [Incoming scans](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/incoming/incoming.controller.ts): `src/modules/incoming/incoming.controller.ts`
- [Incoming service](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/incoming/incoming.service.ts): `src/modules/incoming/incoming.service.ts`
- [Stock opname](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/stock-opname/stock-opname.controller.ts): `src/modules/stock-opname/stock-opname.controller.ts`
- [Ansei transfers](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/integrations/ansei.controller.ts): `src/modules/integrations/ansei.controller.ts`
- [Ansei service](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/integrations/ansei.service.ts): `src/modules/integrations/ansei.service.ts`

### Monitoring and Reports

- [Dashboard](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/dashboard/dashboard.controller.ts): `src/modules/dashboard/dashboard.controller.ts`
- [Audit log](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/audit-log/audit-log.controller.ts): `src/modules/audit-log/audit-log.controller.ts`
- [Excel exports](https://github.com/kicik-ireng/api-sprocket/blob/main/src/modules/export/export.controller.ts): `src/modules/export/export.controller.ts`

### Other components

- **User / operator**
- **Ansei system**
- [Prisma database access](https://github.com/kicik-ireng/api-sprocket/blob/main/src/prisma/prisma.service.ts): `src/prisma/prisma.service.ts`

## Connections

- User / operator → Authentication API: logs in
- Authentication API → Authentication service: delegates
- User / operator → User management API: manages accounts
- User / operator → Permissions API: manages permissions
- User / operator → Master data API: maintains parts
- Master data API → Part service: delegates
- User / operator → Orders API: uploads or views orders
- Orders API → Orders service: delegates
- User / operator → Shopping API: scans parts
- Shopping API → Shopping service: delegates
- User / operator → Incoming scans: scans receipts
- Incoming scans → Incoming service: delegates
- User / operator → Stock opname: records counts
- User / operator → Ansei transfers: manages transfers
- Ansei transfers → Ansei service: delegates
- Ansei service → Ansei system: requests or receives
- User / operator → Dashboard: views summaries
- User / operator → Audit log: reviews activity
- User / operator → Excel exports: downloads reports
