# krishnendude2005/digital-supply-chain-tracker architecture

> Architecture diagram of the GitHub repository krishnendude2005/digital-supply-chain-tracker, 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/krishnendude2005/digital-supply-chain-tracker
- Repository: https://github.com/krishnendude2005/digital-supply-chain-tracker

## Overview

This Spring application tracks supply-chain users, items, shipments, checkpoint events, and alerts. Its primary workflow is managing an item and shipment, assigning a transporter, recording shipment progress, and surfacing delay alerts; authentication and role administration support that workflow. The graph includes the API, domain operations, persistence, and scheduled delay detection. Several controllers and domain services are only represented by the file tree, so their links are shown as unverified rather than asserted as inspected calls.

Main entry points: [`DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/scheduler/service/ShipmentDelaySchedulerService.java`](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/scheduler/service/ShipmentDelaySchedulerService.java) (Delay detection), [`DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/AuthServiceImpl.java`](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/AuthServiceImpl.java) (Authentication), [`DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/ShipmentServiceImpl.java`](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/ShipmentServiceImpl.java) (Shipment management), [`DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/AuthController.java`](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/AuthController.java) (Authentication API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API and access"]
  node_auth_api["Authentication API"]
  node_auth_service["Authentication"]
  node_jwt["JWT utilities<br/>[JwtUtils.java]"]
  node_user_api["User administration"]
  node_user_service["User management"]
end

subgraph group_operations["Supply chain operations"]
  node_item_api["Item API"]
  node_item_service["Item management"]
  node_shipment_api["Shipment API"]
  node_shipment_service["Shipment management"]
end

subgraph group_tracking["Tracking and alerts"]
  node_checkpoint_api["Checkpoint API"]
  node_checkpoint_service["Checkpoint logging"]
  node_alert_api["Alert API"]
  node_alert_service["Alert management"]
  node_delay_scan["Delay detection"]
end

subgraph group_persistence["Domain and persistence"]
  node_shipment_data[("Shipment store<br/>[ShipmentRepo.java]")]
  node_user_data[("User store<br/>[UserRepo.java]")]
  node_item_data[("Item store<br/>[ItemRepo.java]")]
  node_tracking_data[("Tracking stores")]
  node_alert_data[("Alert store<br/>[AlertRepo.java]")]
end

node_client(("API client"))

node_client -.->|"submits credentials"| node_auth_api
node_client -.->|"manages users"| node_user_api
node_client -.->|"manages items"| node_item_api
node_client -.->|"manages shipments"| node_shipment_api
node_client -.->|"records progress"| node_checkpoint_api
node_client -.->|"views alerts"| node_alert_api
node_auth_api -.->|"delegates login"| node_auth_service
node_auth_service -->|"creates tokens"| node_jwt
node_auth_service -->|"looks up users"| node_user_data
node_user_api -.->|"delegates requests"| node_user_service
node_user_service -.->|"persists users"| node_user_data
node_item_api -->|"delegates requests"| node_item_service
node_item_service -.->|"reads and writes"| node_item_data
node_shipment_api -->|"delegates requests"| node_shipment_service
node_shipment_service -.->|"reads and writes"| node_shipment_data
node_checkpoint_api -.->|"delegates requests"| node_checkpoint_service
node_checkpoint_service -.->|"records checkpoints"| node_tracking_data
node_alert_api -.->|"delegates requests"| node_alert_service
node_alert_service -.->|"reads and writes"| node_alert_data
node_delay_scan -->|"finds delayed shipments"| node_shipment_data
node_delay_scan -->|"loads latest checkpoint"| node_tracking_data
node_delay_scan -->|"checks and saves alerts"| node_alert_data
node_shipment_service -.->|"associates items"| node_item_data

click node_auth_api "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/AuthController.java"
click node_auth_service "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/AuthServiceImpl.java"
click node_jwt "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/Utils/JwtUtils.java"
click node_user_api "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/UserController.java"
click node_user_service "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/UserServiceImpl.java"
click node_item_api "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/ItemController.java"
click node_item_service "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/ItemServiceImpl.java"
click node_shipment_api "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/ShipmentController.java"
click node_shipment_service "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/ShipmentServiceImpl.java"
click node_checkpoint_api "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/CheckPointLogController.java"
click node_checkpoint_service "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/CheckpointLogServiceImpl.java"
click node_alert_api "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/AlertController.java"
click node_alert_service "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/AlertServiceImpl.java"
click node_delay_scan "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/scheduler/service/ShipmentDelaySchedulerService.java"
click node_shipment_data "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/ShipmentRepo.java"
click node_user_data "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/UserRepo.java"
click node_item_data "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/ItemRepo.java"
click node_tracking_data "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/CheckpointLogRepo.java"
click node_alert_data "https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/AlertRepo.java"

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_jwt,node_user_api,node_user_service,node_client toneBlue
class node_item_api,node_item_service,node_shipment_api,node_shipment_service toneAmber
class node_checkpoint_api,node_checkpoint_service,node_alert_api,node_alert_service,node_delay_scan toneMint
class node_shipment_data,node_user_data,node_item_data,node_tracking_data,node_alert_data toneRose
```

## Components

### API and access

- [Authentication API](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/AuthController.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/AuthController.java`
- [Authentication](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/AuthServiceImpl.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/AuthServiceImpl.java`
- [JWT utilities](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/Utils/JwtUtils.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/Utils/JwtUtils.java`
- [User administration](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/UserController.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/UserController.java`
- [User management](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/UserServiceImpl.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/UserServiceImpl.java`

### Supply chain operations

- [Item API](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/ItemController.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/ItemController.java`
- [Item management](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/ItemServiceImpl.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/ItemServiceImpl.java`
- [Shipment API](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/ShipmentController.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/ShipmentController.java`
- [Shipment management](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/ShipmentServiceImpl.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/ShipmentServiceImpl.java`

### Tracking and alerts

- [Checkpoint API](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/CheckPointLogController.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/CheckPointLogController.java`
- [Checkpoint logging](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/CheckpointLogServiceImpl.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/CheckpointLogServiceImpl.java`
- [Alert API](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/AlertController.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/AlertController.java`
- [Alert management](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/AlertServiceImpl.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/AlertServiceImpl.java`
- [Delay detection](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/scheduler/service/ShipmentDelaySchedulerService.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/scheduler/service/ShipmentDelaySchedulerService.java`

### Domain and persistence

- [Shipment store](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/ShipmentRepo.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/ShipmentRepo.java`
- [User store](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/UserRepo.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/UserRepo.java`
- [Item store](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/ItemRepo.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/ItemRepo.java`
- [Tracking stores](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/CheckpointLogRepo.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/CheckpointLogRepo.java`
- [Alert store](https://github.com/krishnendude2005/digital-supply-chain-tracker/blob/main/DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/AlertRepo.java): `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/repository/AlertRepo.java`

### Other components

- **API client**

## Connections

- API client → Authentication API: submits credentials
- API client → User administration: manages users
- API client → Item API: manages items
- API client → Shipment API: manages shipments
- API client → Checkpoint API: records progress
- API client → Alert API: views alerts
- Authentication API → Authentication: delegates login
- Authentication → JWT utilities: creates tokens (evidence: `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/AuthServiceImpl.java`)
- Authentication → User store: looks up users (evidence: `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/AuthServiceImpl.java`)
- User administration → User management: delegates requests
- User management → User store: persists users (evidence: `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/UserServiceImpl.java`)
- Item API → Item management: delegates requests (evidence: `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/ItemController.java`)
- Item management → Item store: reads and writes (evidence: `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/ItemServiceImpl.java`)
- Shipment API → Shipment management: delegates requests (evidence: `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/controller/ShipmentController.java`)
- Shipment management → Shipment store: reads and writes (evidence: `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/ShipmentServiceImpl.java`)
- Checkpoint API → Checkpoint logging: delegates requests
- Checkpoint logging → Tracking stores: records checkpoints
- Alert API → Alert management: delegates requests
- Alert management → Alert store: reads and writes
- Delay detection → Shipment store: finds delayed shipments (evidence: `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/scheduler/service/ShipmentDelaySchedulerService.java`)
- Delay detection → Tracking stores: loads latest checkpoint (evidence: `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/scheduler/service/ShipmentDelaySchedulerService.java`)
- Delay detection → Alert store: checks and saves alerts (evidence: `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/scheduler/service/ShipmentDelaySchedulerService.java`)
- Shipment management → Item store: associates items (evidence: `DigitalSupplyChainTracker/src/main/java/com/SupplyChain/DigitalSupplyChainTracker/service/Impl/ShipmentServiceImpl.java`)
