# shado-07/gaari-bhara-backend architecture

> Architecture diagram of the GitHub repository shado-07/gaari-bhara-backend, 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/shado-07/gaari-bhara-backend
- Repository: https://github.com/shado-07/gaari-bhara-backend

## Overview

Gaari Bhara is a NestJS backend for a peer-to-peer vehicle-rental information platform; the README explicitly says it does not handle payments. The visible workflow is API request routing into authentication and domain services, with PostgreSQL-backed health checks and domain data. Major implemented branches include account and admin-user management, post discovery and image handling, catalog lookup, and admin audit-log access. The README describes rents, reviews, and chat as not yet implemented. Some subsystem links are based on the SOURCE INDEX or README because their implementation files were not sampled.

Main entry points: [`src/app.module.ts`](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/app.module.ts) (Module composition), [`src/modules/auth/guards/auth.guard.ts`](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/auth/guards/auth.guard.ts) (Token guard), [`src/modules/post/posts.controller.ts`](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/post/posts.controller.ts) (Post routes), [`src/modules/auth/auth.service.ts`](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/auth/auth.service.ts) (Authentication service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["API runtime"]
  node_bootstrap["Application bootstrap<br/>[main.ts]"]
  node_module["Module composition<br/>[app.module.ts]"]
  node_system_routes["System routes<br/>[app.controller.ts]"]
  node_health["Health check<br/>[app.service.ts]"]
  node_postgres[("PostgreSQL")]
end

subgraph group_identity["Identity and access"]
  node_auth_routes["Authentication routes<br/>[auth.controller.ts]"]
  node_auth_logic["Authentication service<br/>[auth.service.ts]"]
  node_auth_guard["Token guard<br/>[auth.guard.ts]"]
  node_revoked_tokens["Revoked tokens"]
  node_users_routes["User routes"]
  node_users_logic["User service<br/>[users.service.ts]"]
end

subgraph group_marketplace["Marketplace"]
  node_posts_routes["Post routes"]
  node_posts_logic["Post service<br/>[posts.service.ts]"]
  node_post_images["Post images"]
  node_catalog_routes["Catalog routes"]
  node_catalog_logic["Catalog service<br/>[catalog.service.ts]"]
end

subgraph group_operations["Administration"]
  node_admin_users["Admin user routes"]
  node_admin_posts["Admin post routes"]
  node_audit_routes["Audit routes"]
  node_audit_logic["Audit service<br/>[audit.service.ts]"]
end

node_client(("API caller"))

node_client -.->|"sends requests"| node_bootstrap
node_bootstrap -->|"starts"| node_module
node_module -->|"registers"| node_system_routes
node_module -->|"configures"| node_postgres
node_module -->|"registers"| node_auth_routes
node_module -->|"registers"| node_users_routes
node_module -->|"registers"| node_audit_routes
node_module -->|"registers"| node_catalog_routes
node_module -->|"registers"| node_posts_routes
node_system_routes -->|"calls"| node_health
node_health -->|"pings"| node_postgres
node_auth_routes -->|"calls"| node_auth_logic
node_auth_guard -->|"authenticates with"| node_auth_logic
node_auth_logic -->|"loads users from"| node_users_logic
node_auth_logic -->|"checks revocation"| node_revoked_tokens
node_users_routes -->|"protects routes"| node_auth_guard
node_users_routes -->|"calls"| node_users_logic
node_admin_users -->|"protects routes"| node_auth_guard
node_admin_users -->|"calls"| node_users_logic
node_posts_routes -->|"protects private routes"| node_auth_guard
node_posts_routes -->|"calls"| node_posts_logic
node_posts_routes -->|"delegates images"| node_post_images
node_admin_posts -->|"protects routes"| node_auth_guard
node_admin_posts -->|"calls"| node_posts_logic
node_catalog_routes -->|"calls"| node_catalog_logic
node_audit_routes -->|"protects routes"| node_auth_guard
node_audit_routes -->|"calls"| node_audit_logic

click node_bootstrap "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/main.ts"
click node_module "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/app.module.ts"
click node_system_routes "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/app.controller.ts"
click node_health "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/app.service.ts"
click node_auth_routes "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/auth/auth.controller.ts"
click node_auth_logic "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/auth/auth.service.ts"
click node_auth_guard "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/auth/guards/auth.guard.ts"
click node_revoked_tokens "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/auth/revoked-tokens.service.ts"
click node_users_routes "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/users/users.controller.ts"
click node_admin_users "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/users/admin-users.controller.ts"
click node_users_logic "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/users/users.service.ts"
click node_posts_routes "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/post/posts.controller.ts"
click node_admin_posts "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/post/admin-posts.controller.ts"
click node_posts_logic "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/post/posts.service.ts"
click node_post_images "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/post/post-images.service.ts"
click node_catalog_routes "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/catalog/catalog.controller.ts"
click node_catalog_logic "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/catalog/catalog.service.ts"
click node_audit_routes "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/audit/audit.controller.ts"
click node_audit_logic "https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/audit/audit.service.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_module,node_system_routes,node_health,node_postgres toneBlue
class node_auth_routes,node_auth_logic,node_auth_guard,node_revoked_tokens,node_users_routes,node_users_logic toneAmber
class node_posts_routes,node_posts_logic,node_post_images,node_catalog_routes,node_catalog_logic,node_client toneMint
class node_admin_users,node_admin_posts,node_audit_routes,node_audit_logic toneRose
```

## Components

### API runtime

- [Application bootstrap](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/main.ts): `src/main.ts`
- [Module composition](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/app.module.ts): `src/app.module.ts`
- [System routes](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/app.controller.ts): `src/app.controller.ts`
- [Health check](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/app.service.ts): `src/app.service.ts`
- **PostgreSQL**

### Identity and access

- [Authentication routes](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/auth/auth.controller.ts): `src/modules/auth/auth.controller.ts`
- [Authentication service](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/auth/auth.service.ts): `src/modules/auth/auth.service.ts`
- [Token guard](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/auth/guards/auth.guard.ts): `src/modules/auth/guards/auth.guard.ts`
- [Revoked tokens](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/auth/revoked-tokens.service.ts): `src/modules/auth/revoked-tokens.service.ts`
- [User routes](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/users/users.controller.ts): `src/modules/users/users.controller.ts`
- [User service](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/users/users.service.ts): `src/modules/users/users.service.ts`

### Marketplace

- [Post routes](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/post/posts.controller.ts): `src/modules/post/posts.controller.ts`
- [Post service](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/post/posts.service.ts): `src/modules/post/posts.service.ts`
- [Post images](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/post/post-images.service.ts): `src/modules/post/post-images.service.ts`
- [Catalog routes](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/catalog/catalog.controller.ts): `src/modules/catalog/catalog.controller.ts`
- [Catalog service](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/catalog/catalog.service.ts): `src/modules/catalog/catalog.service.ts`

### Administration

- [Admin user routes](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/users/admin-users.controller.ts): `src/modules/users/admin-users.controller.ts`
- [Admin post routes](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/post/admin-posts.controller.ts): `src/modules/post/admin-posts.controller.ts`
- [Audit routes](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/audit/audit.controller.ts): `src/modules/audit/audit.controller.ts`
- [Audit service](https://github.com/shado-07/gaari-bhara-backend/blob/main/src/modules/audit/audit.service.ts): `src/modules/audit/audit.service.ts`

### Other components

- **API caller**

## Connections

- API caller → Application bootstrap: sends requests
- Application bootstrap → Module composition: starts (evidence: `src/main.ts`)
- Module composition → System routes: registers (evidence: `src/app.module.ts`)
- Module composition → PostgreSQL: configures (evidence: `src/app.module.ts`)
- Module composition → Authentication routes: registers (evidence: `src/app.module.ts`)
- Module composition → User routes: registers (evidence: `src/app.module.ts`)
- Module composition → Audit routes: registers (evidence: `src/app.module.ts`)
- Module composition → Catalog routes: registers (evidence: `src/app.module.ts`)
- Module composition → Post routes: registers (evidence: `src/app.module.ts`)
- System routes → Health check: calls (evidence: `src/app.controller.ts`)
- Health check → PostgreSQL: pings (evidence: `src/app.service.ts`)
- Authentication routes → Authentication service: calls (evidence: `src/modules/auth/auth.controller.ts`)
- Token guard → Authentication service: authenticates with (evidence: `src/modules/auth/guards/auth.guard.ts`)
- Authentication service → User service: loads users from (evidence: `src/modules/auth/auth.service.ts`)
- Authentication service → Revoked tokens: checks revocation (evidence: `src/modules/auth/auth.service.ts`)
- User routes → Token guard: protects routes (evidence: `src/modules/users/users.controller.ts`)
- User routes → User service: calls (evidence: `src/modules/users/users.controller.ts`)
- Admin user routes → Token guard: protects routes (evidence: `src/modules/users/admin-users.controller.ts`)
- Admin user routes → User service: calls (evidence: `src/modules/users/admin-users.controller.ts`)
- Post routes → Token guard: protects private routes (evidence: `src/modules/post/posts.controller.ts`)
- Post routes → Post service: calls (evidence: `src/modules/post/posts.controller.ts`)
- Post routes → Post images: delegates images (evidence: `src/modules/post/posts.controller.ts`)
- Admin post routes → Token guard: protects routes (evidence: `src/modules/post/admin-posts.controller.ts`)
- Admin post routes → Post service: calls (evidence: `src/modules/post/admin-posts.controller.ts`)
- Catalog routes → Catalog service: calls (evidence: `src/modules/catalog/catalog.controller.ts`)
- Audit routes → Token guard: protects routes (evidence: `src/modules/audit/audit.controller.ts`)
- Audit routes → Audit service: calls (evidence: `src/modules/audit/audit.controller.ts`)
