# rahulv17/dealership_management architecture

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

- Interactive diagram: https://gitdiagram.com/rahulv17/dealership_management
- Repository: https://github.com/rahulv17/dealership_management

## Overview

This is a JWT-secured automotive after-sales microservices platform, not a frontend application. The primary workflow is appointment booking, repair diagnosis, warranty eligibility, parts reservation, repair completion, invoicing, and payment; Kafka events also drive notifications, analytics, and audit. The graph preserves the documented master-data and supporting services. Cross-service relationships are based on the README’s documented flow and topology; unsampled implementation details are not asserted.

Main entry points: [`api-gateway/src/main/java/com/automotive/aftersales/gateway`](https://github.com/rahulv17/dealership_management/tree/main/api-gateway/src/main/java/com/automotive/aftersales/gateway) (API gateway), [`repair-order-service/src/main/java/com/automotive/aftersales/repair/service/RepairOrderService.java`](https://github.com/rahulv17/dealership_management/blob/main/repair-order-service/src/main/java/com/automotive/aftersales/repair/service/RepairOrderService.java) (Repair orders), [`appointment-service/src/main/java/com/automotive/aftersales/appointment/service/AppointmentService.java`](https://github.com/rahulv17/dealership_management/blob/main/appointment-service/src/main/java/com/automotive/aftersales/appointment/service/AppointmentService.java) (Appointments), [`payment-service/src/main/java/com/automotive/aftersales/payment/controller/PaymentController.java`](https://github.com/rahulv17/dealership_management/blob/main/payment-service/src/main/java/com/automotive/aftersales/payment/controller/PaymentController.java) (Payments)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_edge["Access and identity"]
  node_gateway["API gateway"]
  node_auth["Authentication"]
end

subgraph group_operations["Service operations"]
  node_vehicle["Vehicle records"]
  node_customer["Customer records"]
  node_dealer["Dealers and slots<br/>[DealerService.java]"]
  node_appointment["Appointments"]
  node_repair["Repair orders"]
  node_warranty["Warranty checks"]
end

subgraph group_supply["Parts and supply"]
  node_parts["Parts catalog<br/>[PartService.java]"]
  node_inventory["Stock reservations"]
  node_supplier["Supplier records"]
  node_warehouse["Warehouse records"]
  node_shipment["Shipments"]
end

subgraph group_commerce["Billing and payment"]
  node_invoice["Invoicing"]
  node_payment["Payments"]
end

subgraph group_events["Events and insight"]
  node_notification["Notifications"]
  node_analytics["Analytics"]
  node_audit["Audit log"]
end

subgraph group_platform["Platform services"]
  node_kafka["Kafka events"]
  node_discovery["Service discovery"]
  node_config["Configuration"]
  node_mysql[("Per-service MySQL")]
  node_redis[("Redis cache")]
end

node_user(("API client"))

node_user -->|"sends requests"| node_gateway
node_gateway -->|"routes auth"| node_auth
node_gateway -->|"routes requests"| node_vehicle
node_gateway -->|"routes requests"| node_appointment
node_gateway -->|"routes requests"| node_repair
node_gateway -->|"routes requests"| node_payment
node_appointment -.->|"checks slots"| node_dealer
node_repair -->|"checks eligibility"| node_warranty
node_repair -->|"reserves stock"| node_inventory
node_repair -->|"publishes completion"| node_kafka
node_kafka -->|"delivers repair events"| node_invoice
node_kafka -->|"delivers events"| node_notification
node_kafka -->|"delivers events"| node_analytics
node_payment -->|"records payment event"| node_kafka
node_kafka -->|"delivers payment events"| node_audit
node_kafka -.->|"delivers stock alerts"| node_supplier
node_kafka -.->|"delivers warranty events"| node_warehouse
node_kafka -.->|"delivers warranty events"| node_shipment
node_gateway -->|"resolves routes"| node_discovery
node_config -.->|"provides configuration"| node_gateway
node_vehicle -->|"reads and writes"| node_mysql
node_customer -->|"reads and writes"| node_mysql
node_appointment -->|"reads and writes"| node_mysql
node_repair -->|"reads and writes"| node_mysql
node_inventory -->|"reads and writes"| node_mysql
node_payment -->|"reads and writes"| node_mysql
node_repair -->|"caches lookups"| node_redis

click node_gateway "https://github.com/rahulv17/dealership_management/tree/main/api-gateway/src/main/java/com/automotive/aftersales/gateway"
click node_auth "https://github.com/rahulv17/dealership_management/blob/main/auth-service/src/main/java/com/automotive/aftersales/auth/controller/AuthController.java"
click node_vehicle "https://github.com/rahulv17/dealership_management/blob/main/vehicle-service/src/main/java/com/automotive/aftersales/vehicle/service/VehicleService.java"
click node_customer "https://github.com/rahulv17/dealership_management/blob/main/customer-service/src/main/java/com/automotive/aftersales/customer/service/CustomerService.java"
click node_dealer "https://github.com/rahulv17/dealership_management/blob/main/dealer-service/src/main/java/com/automotive/aftersales/dealer/service/DealerService.java"
click node_appointment "https://github.com/rahulv17/dealership_management/blob/main/appointment-service/src/main/java/com/automotive/aftersales/appointment/service/AppointmentService.java"
click node_repair "https://github.com/rahulv17/dealership_management/blob/main/repair-order-service/src/main/java/com/automotive/aftersales/repair/service/RepairOrderService.java"
click node_warranty "https://github.com/rahulv17/dealership_management/tree/main/warranty-service/src/main/java/com/automotive/aftersales/warranty/service"
click node_parts "https://github.com/rahulv17/dealership_management/blob/main/parts-service/src/main/java/com/automotive/aftersales/parts/service/PartService.java"
click node_inventory "https://github.com/rahulv17/dealership_management/blob/main/inventory-service/src/main/java/com/automotive/aftersales/inventory/service/InventoryService.java"
click node_supplier "https://github.com/rahulv17/dealership_management/blob/main/supplier-service/src/main/java/com/automotive/aftersales/supplier/service/SupplierService.java"
click node_warehouse "https://github.com/rahulv17/dealership_management/blob/main/warehouse-service/src/main/java/com/automotive/aftersales/warehouse/service/WarehouseService.java"
click node_shipment "https://github.com/rahulv17/dealership_management/tree/main/shipment-service/src/main/java/com/automotive/aftersales/shipment"
click node_invoice "https://github.com/rahulv17/dealership_management/tree/main/invoice-service/src/main/java/com/automotive/aftersales/invoice"
click node_payment "https://github.com/rahulv17/dealership_management/blob/main/payment-service/src/main/java/com/automotive/aftersales/payment/controller/PaymentController.java"
click node_notification "https://github.com/rahulv17/dealership_management/tree/main/notification-service/src/main/java/com/automotive/aftersales/notification"
click node_analytics "https://github.com/rahulv17/dealership_management/tree/main/analytics-service/src/main/java/com/automotive/aftersales/analytics"
click node_audit "https://github.com/rahulv17/dealership_management/tree/main/audit-service/src/main/java/com/automotive/aftersales/audit"
click node_discovery "https://github.com/rahulv17/dealership_management/blob/main/discovery-server/src/main/java/com/automotive/aftersales/discovery/DiscoveryServerApplication.java"
click node_config "https://github.com/rahulv17/dealership_management/blob/main/config-server/src/main/java/com/automotive/aftersales/config/ConfigServerApplication.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_gateway,node_auth,node_user toneBlue
class node_vehicle,node_customer,node_dealer,node_appointment,node_repair,node_warranty toneAmber
class node_parts,node_inventory,node_supplier,node_warehouse,node_shipment toneMint
class node_invoice,node_payment toneRose
class node_notification,node_analytics,node_audit toneIndigo
class node_kafka,node_discovery,node_config,node_mysql,node_redis toneTeal
```

## Components

### Access and identity

- [API gateway](https://github.com/rahulv17/dealership_management/tree/main/api-gateway/src/main/java/com/automotive/aftersales/gateway): `api-gateway/src/main/java/com/automotive/aftersales/gateway`
- [Authentication](https://github.com/rahulv17/dealership_management/blob/main/auth-service/src/main/java/com/automotive/aftersales/auth/controller/AuthController.java): `auth-service/src/main/java/com/automotive/aftersales/auth/controller/AuthController.java`

### Service operations

- [Vehicle records](https://github.com/rahulv17/dealership_management/blob/main/vehicle-service/src/main/java/com/automotive/aftersales/vehicle/service/VehicleService.java): `vehicle-service/src/main/java/com/automotive/aftersales/vehicle/service/VehicleService.java`
- [Customer records](https://github.com/rahulv17/dealership_management/blob/main/customer-service/src/main/java/com/automotive/aftersales/customer/service/CustomerService.java): `customer-service/src/main/java/com/automotive/aftersales/customer/service/CustomerService.java`
- [Dealers and slots](https://github.com/rahulv17/dealership_management/blob/main/dealer-service/src/main/java/com/automotive/aftersales/dealer/service/DealerService.java): `dealer-service/src/main/java/com/automotive/aftersales/dealer/service/DealerService.java`
- [Appointments](https://github.com/rahulv17/dealership_management/blob/main/appointment-service/src/main/java/com/automotive/aftersales/appointment/service/AppointmentService.java): `appointment-service/src/main/java/com/automotive/aftersales/appointment/service/AppointmentService.java`
- [Repair orders](https://github.com/rahulv17/dealership_management/blob/main/repair-order-service/src/main/java/com/automotive/aftersales/repair/service/RepairOrderService.java): `repair-order-service/src/main/java/com/automotive/aftersales/repair/service/RepairOrderService.java`
- [Warranty checks](https://github.com/rahulv17/dealership_management/tree/main/warranty-service/src/main/java/com/automotive/aftersales/warranty/service): `warranty-service/src/main/java/com/automotive/aftersales/warranty/service`

### Parts and supply

- [Parts catalog](https://github.com/rahulv17/dealership_management/blob/main/parts-service/src/main/java/com/automotive/aftersales/parts/service/PartService.java): `parts-service/src/main/java/com/automotive/aftersales/parts/service/PartService.java`
- [Stock reservations](https://github.com/rahulv17/dealership_management/blob/main/inventory-service/src/main/java/com/automotive/aftersales/inventory/service/InventoryService.java): `inventory-service/src/main/java/com/automotive/aftersales/inventory/service/InventoryService.java`
- [Supplier records](https://github.com/rahulv17/dealership_management/blob/main/supplier-service/src/main/java/com/automotive/aftersales/supplier/service/SupplierService.java): `supplier-service/src/main/java/com/automotive/aftersales/supplier/service/SupplierService.java`
- [Warehouse records](https://github.com/rahulv17/dealership_management/blob/main/warehouse-service/src/main/java/com/automotive/aftersales/warehouse/service/WarehouseService.java): `warehouse-service/src/main/java/com/automotive/aftersales/warehouse/service/WarehouseService.java`
- [Shipments](https://github.com/rahulv17/dealership_management/tree/main/shipment-service/src/main/java/com/automotive/aftersales/shipment): `shipment-service/src/main/java/com/automotive/aftersales/shipment`

### Billing and payment

- [Invoicing](https://github.com/rahulv17/dealership_management/tree/main/invoice-service/src/main/java/com/automotive/aftersales/invoice): `invoice-service/src/main/java/com/automotive/aftersales/invoice`
- [Payments](https://github.com/rahulv17/dealership_management/blob/main/payment-service/src/main/java/com/automotive/aftersales/payment/controller/PaymentController.java): `payment-service/src/main/java/com/automotive/aftersales/payment/controller/PaymentController.java`

### Events and insight

- [Notifications](https://github.com/rahulv17/dealership_management/tree/main/notification-service/src/main/java/com/automotive/aftersales/notification): `notification-service/src/main/java/com/automotive/aftersales/notification`
- [Analytics](https://github.com/rahulv17/dealership_management/tree/main/analytics-service/src/main/java/com/automotive/aftersales/analytics): `analytics-service/src/main/java/com/automotive/aftersales/analytics`
- [Audit log](https://github.com/rahulv17/dealership_management/tree/main/audit-service/src/main/java/com/automotive/aftersales/audit): `audit-service/src/main/java/com/automotive/aftersales/audit`

### Platform services

- **Kafka events**
- [Service discovery](https://github.com/rahulv17/dealership_management/blob/main/discovery-server/src/main/java/com/automotive/aftersales/discovery/DiscoveryServerApplication.java): `discovery-server/src/main/java/com/automotive/aftersales/discovery/DiscoveryServerApplication.java`
- [Configuration](https://github.com/rahulv17/dealership_management/blob/main/config-server/src/main/java/com/automotive/aftersales/config/ConfigServerApplication.java): `config-server/src/main/java/com/automotive/aftersales/config/ConfigServerApplication.java`
- **Per-service MySQL**
- **Redis cache**

### Other components

- **API client**

## Connections

- API client → API gateway: sends requests
- API gateway → Authentication: routes auth
- API gateway → Vehicle records: routes requests
- API gateway → Appointments: routes requests
- API gateway → Repair orders: routes requests
- API gateway → Payments: routes requests
- Appointments → Dealers and slots: checks slots
- Repair orders → Warranty checks: checks eligibility (evidence: `repair-order-service/src/main/java/com/automotive/aftersales/repair/service/RepairOrderService.java`)
- Repair orders → Stock reservations: reserves stock (evidence: `repair-order-service/src/main/java/com/automotive/aftersales/repair/service/RepairOrderService.java`)
- Repair orders → Kafka events: publishes completion (evidence: `repair-order-service/src/main/java/com/automotive/aftersales/repair/service/RepairOrderService.java`)
- Kafka events → Invoicing: delivers repair events
- Kafka events → Notifications: delivers events
- Kafka events → Analytics: delivers events
- Payments → Kafka events: records payment event (evidence: `payment-service/src/main/java/com/automotive/aftersales/payment/controller/PaymentController.java`)
- Kafka events → Audit log: delivers payment events
- Kafka events → Supplier records: delivers stock alerts
- Kafka events → Warehouse records: delivers warranty events
- Kafka events → Shipments: delivers warranty events
- API gateway → Service discovery: resolves routes
- Configuration → API gateway: provides configuration
- Vehicle records → Per-service MySQL: reads and writes
- Customer records → Per-service MySQL: reads and writes
- Appointments → Per-service MySQL: reads and writes
- Repair orders → Per-service MySQL: reads and writes
- Stock reservations → Per-service MySQL: reads and writes
- Payments → Per-service MySQL: reads and writes
- Repair orders → Redis cache: caches lookups
