# dsanchos/auto-backend architecture

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

- Interactive diagram: https://gitdiagram.com/dsanchos/auto-backend
- Repository: https://github.com/dsanchos/auto-backend

## Overview

This is a NestJS API for user authentication and basic automobile listing management. Clients register or log in to receive a JWT, can retrieve their profile through an authenticated endpoint, and can create or browse automobile records. The map reflects sampled controller and service calls; the README is only a generic NestJS starter and does not document additional product capabilities.

Main entry points: [`src/modules/auth/auth.controller.ts`](https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/auth.controller.ts) (Auth endpoints), [`src/modules/auth/auth.service.ts`](https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/auth.service.ts) (Auth service), [`src/modules/users/users.service.ts`](https://github.com/dsanchos/auto-backend/blob/main/src/modules/users/users.service.ts) (Users service), [`src/main.ts`](https://github.com/dsanchos/auto-backend/blob/main/src/main.ts) (HTTP bootstrap)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["API entry"]
  node_bootstrap["HTTP bootstrap<br/>[main.ts]"]
  node_app["App composition<br/>[app.module.ts]"]
end

subgraph group_identity["Identity"]
  node_auth_controller["Auth endpoints<br/>[auth.controller.ts]"]
  node_auth_service["Auth service<br/>[auth.service.ts]"]
  node_jwt_provider["JWT provider<br/>[auth.module.ts]"]
  node_jwt_guard["JWT guard<br/>[jwt-auth.guard.ts]"]
  node_jwt_strategy["JWT strategy<br/>[jwt.strategy.ts]"]
  node_users_service["Users service<br/>[users.service.ts]"]
end

subgraph group_listings["Auto listings"]
  node_auto_controller["Auto endpoints<br/>[auto.controller.ts]"]
  node_auto_service["Auto service<br/>[auto.service.ts]"]
end

subgraph group_persistence["Persistence"]
  node_user_model["User model<br/>[users.schema.ts]"]
  node_auto_model["Auto model<br/>[auto.schemas.ts]"]
  node_mongo[("MongoDB")]
end

node_client(("API client"))

node_client -->|"HTTP requests"| node_bootstrap
node_bootstrap -->|"creates app"| node_app
node_app -->|"connects"| node_mongo
node_client -->|"auth requests"| node_auth_controller
node_auth_controller -->|"registers or logs in"| node_auth_service
node_auth_service -->|"creates or finds user"| node_users_service
node_auth_service -->|"signs token"| node_jwt_provider
node_auth_controller -->|"guards profile"| node_jwt_guard
node_jwt_guard -->|"validates token"| node_jwt_strategy
node_auth_controller -->|"loads profile"| node_users_service
node_users_service -->|"queries or saves"| node_user_model
node_user_model -->|"persists users"| node_mongo
node_client -->|"listing requests"| node_auto_controller
node_auto_controller -->|"creates or queries"| node_auto_service
node_auto_service -->|"queries or saves"| node_auto_model
node_auto_model -->|"persists listings"| node_mongo

click node_bootstrap "https://github.com/dsanchos/auto-backend/blob/main/src/main.ts"
click node_app "https://github.com/dsanchos/auto-backend/blob/main/src/app.module.ts"
click node_auth_controller "https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/auth.controller.ts"
click node_auth_service "https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/auth.service.ts"
click node_jwt_provider "https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/auth.module.ts"
click node_jwt_guard "https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/jwt-auth.guard.ts"
click node_jwt_strategy "https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/strategy/jwt.strategy.ts"
click node_users_service "https://github.com/dsanchos/auto-backend/blob/main/src/modules/users/users.service.ts"
click node_user_model "https://github.com/dsanchos/auto-backend/blob/main/src/modules/users/schemas/users.schema.ts"
click node_auto_controller "https://github.com/dsanchos/auto-backend/blob/main/src/modules/auto/auto.controller.ts"
click node_auto_service "https://github.com/dsanchos/auto-backend/blob/main/src/modules/auto/auto.service.ts"
click node_auto_model "https://github.com/dsanchos/auto-backend/blob/main/src/modules/auto/schemas/auto.schemas.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_bootstrap,node_app,node_client toneBlue
class node_auth_controller,node_auth_service,node_jwt_provider,node_jwt_guard,node_jwt_strategy,node_users_service toneAmber
class node_auto_controller,node_auto_service toneMint
class node_user_model,node_auto_model,node_mongo toneRose
```

## Components

### API entry

- [HTTP bootstrap](https://github.com/dsanchos/auto-backend/blob/main/src/main.ts): `src/main.ts`
- [App composition](https://github.com/dsanchos/auto-backend/blob/main/src/app.module.ts): `src/app.module.ts`

### Identity

- [Auth endpoints](https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/auth.controller.ts): `src/modules/auth/auth.controller.ts`
- [Auth service](https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/auth.service.ts): `src/modules/auth/auth.service.ts`
- [JWT provider](https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/auth.module.ts): `src/modules/auth/auth.module.ts`
- [JWT guard](https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/jwt-auth.guard.ts): `src/modules/auth/jwt-auth.guard.ts`
- [JWT strategy](https://github.com/dsanchos/auto-backend/blob/main/src/modules/auth/strategy/jwt.strategy.ts): `src/modules/auth/strategy/jwt.strategy.ts`
- [Users service](https://github.com/dsanchos/auto-backend/blob/main/src/modules/users/users.service.ts): `src/modules/users/users.service.ts`

### Auto listings

- [Auto endpoints](https://github.com/dsanchos/auto-backend/blob/main/src/modules/auto/auto.controller.ts): `src/modules/auto/auto.controller.ts`
- [Auto service](https://github.com/dsanchos/auto-backend/blob/main/src/modules/auto/auto.service.ts): `src/modules/auto/auto.service.ts`

### Persistence

- [User model](https://github.com/dsanchos/auto-backend/blob/main/src/modules/users/schemas/users.schema.ts): `src/modules/users/schemas/users.schema.ts`
- [Auto model](https://github.com/dsanchos/auto-backend/blob/main/src/modules/auto/schemas/auto.schemas.ts): `src/modules/auto/schemas/auto.schemas.ts`
- **MongoDB**

### Other components

- **API client**

## Connections

- API client → HTTP bootstrap: HTTP requests
- HTTP bootstrap → App composition: creates app
- App composition → MongoDB: connects
- API client → Auth endpoints: auth requests
- Auth endpoints → Auth service: registers or logs in
- Auth service → Users service: creates or finds user
- Auth service → JWT provider: signs token
- Auth endpoints → JWT guard: guards profile
- JWT guard → JWT strategy: validates token
- Auth endpoints → Users service: loads profile
- Users service → User model: queries or saves
- User model → MongoDB: persists users
- API client → Auto endpoints: listing requests
- Auto endpoints → Auto service: creates or queries
- Auto service → Auto model: queries or saves
- Auto model → MongoDB: persists listings
