# aguzr10/dealerships-cars architecture

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

- Interactive diagram: https://gitdiagram.com/aguzr10/dealerships-cars
- Repository: https://github.com/aguzr10/dealerships-cars

## Overview

The README describes PostgreSQL schema provisioning and seed data as the repository’s product. The tree also contains a NestJS API scaffold: its controllers expose car and dealership routes, but the sampled services return placeholder strings rather than accessing the database. The API modules configure PostgreSQL connectivity, but no sampled evidence shows CRUD calls reaching it. Evidence for unsampled wiring is limited to the README and SOURCE INDEX references.

Main entry points: [`api/src/app.module.ts`](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/app.module.ts) (App configuration), [`api/src/cars/cars.controller.ts`](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/cars/cars.controller.ts) (Car routes), [`api/src/dealerships/dealerships.controller.ts`](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/dealerships/dealerships.controller.ts) (Dealership routes), [`api/src/cars/entities/car.entity.ts`](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/cars/entities/car.entity.ts) (Car entity)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_database["Database provisioning"]
  node_postgres[("PostgreSQL")]
  node_schema["Schema and seeds<br/>[init.sql]"]
  node_compose["Compose setup<br/>[docker-compose.yml]"]
end

subgraph group_api["NestJS API scaffold"]
  node_app["Application bootstrap<br/>[main.ts]"]
  node_appmodule["App configuration<br/>[app.module.ts]"]
  node_home["Health greeting<br/>[app.controller.ts]"]
  node_appservice["Greeting service<br/>[app.service.ts]"]
  node_carscontroller["Car routes<br/>[cars.controller.ts]"]
  node_carsservice["Car service<br/>[cars.service.ts]"]
  node_cardtos["Car DTOs"]
  node_carentity["Car entity<br/>[car.entity.ts]"]
  node_carstatus["Car status"]
  node_dealershipcontroller["Dealership routes"]
  node_dealershipservice["Dealership service"]
  node_dealershipdtos["Dealership DTOs"]
  node_dealershipentity["Dealership entity"]
end

node_operator(("Operator"))
node_client(("API client"))

node_operator -->|"starts"| node_compose
node_compose -->|"starts database"| node_postgres
node_schema -->|"initializes tables"| node_postgres
node_app -->|"boots"| node_appmodule
node_appmodule -->|"registers"| node_carscontroller
node_appmodule -->|"registers"| node_dealershipcontroller
node_appmodule -->|"configures connection"| node_postgres
node_appmodule -->|"registers"| node_home
node_appmodule -->|"provides"| node_appservice
node_client -->|"requests routes"| node_carscontroller
node_client -->|"requests routes"| node_dealershipcontroller
node_client -->|"requests greeting"| node_home
node_home -->|"calls"| node_appservice
node_carscontroller -->|"delegates"| node_carsservice
node_carscontroller -->|"accepts"| node_cardtos
node_dealershipcontroller -->|"delegates"| node_dealershipservice
node_dealershipcontroller -->|"accepts"| node_dealershipdtos
node_carentity -->|"references"| node_dealershipentity
node_dealershipentity -->|"references"| node_carentity
node_carentity -->|"uses"| node_carstatus

click node_schema "https://github.com/aguzr10/dealerships-cars/blob/main/db/init.sql"
click node_compose "https://github.com/aguzr10/dealerships-cars/blob/main/docker-compose.yml"
click node_app "https://github.com/aguzr10/dealerships-cars/blob/main/api/src/main.ts"
click node_appmodule "https://github.com/aguzr10/dealerships-cars/blob/main/api/src/app.module.ts"
click node_home "https://github.com/aguzr10/dealerships-cars/blob/main/api/src/app.controller.ts"
click node_appservice "https://github.com/aguzr10/dealerships-cars/blob/main/api/src/app.service.ts"
click node_carscontroller "https://github.com/aguzr10/dealerships-cars/blob/main/api/src/cars/cars.controller.ts"
click node_carsservice "https://github.com/aguzr10/dealerships-cars/blob/main/api/src/cars/cars.service.ts"
click node_cardtos "https://github.com/aguzr10/dealerships-cars/tree/main/api/src/cars/dto"
click node_carentity "https://github.com/aguzr10/dealerships-cars/blob/main/api/src/cars/entities/car.entity.ts"
click node_carstatus "https://github.com/aguzr10/dealerships-cars/blob/main/api/src/cars/entities/car-status.enums.ts"
click node_dealershipcontroller "https://github.com/aguzr10/dealerships-cars/blob/main/api/src/dealerships/dealerships.controller.ts"
click node_dealershipservice "https://github.com/aguzr10/dealerships-cars/blob/main/api/src/dealerships/dealerships.service.ts"
click node_dealershipdtos "https://github.com/aguzr10/dealerships-cars/tree/main/api/src/dealerships/dto"
click node_dealershipentity "https://github.com/aguzr10/dealerships-cars/blob/main/api/src/dealerships/entities/dealership.entity.ts"

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_postgres,node_schema,node_compose,node_client toneBlue
class node_app,node_appmodule,node_home,node_appservice,node_carscontroller,node_carsservice,node_cardtos,node_carentity,node_carstatus,node_dealershipcontroller,node_dealershipservice,node_dealershipdtos,node_dealershipentity toneAmber
class node_operator toneIndigo
```

## Components

### Database provisioning

- **PostgreSQL**
- [Schema and seeds](https://github.com/aguzr10/dealerships-cars/blob/main/db/init.sql): `db/init.sql`
- [Compose setup](https://github.com/aguzr10/dealerships-cars/blob/main/docker-compose.yml): `docker-compose.yml`

### NestJS API scaffold

- [Application bootstrap](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/main.ts): `api/src/main.ts`
- [App configuration](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/app.module.ts): `api/src/app.module.ts`
- [Health greeting](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/app.controller.ts): `api/src/app.controller.ts`
- [Greeting service](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/app.service.ts): `api/src/app.service.ts`
- [Car routes](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/cars/cars.controller.ts): `api/src/cars/cars.controller.ts`
- [Car service](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/cars/cars.service.ts): `api/src/cars/cars.service.ts`
- [Car DTOs](https://github.com/aguzr10/dealerships-cars/tree/main/api/src/cars/dto): `api/src/cars/dto`
- [Car entity](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/cars/entities/car.entity.ts): `api/src/cars/entities/car.entity.ts`
- [Car status](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/cars/entities/car-status.enums.ts): `api/src/cars/entities/car-status.enums.ts`
- [Dealership routes](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/dealerships/dealerships.controller.ts): `api/src/dealerships/dealerships.controller.ts`
- [Dealership service](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/dealerships/dealerships.service.ts): `api/src/dealerships/dealerships.service.ts`
- [Dealership DTOs](https://github.com/aguzr10/dealerships-cars/tree/main/api/src/dealerships/dto): `api/src/dealerships/dto`
- [Dealership entity](https://github.com/aguzr10/dealerships-cars/blob/main/api/src/dealerships/entities/dealership.entity.ts): `api/src/dealerships/entities/dealership.entity.ts`

### Other components

- **Operator**
- **API client**

## Connections

- Operator → Compose setup: starts (evidence: `README.md`)
- Compose setup → PostgreSQL: starts database (evidence: `README.md`)
- Schema and seeds → PostgreSQL: initializes tables (evidence: `README.md`)
- Application bootstrap → App configuration: boots (evidence: `api/src/main.ts`)
- App configuration → Car routes: registers (evidence: `api/src/app.module.ts`)
- App configuration → Dealership routes: registers (evidence: `api/src/app.module.ts`)
- App configuration → PostgreSQL: configures connection (evidence: `api/src/app.module.ts`)
- App configuration → Health greeting: registers (evidence: `api/src/app.module.ts`)
- App configuration → Greeting service: provides (evidence: `api/src/app.module.ts`)
- API client → Car routes: requests routes (evidence: `api/src/cars/cars.controller.ts`)
- API client → Dealership routes: requests routes (evidence: `api/src/dealerships/dealerships.controller.ts`)
- API client → Health greeting: requests greeting (evidence: `api/src/app.controller.ts`)
- Health greeting → Greeting service: calls (evidence: `api/src/app.controller.ts`)
- Car routes → Car service: delegates (evidence: `api/src/cars/cars.controller.ts`)
- Car routes → Car DTOs: accepts (evidence: `api/src/cars/cars.controller.ts`)
- Dealership routes → Dealership service: delegates (evidence: `api/src/dealerships/dealerships.controller.ts`)
- Dealership routes → Dealership DTOs: accepts (evidence: `api/src/dealerships/dealerships.controller.ts`)
- Car entity → Dealership entity: references (evidence: `api/src/cars/entities/car.entity.ts`)
- Dealership entity → Car entity: references (evidence: `api/src/dealerships/entities/dealership.entity.ts`)
- Car entity → Car status: uses (evidence: `api/src/cars/entities/car.entity.ts`)
