# naveenkumar-141-pro/parcelbookingproject architecture

> Architecture diagram of the GitHub repository naveenkumar-141-pro/parcelbookingproject, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/naveenkumar-141-pro/parcelbookingproject
- Repository: https://github.com/naveenkumar-141-pro/parcelbookingproject

## Overview

This Spring application supports parcel booking and fulfillment: customers register, book parcels, pay, then view tracking and invoices; administrators manage parcels and advance delivery status. Controllers expose those workflows, services apply business rules, repositories persist the domain, and entities capture users, parcels, payments, and tracking events. The graph retains the major customer and admin branches visible in the tree and source index. The README is empty, so unsampled template capabilities and integrations are not inferred; edges reflect only indexed or excerpted relationships.

Main entry points: [`src/main/java/com/parcelBooking/repository`](https://github.com/naveenkumar-141-pro/parcelbookingproject/tree/master/src/main/java/com/parcelBooking/repository) (JPA repositories), [`src/main/java/com/parcelBooking/service/TrackingService.java`](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/TrackingService.java) (Tracking events), [`src/main/java/com/parcelBooking/service/ParcelService.java`](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/ParcelService.java) (Parcel rules), [`src/main/java/com/parcelBooking/controller/AuthController.java`](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/AuthController.java) (Registration and login)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web and access"]
  node_auth["Registration and login"]
  node_home["Home routing"]
  node_security["Access control"]
  node_exceptions["Domain errors"]
end

subgraph group_customer["Customer parcel workflows"]
  node_booking["Parcel booking"]
  node_parcelservice["Parcel rules<br/>[ParcelService.java]"]
  node_payment["Payment processing"]
  node_paymentservice["Payment rules"]
  node_invoice["Invoice access"]
  node_invoiceservice["Invoice checks"]
  node_tracking["Tracking history"]
end

subgraph group_operations["Delivery operations"]
  node_adminui["Parcel administration"]
  node_adminservice["Status management<br/>[AdminService.java]"]
  node_trackingservice["Tracking events"]
end

subgraph group_data["Domain and persistence"]
  node_userdomain["User accounts<br/>[User.java]"]
  node_parceldomain["Parcel and status<br/>[Parcel.java]"]
  node_paymentdomain["Payment records<br/>[Payment.java]"]
  node_trackingdomain["Tracking events<br/>[TrackingEvent.java]"]
  node_repositories[("JPA repositories")]
end

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

node_customer -->|"registers or logs in"| node_auth
node_customer -->|"books parcels"| node_booking
node_customer -->|"pays for parcel"| node_payment
node_customer -->|"requests invoice"| node_invoice
node_customer -->|"views tracking"| node_tracking
node_admin -->|"manages parcels"| node_adminui
node_auth -->|"uses account data"| node_userdomain
node_auth -.->|"authenticates through"| node_security
node_booking -->|"delegates booking"| node_parcelservice
node_parcelservice -->|"reads and saves"| node_repositories
node_parcelservice -->|"creates initial event"| node_trackingservice
node_parcelservice -->|"builds parcel"| node_parceldomain
node_payment -->|"delegates payment"| node_paymentservice
node_paymentservice -->|"reads and saves"| node_repositories
node_paymentservice -->|"creates payment"| node_paymentdomain
node_invoice -->|"delegates invoice checks"| node_invoiceservice
node_invoiceservice -->|"reads parcel and payment"| node_repositories
node_tracking -->|"requests history"| node_trackingservice
node_adminui -->|"delegates operations"| node_adminservice
node_adminservice -->|"reads and saves"| node_repositories
node_adminservice -->|"records status change"| node_trackingservice
node_trackingservice -->|"stores and reads events"| node_repositories
node_trackingservice -->|"creates events"| node_trackingdomain
node_repositories -->|"persists parcels"| node_parceldomain
node_repositories -->|"persists payments"| node_paymentdomain
node_repositories -->|"persists users"| node_userdomain
node_repositories -->|"persists events"| node_trackingdomain

click node_auth "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/AuthController.java"
click node_home "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/HomeController.java"
click node_security "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/config/SecurityConfig.java"
click node_booking "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/ParcelController.java"
click node_parcelservice "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/ParcelService.java"
click node_payment "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/PaymentController.java"
click node_paymentservice "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/PaymentService.java"
click node_invoice "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/InvoiceController.java"
click node_invoiceservice "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/InvoiceService.java"
click node_tracking "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/TrackingController.java"
click node_adminui "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/AdminController.java"
click node_adminservice "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/AdminService.java"
click node_trackingservice "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/TrackingService.java"
click node_userdomain "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/entity/User.java"
click node_parceldomain "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/entity/Parcel.java"
click node_paymentdomain "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/entity/Payment.java"
click node_trackingdomain "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/entity/TrackingEvent.java"
click node_repositories "https://github.com/naveenkumar-141-pro/parcelbookingproject/tree/master/src/main/java/com/parcelBooking/repository"
click node_exceptions "https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/exception/GlobalExceptionHandler.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,node_home,node_security,node_exceptions toneBlue
class node_booking,node_parcelservice,node_payment,node_paymentservice,node_invoice,node_invoiceservice,node_tracking toneAmber
class node_adminui,node_adminservice,node_trackingservice toneMint
class node_userdomain,node_parceldomain,node_paymentdomain,node_trackingdomain,node_repositories toneRose
class node_customer,node_admin toneIndigo
```

## Components

### Web and access

- [Registration and login](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/AuthController.java): `src/main/java/com/parcelBooking/controller/AuthController.java`
- [Home routing](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/HomeController.java): `src/main/java/com/parcelBooking/controller/HomeController.java`
- [Access control](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/config/SecurityConfig.java): `src/main/java/com/parcelBooking/config/SecurityConfig.java`
- [Domain errors](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/exception/GlobalExceptionHandler.java): `src/main/java/com/parcelBooking/exception/GlobalExceptionHandler.java`

### Customer parcel workflows

- [Parcel booking](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/ParcelController.java): `src/main/java/com/parcelBooking/controller/ParcelController.java`
- [Parcel rules](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/ParcelService.java): `src/main/java/com/parcelBooking/service/ParcelService.java`
- [Payment processing](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/PaymentController.java): `src/main/java/com/parcelBooking/controller/PaymentController.java`
- [Payment rules](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/PaymentService.java): `src/main/java/com/parcelBooking/service/PaymentService.java`
- [Invoice access](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/InvoiceController.java): `src/main/java/com/parcelBooking/controller/InvoiceController.java`
- [Invoice checks](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/InvoiceService.java): `src/main/java/com/parcelBooking/service/InvoiceService.java`
- [Tracking history](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/TrackingController.java): `src/main/java/com/parcelBooking/controller/TrackingController.java`

### Delivery operations

- [Parcel administration](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/controller/AdminController.java): `src/main/java/com/parcelBooking/controller/AdminController.java`
- [Status management](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/AdminService.java): `src/main/java/com/parcelBooking/service/AdminService.java`
- [Tracking events](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/service/TrackingService.java): `src/main/java/com/parcelBooking/service/TrackingService.java`

### Domain and persistence

- [User accounts](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/entity/User.java): `src/main/java/com/parcelBooking/entity/User.java`
- [Parcel and status](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/entity/Parcel.java): `src/main/java/com/parcelBooking/entity/Parcel.java`
- [Payment records](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/entity/Payment.java): `src/main/java/com/parcelBooking/entity/Payment.java`
- [Tracking events](https://github.com/naveenkumar-141-pro/parcelbookingproject/blob/master/src/main/java/com/parcelBooking/entity/TrackingEvent.java): `src/main/java/com/parcelBooking/entity/TrackingEvent.java`
- [JPA repositories](https://github.com/naveenkumar-141-pro/parcelbookingproject/tree/master/src/main/java/com/parcelBooking/repository): `src/main/java/com/parcelBooking/repository`

### Other components

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

## Connections

- Customer → Registration and login: registers or logs in (evidence: `src/main/java/com/parcelBooking/controller/AuthController.java`)
- Customer → Parcel booking: books parcels (evidence: `src/main/java/com/parcelBooking/controller/ParcelController.java`)
- Customer → Payment processing: pays for parcel (evidence: `src/main/java/com/parcelBooking/controller/PaymentController.java`)
- Customer → Invoice access: requests invoice (evidence: `src/main/java/com/parcelBooking/controller/InvoiceController.java`)
- Customer → Tracking history: views tracking (evidence: `src/main/java/com/parcelBooking/controller/TrackingController.java`)
- Administrator → Parcel administration: manages parcels (evidence: `src/main/java/com/parcelBooking/controller/AdminController.java`)
- Registration and login → User accounts: uses account data (evidence: `src/main/java/com/parcelBooking/controller/AuthController.java`)
- Registration and login → Access control: authenticates through
- Parcel booking → Parcel rules: delegates booking (evidence: `src/main/java/com/parcelBooking/controller/ParcelController.java`)
- Parcel rules → JPA repositories: reads and saves (evidence: `src/main/java/com/parcelBooking/service/ParcelService.java`)
- Parcel rules → Tracking events: creates initial event (evidence: `src/main/java/com/parcelBooking/service/ParcelService.java`)
- Parcel rules → Parcel and status: builds parcel (evidence: `src/main/java/com/parcelBooking/service/ParcelService.java`)
- Payment processing → Payment rules: delegates payment (evidence: `src/main/java/com/parcelBooking/controller/PaymentController.java`)
- Payment rules → JPA repositories: reads and saves (evidence: `src/main/java/com/parcelBooking/service/PaymentService.java`)
- Payment rules → Payment records: creates payment (evidence: `src/main/java/com/parcelBooking/service/PaymentService.java`)
- Invoice access → Invoice checks: delegates invoice checks (evidence: `src/main/java/com/parcelBooking/controller/InvoiceController.java`)
- Invoice checks → JPA repositories: reads parcel and payment (evidence: `src/main/java/com/parcelBooking/service/InvoiceService.java`)
- Tracking history → Tracking events: requests history (evidence: `src/main/java/com/parcelBooking/controller/TrackingController.java`)
- Parcel administration → Status management: delegates operations (evidence: `src/main/java/com/parcelBooking/controller/AdminController.java`)
- Status management → JPA repositories: reads and saves (evidence: `src/main/java/com/parcelBooking/service/AdminService.java`)
- Status management → Tracking events: records status change (evidence: `src/main/java/com/parcelBooking/service/AdminService.java`)
- Tracking events → JPA repositories: stores and reads events (evidence: `src/main/java/com/parcelBooking/service/TrackingService.java`)
- Tracking events → Tracking events: creates events (evidence: `src/main/java/com/parcelBooking/service/TrackingService.java`)
- JPA repositories → Parcel and status: persists parcels (evidence: `src/main/java/com/parcelBooking/repository/ParcelRepository.java`)
- JPA repositories → Payment records: persists payments (evidence: `src/main/java/com/parcelBooking/repository/PaymentRepository.java`)
- JPA repositories → User accounts: persists users (evidence: `src/main/java/com/parcelBooking/repository/UserRepository.java`)
- JPA repositories → Tracking events: persists events (evidence: `src/main/java/com/parcelBooking/repository/TrackingEventRepository.java`)
