# sriyakat/bookingmanagementapp architecture

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

- Interactive diagram: https://gitdiagram.com/sriyakat/bookingmanagementapp
- Repository: https://github.com/sriyakat/bookingmanagementapp

## Overview

This is an Express API for managing shipment operations, from user access and customer/booking records through tracking, employee assignment, and delivery attempts. Requests enter through the server’s mounted routes; module routes dispatch to controllers, which invoke services and, where indexed, repositories. The graph includes the main operational domains and supporting role/product/hub capabilities. README content was absent, and many repository and route implementations were not excerpted, so only indexed or excerpt-visible relationships are connected; no cross-domain operational handoffs are inferred.

Main entry points: [`server.js`](https://github.com/sriyakat/bookingmanagementapp/blob/main/server.js) (Express API), [`src/modules/auth/auth.service.js`](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/auth/auth.service.js) (Authentication), [`src/modules/auth/auth.routes.js`](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/auth/auth.routes.js) (Auth routes), [`src/modules/auth/auth.repository.js`](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/auth/auth.repository.js) (Auth repository)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["API and access"]
  node_server["Express API<br/>[server.js]"]
  node_auth_routes["Auth routes<br/>[auth.routes.js]"]
  node_auth_logic["Authentication<br/>[auth.service.js]"]
  node_auth_data["Auth repository<br/>[auth.repository.js]"]
  node_jwt["JWT utilities<br/>[jwt.js]"]
  node_auth_mw["JWT authentication<br/>[auth.middleware.js]"]
  node_database[("SQL database<br/>[db.js]")]
end

subgraph group_booking["Booking lifecycle"]
  node_customer_routes["Customer routes"]
  node_customer["Customer management"]
  node_customer_service["Customer service"]
  node_customer_data["Customer repository"]
  node_booking_routes["Booking routes<br/>[booking.routes.js]"]
  node_booking["Booking management"]
  node_booking_service["Booking service<br/>[booking.service.js]"]
  node_booking_data["Booking repository"]
  node_tracking_routes["Tracking routes"]
  node_tracking["Tracking updates"]
  node_tracking_service["Tracking service"]
  node_tracking_data["Tracking repository"]
end

subgraph group_operations["Shipment operations"]
  node_employee["Employee management"]
  node_employee_service["Employee service"]
  node_assignment["Shipment assignment"]
  node_assignment_service["Assignment service"]
  node_assignment_data["Assignment repository"]
  node_delivery["Delivery attempts"]
  node_delivery_service["Delivery service"]
end

subgraph group_admin["Administration"]
  node_roles["Role management"]
  node_roles_service["Roles service<br/>[roles.service.js]"]
  node_products["Product management"]
  node_product_service["Product service<br/>[product.service.js]"]
  node_hubs["Hub management<br/>[hub.controller.js]"]
  node_hub_service["Hub service<br/>[hub.service.js]"]
end

node_caller(("API client"))

node_caller -->|"sends requests"| node_server
node_server -->|"mounts routes"| node_auth_routes
node_server -->|"mounts routes"| node_customer_routes
node_server -->|"mounts routes"| node_booking_routes
node_server -->|"mounts routes"| node_tracking_routes
node_server -->|"mounts routes"| node_employee
node_server -->|"mounts routes"| node_assignment
node_server -->|"mounts routes"| node_delivery
node_server -->|"mounts routes"| node_roles
node_server -->|"mounts routes"| node_products
node_server -->|"mounts routes"| node_hubs
node_auth_routes -->|"dispatches to"| node_auth_logic
node_auth_logic -->|"queries users"| node_auth_data
node_auth_logic -->|"generates token"| node_jwt
node_auth_data -->|"accesses"| node_database
node_customer_routes -->|"dispatches to"| node_customer
node_customer -->|"calls"| node_customer_service
node_customer_service -->|"uses repository"| node_customer_data
node_booking_routes -->|"dispatches to"| node_booking
node_booking -->|"calls"| node_booking_service
node_booking_service -->|"uses repository"| node_booking_data
node_tracking_routes -->|"dispatches to"| node_tracking
node_tracking -->|"calls"| node_tracking_service
node_tracking_service -->|"uses repository"| node_tracking_data
node_assignment -->|"calls"| node_assignment_service
node_assignment_service -->|"uses repository"| node_assignment_data
node_delivery -->|"calls"| node_delivery_service
node_employee -->|"calls"| node_employee_service
node_roles -->|"calls"| node_roles_service
node_products -->|"calls"| node_product_service
node_hubs -->|"calls"| node_hub_service

click node_server "https://github.com/sriyakat/bookingmanagementapp/blob/main/server.js"
click node_auth_routes "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/auth/auth.routes.js"
click node_auth_logic "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/auth/auth.service.js"
click node_auth_data "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/auth/auth.repository.js"
click node_jwt "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/utils/jwt.js"
click node_auth_mw "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/middlewares/auth.middleware.js"
click node_customer_routes "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/Customer/customers.routes.js"
click node_customer "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/Customer/customers.controller.js"
click node_customer_service "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/Customer/customers.service.js"
click node_customer_data "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/Customer/customers.repository.js"
click node_booking_routes "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/booking.routes.js"
click node_booking "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/booking.controller.js"
click node_booking_service "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/booking.service.js"
click node_booking_data "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/booking.repository.js"
click node_tracking_routes "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/tracking/bookingTracking.routes.js"
click node_tracking "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/tracking/bookingTracking.controller.js"
click node_tracking_service "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/tracking/bookingTracking.service.js"
click node_tracking_data "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/tracking/bookingTracking.repository.js"
click node_employee "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/employee/employee.controller.js"
click node_employee_service "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/employee/employee.service.js"
click node_assignment "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/shipmentAssignment/shipmentAssignment.controller.js"
click node_assignment_service "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/shipmentAssignment/shipmentAssignment.service.js"
click node_assignment_data "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/shipmentAssignment/shipmentAssignment.repository.js"
click node_delivery "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/delivery/delivery.controller.js"
click node_delivery_service "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/delivery/delivery.service.js"
click node_roles "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/roles/roles.controller.js"
click node_roles_service "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/roles/roles.service.js"
click node_products "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/product/product.controller.js"
click node_product_service "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/product/product.service.js"
click node_hubs "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/hub/hub.controller.js"
click node_hub_service "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/hub/hub.service.js"
click node_database "https://github.com/sriyakat/bookingmanagementapp/blob/main/src/config/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_server,node_auth_routes,node_auth_logic,node_auth_data,node_jwt,node_auth_mw,node_database,node_caller toneBlue
class node_customer_routes,node_customer,node_customer_service,node_customer_data,node_booking_routes,node_booking,node_booking_service,node_booking_data,node_tracking_routes,node_tracking,node_tracking_service,node_tracking_data toneAmber
class node_employee,node_employee_service,node_assignment,node_assignment_service,node_assignment_data,node_delivery,node_delivery_service toneMint
class node_roles,node_roles_service,node_products,node_product_service,node_hubs,node_hub_service toneRose
```

## Components

### API and access

- [Express API](https://github.com/sriyakat/bookingmanagementapp/blob/main/server.js): `server.js`
- [Auth routes](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/auth/auth.routes.js): `src/modules/auth/auth.routes.js`
- [Authentication](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/auth/auth.service.js): `src/modules/auth/auth.service.js`
- [Auth repository](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/auth/auth.repository.js): `src/modules/auth/auth.repository.js`
- [JWT utilities](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/utils/jwt.js): `src/utils/jwt.js`
- [JWT authentication](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/middlewares/auth.middleware.js): `src/middlewares/auth.middleware.js`
- [SQL database](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/config/db.js): `src/config/db.js`

### Booking lifecycle

- [Customer routes](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/Customer/customers.routes.js): `src/modules/Customer/customers.routes.js`
- [Customer management](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/Customer/customers.controller.js): `src/modules/Customer/customers.controller.js`
- [Customer service](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/Customer/customers.service.js): `src/modules/Customer/customers.service.js`
- [Customer repository](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/Customer/customers.repository.js): `src/modules/Customer/customers.repository.js`
- [Booking routes](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/booking.routes.js): `src/modules/bookings/booking.routes.js`
- [Booking management](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/booking.controller.js): `src/modules/bookings/booking.controller.js`
- [Booking service](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/booking.service.js): `src/modules/bookings/booking.service.js`
- [Booking repository](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/booking.repository.js): `src/modules/bookings/booking.repository.js`
- [Tracking routes](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/tracking/bookingTracking.routes.js): `src/modules/bookings/tracking/bookingTracking.routes.js`
- [Tracking updates](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/tracking/bookingTracking.controller.js): `src/modules/bookings/tracking/bookingTracking.controller.js`
- [Tracking service](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/tracking/bookingTracking.service.js): `src/modules/bookings/tracking/bookingTracking.service.js`
- [Tracking repository](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/bookings/tracking/bookingTracking.repository.js): `src/modules/bookings/tracking/bookingTracking.repository.js`

### Shipment operations

- [Employee management](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/employee/employee.controller.js): `src/modules/employee/employee.controller.js`
- [Employee service](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/employee/employee.service.js): `src/modules/employee/employee.service.js`
- [Shipment assignment](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/shipmentAssignment/shipmentAssignment.controller.js): `src/modules/shipmentAssignment/shipmentAssignment.controller.js`
- [Assignment service](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/shipmentAssignment/shipmentAssignment.service.js): `src/modules/shipmentAssignment/shipmentAssignment.service.js`
- [Assignment repository](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/shipmentAssignment/shipmentAssignment.repository.js): `src/modules/shipmentAssignment/shipmentAssignment.repository.js`
- [Delivery attempts](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/delivery/delivery.controller.js): `src/modules/delivery/delivery.controller.js`
- [Delivery service](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/delivery/delivery.service.js): `src/modules/delivery/delivery.service.js`

### Administration

- [Role management](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/roles/roles.controller.js): `src/modules/roles/roles.controller.js`
- [Roles service](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/roles/roles.service.js): `src/modules/roles/roles.service.js`
- [Product management](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/product/product.controller.js): `src/modules/product/product.controller.js`
- [Product service](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/product/product.service.js): `src/modules/product/product.service.js`
- [Hub management](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/hub/hub.controller.js): `src/modules/hub/hub.controller.js`
- [Hub service](https://github.com/sriyakat/bookingmanagementapp/blob/main/src/modules/hub/hub.service.js): `src/modules/hub/hub.service.js`

### Other components

- **API client**

## Connections

- API client → Express API: sends requests (evidence: `server.js`)
- Express API → Auth routes: mounts routes (evidence: `server.js`)
- Express API → Customer routes: mounts routes (evidence: `server.js`)
- Express API → Booking routes: mounts routes (evidence: `server.js`)
- Express API → Tracking routes: mounts routes (evidence: `server.js`)
- Express API → Employee management: mounts routes (evidence: `server.js`)
- Express API → Shipment assignment: mounts routes (evidence: `server.js`)
- Express API → Delivery attempts: mounts routes (evidence: `server.js`)
- Express API → Role management: mounts routes (evidence: `server.js`)
- Express API → Product management: mounts routes (evidence: `server.js`)
- Express API → Hub management: mounts routes (evidence: `server.js`)
- Auth routes → Authentication: dispatches to (evidence: `src/modules/auth/auth.routes.js`)
- Authentication → Auth repository: queries users (evidence: `src/modules/auth/auth.service.js`)
- Authentication → JWT utilities: generates token (evidence: `src/modules/auth/auth.service.js`)
- Auth repository → SQL database: accesses (evidence: `src/modules/auth/auth.repository.js`)
- Customer routes → Customer management: dispatches to (evidence: `src/modules/Customer/customers.routes.js`)
- Customer management → Customer service: calls (evidence: `src/modules/Customer/customers.controller.js`)
- Customer service → Customer repository: uses repository (evidence: `src/modules/Customer/customers.service.js`)
- Booking routes → Booking management: dispatches to (evidence: `src/modules/bookings/booking.routes.js`)
- Booking management → Booking service: calls (evidence: `src/modules/bookings/booking.controller.js`)
- Booking service → Booking repository: uses repository (evidence: `src/modules/bookings/booking.service.js`)
- Tracking routes → Tracking updates: dispatches to (evidence: `src/modules/bookings/tracking/bookingTracking.routes.js`)
- Tracking updates → Tracking service: calls (evidence: `src/modules/bookings/tracking/bookingTracking.controller.js`)
- Tracking service → Tracking repository: uses repository (evidence: `src/modules/bookings/tracking/bookingTracking.service.js`)
- Shipment assignment → Assignment service: calls (evidence: `src/modules/shipmentAssignment/shipmentAssignment.controller.js`)
- Assignment service → Assignment repository: uses repository (evidence: `src/modules/shipmentAssignment/shipmentAssignment.service.js`)
- Delivery attempts → Delivery service: calls (evidence: `src/modules/delivery/delivery.controller.js`)
- Employee management → Employee service: calls (evidence: `src/modules/employee/employee.controller.js`)
- Role management → Roles service: calls (evidence: `src/modules/roles/roles.controller.js`)
- Product management → Product service: calls (evidence: `src/modules/product/product.controller.js`)
- Hub management → Hub service: calls (evidence: `src/modules/hub/hub.controller.js`)
