# syedalihamadgilani/courier-sorting-and-tracking-logistic-engine architecture

> Architecture diagram of the GitHub repository syedalihamadgilani/courier-sorting-and-tracking-logistic-engine, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine
- Repository: https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine

## Overview

SwiftEx is a console-based parcel booking and logistics simulation with a separate live admin dashboard. Customers book, track, or cancel parcels; the engine routes and dispatches booked parcels, advances trips, and reports outcomes, while admins monitor activity and can block or clear routes. The README documents routing, load optimization, and the two-process file-based IPC; excerpts show the engine, tracking structures, dashboard reads, and block-file writes. Some detailed wiring is omitted because source excerpts are partial.

Main entry points: [`source.cpp`](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp) (Logistics engine), [`admin.cpp`](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/admin.cpp) (Admin dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_customer["Customer operations"]
  node_customer_panel["Customer panel<br/>[source.cpp]"]
end

subgraph group_simulation["Simulation engine"]
  node_engine["Logistics engine<br/>[source.cpp]"]
  node_booking["Parcel booking<br/>[source.cpp]"]
  node_tracking["Parcel tracking<br/>[source.cpp]"]
  node_cancellation["Booking cancellation<br/>[source.cpp]"]
  node_routing["Shortest-path routing<br/>[source.cpp]"]
  node_dispatch["Load dispatch<br/>[source.cpp]"]
  node_trip_updates["Trip and parcel updates<br/>[source.cpp]"]
  node_graph["City graph<br/>[source.cpp]"]
end

subgraph group_state["Tracking and IPC"]
  node_parcel_index["Parcel hash index<br/>[source.cpp]"]
  node_linked_lists["Linked-list storage<br/>[source.cpp]"]
  node_ipc_files[("IPC state and logs")]
end

subgraph group_admin["Admin monitoring"]
  node_admin_panel["Admin dashboard<br/>[admin.cpp]"]
  node_state_reader["State and log reader<br/>[admin.cpp]"]
  node_route_controls["Route controls<br/>[admin.cpp]"]
end

node_customer(("Customer"))
node_admin(("Administrator"))

node_customer -->|"uses"| node_customer_panel
node_customer_panel -->|"books"| node_booking
node_customer_panel -->|"tracks"| node_tracking
node_customer_panel -->|"cancels"| node_cancellation
node_booking -->|"adds parcel"| node_engine
node_tracking -->|"searches ID"| node_parcel_index
node_cancellation -->|"searches ID"| node_parcel_index
node_engine -->|"routes parcels"| node_routing
node_engine -->|"dispatches loads"| node_dispatch
node_engine -->|"updates trips"| node_trip_updates
node_routing -->|"queries roads"| node_graph
node_engine -->|"indexes parcels"| node_parcel_index
node_engine -->|"stores records"| node_linked_lists
node_engine -->|"writes state and logs"| node_ipc_files
node_ipc_files -->|"provides files"| node_state_reader
node_admin -->|"uses"| node_admin_panel
node_admin_panel -->|"displays monitoring"| node_state_reader
node_admin_panel -->|"opens controls"| node_route_controls
node_route_controls -->|"writes blocks"| node_ipc_files
node_engine -->|"reads blocks"| node_ipc_files

click node_customer_panel "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp"
click node_engine "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp"
click node_booking "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp"
click node_tracking "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp"
click node_cancellation "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp"
click node_routing "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp"
click node_dispatch "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp"
click node_trip_updates "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp"
click node_graph "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp"
click node_parcel_index "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp"
click node_linked_lists "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp"
click node_admin_panel "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/admin.cpp"
click node_state_reader "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/admin.cpp"
click node_route_controls "https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/admin.cpp"

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_customer_panel toneBlue
class node_engine,node_booking,node_tracking,node_cancellation,node_routing,node_dispatch,node_trip_updates,node_graph toneAmber
class node_parcel_index,node_linked_lists,node_ipc_files toneMint
class node_admin_panel,node_state_reader,node_route_controls toneRose
class node_customer,node_admin toneIndigo
```

## Components

### Customer operations

- [Customer panel](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp): `source.cpp`

### Simulation engine

- [Logistics engine](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp): `source.cpp`
- [Parcel booking](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp): `source.cpp`
- [Parcel tracking](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp): `source.cpp`
- [Booking cancellation](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp): `source.cpp`
- [Shortest-path routing](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp): `source.cpp`
- [Load dispatch](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp): `source.cpp`
- [Trip and parcel updates](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp): `source.cpp`
- [City graph](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp): `source.cpp`

### Tracking and IPC

- [Parcel hash index](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp): `source.cpp`
- [Linked-list storage](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/source.cpp): `source.cpp`
- **IPC state and logs**

### Admin monitoring

- [Admin dashboard](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/admin.cpp): `admin.cpp`
- [State and log reader](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/admin.cpp): `admin.cpp`
- [Route controls](https://github.com/syedalihamadgilani/courier-sorting-and-tracking-logistic-engine/blob/main/admin.cpp): `admin.cpp`

### Other components

- **Customer**
- **Administrator**

## Connections

- Customer → Customer panel: uses
- Customer panel → Parcel booking: books
- Customer panel → Parcel tracking: tracks
- Customer panel → Booking cancellation: cancels
- Parcel booking → Logistics engine: adds parcel
- Parcel tracking → Parcel hash index: searches ID
- Booking cancellation → Parcel hash index: searches ID
- Logistics engine → Shortest-path routing: routes parcels
- Logistics engine → Load dispatch: dispatches loads
- Logistics engine → Trip and parcel updates: updates trips
- Shortest-path routing → City graph: queries roads
- Logistics engine → Parcel hash index: indexes parcels
- Logistics engine → Linked-list storage: stores records
- Logistics engine → IPC state and logs: writes state and logs
- IPC state and logs → State and log reader: provides files
- Administrator → Admin dashboard: uses
- Admin dashboard → State and log reader: displays monitoring
- Admin dashboard → Route controls: opens controls
- Route controls → IPC state and logs: writes blocks
- Logistics engine → IPC state and logs: reads blocks
