# mmitic99/javapraksavehicleservice architecture

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

- Interactive diagram: https://gitdiagram.com/mmitic99/javapraksavehicleservice
- Repository: https://github.com/mmitic99/javapraksavehicleservice

## Overview

VehicleService is a small Spring Boot service with a root response, a user-service proxy route, and JPA vehicle, rental, and address entities. The sampled code does not show vehicle-management endpoints, repositories, or database configuration, so the graph represents the available entity relationships without asserting persistence operations. The referenced UserService API is outside this repository; its integration is visible only through the controller and application configuration.

Main entry points: [`src/main/java/levi9/VehicleService/model/Rent.java`](https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/model/Rent.java) (Rental entity), [`src/main/java/levi9/VehicleService/Controller.java`](https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/Controller.java) (REST controller), [`src/main/java/levi9/VehicleService/model/Vehicle.java`](https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/model/Vehicle.java) (Vehicle entity), [`src/main/java/levi9/VehicleService/model/Address.java`](https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/model/Address.java) (Address entity)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_http["HTTP service"]
  node_controller["REST controller<br/>[Controller.java]"]
  node_application["Spring application"]
end

subgraph group_integration["Service integration"]
  node_user_api["User service API"]
  node_vehicle_api["Vehicle API client"]
end

subgraph group_domain["Rental domain"]
  node_vehicle["Vehicle entity<br/>[Vehicle.java]"]
  node_rent["Rental entity<br/>[Rent.java]"]
  node_address["Address entity<br/>[Address.java]"]
end

node_caller(("HTTP caller"))

node_caller -->|"HTTP requests"| node_controller
node_controller -->|"calls example"| node_user_api
node_vehicle_api -.->|"targets vehicle service"| node_caller
node_vehicle -->|"references address"| node_address
node_rent -->|"references vehicle"| node_vehicle
node_rent -->|"references addresses"| node_address

click node_controller "https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/Controller.java"
click node_application "https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/VehicleServiceApplication.java"
click node_vehicle_api "https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/api/VehicleServiceApi.java"
click node_vehicle "https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/model/Vehicle.java"
click node_rent "https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/model/Rent.java"
click node_address "https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/model/Address.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_controller,node_application toneBlue
class node_user_api,node_vehicle_api toneAmber
class node_vehicle,node_rent,node_address toneMint
class node_caller toneIndigo
```

## Components

### HTTP service

- [REST controller](https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/Controller.java): `src/main/java/levi9/VehicleService/Controller.java`
- [Spring application](https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/VehicleServiceApplication.java): `src/main/java/levi9/VehicleService/VehicleServiceApplication.java`

### Service integration

- **User service API**
- [Vehicle API client](https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/api/VehicleServiceApi.java): `src/main/java/levi9/VehicleService/api/VehicleServiceApi.java`

### Rental domain

- [Vehicle entity](https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/model/Vehicle.java): `src/main/java/levi9/VehicleService/model/Vehicle.java`
- [Rental entity](https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/model/Rent.java): `src/main/java/levi9/VehicleService/model/Rent.java`
- [Address entity](https://github.com/mmitic99/javapraksavehicleservice/blob/main/src/main/java/levi9/VehicleService/model/Address.java): `src/main/java/levi9/VehicleService/model/Address.java`

### Other components

- **HTTP caller**

## Connections

- HTTP caller → REST controller: HTTP requests (evidence: `src/main/java/levi9/VehicleService/Controller.java`)
- REST controller → User service API: calls example (evidence: `src/main/java/levi9/VehicleService/Controller.java`)
- Vehicle API client → HTTP caller: targets vehicle service (evidence: `src/main/java/levi9/VehicleService/api/VehicleServiceApi.java`)
- Vehicle entity → Address entity: references address (evidence: `src/main/java/levi9/VehicleService/model/Vehicle.java`)
- Rental entity → Vehicle entity: references vehicle (evidence: `src/main/java/levi9/VehicleService/model/Rent.java`)
- Rental entity → Address entity: references addresses (evidence: `src/main/java/levi9/VehicleService/model/Rent.java`)
