# arnab-royy/shipsense- architecture

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

- Interactive diagram: https://gitdiagram.com/arnab-royy/shipsense-
- Repository: https://github.com/arnab-royy/shipsense-

## Overview

ShipSense is a shipment tracking and delay-analysis web application. Users enter through the React app; admins can manage shipments, users, and delay codes, and view analytics. The documented supplier and customer tracking experiences are included as product capabilities, but their frontend and route wiring is not present in the sampled source. The reports route explicitly aggregates shipment, user, and delay-code data. Other backend route behavior and model persistence details were not sampled, so their internal links are omitted.

Main entry points: [`BACKEND/server.js`](https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/server.js) (Express server), [`FRONTEND/src/App.jsx`](https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/App.jsx) (React app), [`BACKEND/Routes/Reports.js`](https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Routes/Reports.js) (Reports API), [`FRONTEND/src/Admin/AdminDashboardLight.jsx`](https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/AdminDashboardLight.jsx) (Admin dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Web experience"]
  node_app["React app<br/>[App.jsx]"]
  node_public["Public pages"]
  node_adminui["Admin dashboard"]
  node_roleflows["Supplier and customer tracking"]
end

subgraph group_operations["Shipment operations"]
  node_shipmentui["Shipment management"]
  node_addshipment["Add shipment"]
  node_delayui["Delay-code management"]
  node_adddelay["Add delay code"]
  node_userui["User management"]
end

subgraph group_insights["Analytics"]
  node_reportsui["Reports"]
end

subgraph group_backend["Backend services"]
  node_server["Express server<br/>[server.js]"]
  node_shiproute["Shipment API<br/>[Shipments.js]"]
  node_userroute["User API<br/>[Users.js]"]
  node_delayroute["Delay-code API<br/>[DelayCodes.js]"]
  node_reportsroute["Reports API<br/>[Reports.js]"]
  node_shipmentmodel["Shipment model<br/>[Shipment.js]"]
  node_usermodel["User model<br/>[User.js]"]
  node_delaymodel["Delay-code model<br/>[DelayCode.js]"]
  node_db["Database connection<br/>[Db.js]"]
end

node_admin(("Admin"))
node_supplier(("Supplier"))
node_customer(("Customer"))
node_mongo[("MongoDB")]

node_admin -->|"opens"| node_app
node_supplier -.->|"tracks orders"| node_roleflows
node_customer -.->|"views orders"| node_roleflows
node_app -->|"routes to"| node_public
node_app -->|"routes to"| node_adminui
node_app -->|"routes to"| node_shipmentui
node_app -->|"routes to"| node_addshipment
node_app -->|"routes to"| node_delayui
node_app -->|"routes to"| node_adddelay
node_app -->|"routes to"| node_userui
node_app -->|"routes to"| node_reportsui
node_adminui -->|"fetches reports and shipments"| node_server
node_shipmentui -->|"fetches shipments"| node_server
node_userui -->|"fetches users"| node_server
node_delayui -->|"fetches delay codes"| node_server
node_reportsui -->|"fetches reports"| node_server
node_server -->|"mounts API"| node_shiproute
node_server -->|"mounts API"| node_userroute
node_server -->|"mounts API"| node_delayroute
node_server -->|"mounts API"| node_reportsroute
node_server -->|"connects"| node_db
node_db -->|"connects"| node_mongo
node_reportsroute -->|"aggregates shipments"| node_shipmentmodel
node_reportsroute -->|"counts users"| node_usermodel
node_reportsroute -->|"counts delay codes"| node_delaymodel

click node_app "https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/App.jsx"
click node_public "https://github.com/arnab-royy/shipsense-/tree/main/FRONTEND/src/Home"
click node_adminui "https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/AdminDashboardLight.jsx"
click node_shipmentui "https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/Shipments/ShipmentsPageDark.jsx"
click node_addshipment "https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/Shipments/AddShipmentDark.jsx"
click node_delayui "https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/DelayCodes/DelayCodesPageDark.jsx"
click node_adddelay "https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/DelayCodes/AddDelayCodeDark.jsx"
click node_userui "https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/Users/UserManagementPageDark.jsx"
click node_reportsui "https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/Reports/ReportsPageDark.jsx"
click node_server "https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/server.js"
click node_shiproute "https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Routes/Shipments.js"
click node_userroute "https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Routes/Users.js"
click node_delayroute "https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Routes/DelayCodes.js"
click node_reportsroute "https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Routes/Reports.js"
click node_shipmentmodel "https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Models/Shipment.js"
click node_usermodel "https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Models/User.js"
click node_delaymodel "https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Models/DelayCode.js"
click node_db "https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/DataBase/Db.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_app,node_public,node_adminui,node_roleflows toneBlue
class node_shipmentui,node_addshipment,node_delayui,node_adddelay,node_userui,node_mongo toneAmber
class node_reportsui toneMint
class node_server,node_shiproute,node_userroute,node_delayroute,node_reportsroute,node_shipmentmodel,node_usermodel,node_delaymodel,node_db toneRose
class node_admin,node_supplier,node_customer toneIndigo
```

## Components

### Web experience

- [React app](https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/App.jsx): `FRONTEND/src/App.jsx`
- [Public pages](https://github.com/arnab-royy/shipsense-/tree/main/FRONTEND/src/Home): `FRONTEND/src/Home`
- [Admin dashboard](https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/AdminDashboardLight.jsx): `FRONTEND/src/Admin/AdminDashboardLight.jsx`
- **Supplier and customer tracking**

### Shipment operations

- [Shipment management](https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/Shipments/ShipmentsPageDark.jsx): `FRONTEND/src/Admin/Shipments/ShipmentsPageDark.jsx`
- [Add shipment](https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/Shipments/AddShipmentDark.jsx): `FRONTEND/src/Admin/Shipments/AddShipmentDark.jsx`
- [Delay-code management](https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/DelayCodes/DelayCodesPageDark.jsx): `FRONTEND/src/Admin/DelayCodes/DelayCodesPageDark.jsx`
- [Add delay code](https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/DelayCodes/AddDelayCodeDark.jsx): `FRONTEND/src/Admin/DelayCodes/AddDelayCodeDark.jsx`
- [User management](https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/Users/UserManagementPageDark.jsx): `FRONTEND/src/Admin/Users/UserManagementPageDark.jsx`

### Analytics

- [Reports](https://github.com/arnab-royy/shipsense-/blob/main/FRONTEND/src/Admin/Reports/ReportsPageDark.jsx): `FRONTEND/src/Admin/Reports/ReportsPageDark.jsx`

### Backend services

- [Express server](https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/server.js): `BACKEND/server.js`
- [Shipment API](https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Routes/Shipments.js): `BACKEND/Routes/Shipments.js`
- [User API](https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Routes/Users.js): `BACKEND/Routes/Users.js`
- [Delay-code API](https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Routes/DelayCodes.js): `BACKEND/Routes/DelayCodes.js`
- [Reports API](https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Routes/Reports.js): `BACKEND/Routes/Reports.js`
- [Shipment model](https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Models/Shipment.js): `BACKEND/Models/Shipment.js`
- [User model](https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Models/User.js): `BACKEND/Models/User.js`
- [Delay-code model](https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/Models/DelayCode.js): `BACKEND/Models/DelayCode.js`
- [Database connection](https://github.com/arnab-royy/shipsense-/blob/main/BACKEND/DataBase/Db.js): `BACKEND/DataBase/Db.js`

### Other components

- **Admin**
- **Supplier**
- **Customer**
- **MongoDB**

## Connections

- Admin → React app: opens
- Supplier → Supplier and customer tracking: tracks orders
- Customer → Supplier and customer tracking: views orders
- React app → Public pages: routes to
- React app → Admin dashboard: routes to
- React app → Shipment management: routes to
- React app → Add shipment: routes to
- React app → Delay-code management: routes to
- React app → Add delay code: routes to
- React app → User management: routes to
- React app → Reports: routes to
- Admin dashboard → Express server: fetches reports and shipments
- Shipment management → Express server: fetches shipments
- User management → Express server: fetches users
- Delay-code management → Express server: fetches delay codes
- Reports → Express server: fetches reports
- Express server → Shipment API: mounts API
- Express server → User API: mounts API
- Express server → Delay-code API: mounts API
- Express server → Reports API: mounts API
- Express server → Database connection: connects
- Database connection → MongoDB: connects
- Reports API → Shipment model: aggregates shipments
- Reports API → User model: counts users
- Reports API → Delay-code model: counts delay codes
