# aisack23/be_noodlevolt_is_2026 architecture

> Architecture diagram of the GitHub repository aisack23/be_noodlevolt_is_2026, 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/aisack23/be_noodlevolt_is_2026
- Repository: https://github.com/aisack23/be_noodlevolt_is_2026

## Overview

SI Backend Boilerplate is a NestJS REST API for password-based authentication and user management. The main workflow accepts login credentials, validates them against users, issues an access/refresh-token pair, and later authenticates protected requests; refresh and logout manage persistent refresh-token state. User routes and health checks are additional capabilities. The graph follows documented and excerpted wiring; unsampled endpoint and repository internals are represented only where their role is documented, so uncertain call edges are omitted.

Main entry points: [`src/app.module.ts`](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/app.module.ts) (Application Modules), [`src/users/controllers/users.controller.ts`](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/users/controllers/users.controller.ts) (User Routes), [`src/users/services/users.service.ts`](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/users/services/users.service.ts) (User Services), [`src/auth/services/auth.service.ts`](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/services/auth.service.ts) (Credential Auth)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["API Runtime"]
  node_bootstrap["HTTP Bootstrap<br/>[main.ts]"]
  node_application["Application Modules<br/>[app.module.ts]"]
  node_configuration["Environment Validation<br/>[env.validation.ts]"]
end

subgraph group_identity["Identity &amp; Access"]
  node_auth_routes["Auth Routes<br/>[auth.controller.ts]"]
  node_auth_logic["Credential Auth<br/>[auth.service.ts]"]
  node_token_logic["Token Lifecycle<br/>[token.service.ts]"]
  node_jwt_guard["JWT Guard<br/>[jwt-auth.guard.ts]"]
  node_refresh_repository["Refresh Token Store"]
  node_jwt_provider["JWT Signing<br/>[auth.module.ts]"]
end

subgraph group_users["User Management"]
  node_user_routes["User Routes"]
  node_user_logic["User Services<br/>[users.service.ts]"]
  node_user_repository["User Repository<br/>[user.repository.ts]"]
  node_email_validation["Email Normalization"]
end

subgraph group_persistence["Persistence &amp; Health"]
  node_health_routes["Health Endpoint"]
  node_health_logic["Health Service<br/>[health.service.ts]"]
  node_prisma_runtime["Prisma Client<br/>[prisma.service.ts]"]
  node_postgres[("PostgreSQL")]
end

node_client(("API Client"))

node_client -->|"sends HTTP"| node_bootstrap
node_bootstrap -->|"creates app"| node_application
node_application -->|"validates env"| node_configuration
node_application -->|"registers global guard"| node_jwt_guard
node_client -.->|"calls auth API"| node_auth_routes
node_auth_routes -.->|"handles auth"| node_auth_logic
node_auth_logic -->|"finds and verifies user"| node_user_logic
node_auth_logic -->|"issues or manages tokens"| node_token_logic
node_token_logic -->|"persists refresh tokens"| node_refresh_repository
node_token_logic -.->|"signs and verifies JWT"| node_jwt_provider
node_jwt_guard -->|"loads request user"| node_user_logic
node_jwt_guard -.->|"verifies access token"| node_jwt_provider
node_client -.->|"calls user API"| node_user_routes
node_user_routes -.->|"handles user operations"| node_user_logic
node_user_logic -.->|"delegates data access"| node_user_repository
node_user_repository -.->|"uses database client"| node_prisma_runtime
node_prisma_runtime -->|"connects via adapter"| node_postgres
node_client -.->|"checks health"| node_health_routes
node_health_routes -.->|"delegates health check"| node_health_logic
node_application -->|"imports health module"| node_health_routes
node_application -->|"imports users module"| node_user_routes
node_application -->|"imports auth module"| node_auth_routes
node_email_validation -.->|"validates email DTO"| node_user_routes

click node_bootstrap "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/main.ts"
click node_application "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/app.module.ts"
click node_configuration "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/config/env.validation.ts"
click node_auth_routes "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/controllers/auth.controller.ts"
click node_auth_logic "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/services/auth.service.ts"
click node_token_logic "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/services/token.service.ts"
click node_jwt_guard "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/guards/jwt-auth.guard.ts"
click node_refresh_repository "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/repositories/refresh-token.repository.ts"
click node_jwt_provider "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/auth.module.ts"
click node_user_routes "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/users/controllers/users.controller.ts"
click node_user_logic "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/users/services/users.service.ts"
click node_user_repository "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/users/repositories/user.repository.ts"
click node_email_validation "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/common/decorators/is-normalized-email.decorator.ts"
click node_health_routes "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/health/controllers/health.controller.ts"
click node_health_logic "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/health/services/health.service.ts"
click node_prisma_runtime "https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/prisma/services/prisma.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_application,node_configuration,node_client toneBlue
class node_auth_routes,node_auth_logic,node_token_logic,node_jwt_guard,node_refresh_repository,node_jwt_provider toneAmber
class node_user_routes,node_user_logic,node_user_repository,node_email_validation toneMint
class node_health_routes,node_health_logic,node_prisma_runtime,node_postgres toneRose
```

## Components

### API Runtime

- [HTTP Bootstrap](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/main.ts): `src/main.ts`
- [Application Modules](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/app.module.ts): `src/app.module.ts`
- [Environment Validation](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/config/env.validation.ts): `src/config/env.validation.ts`

### Identity & Access

- [Auth Routes](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/controllers/auth.controller.ts): `src/auth/controllers/auth.controller.ts`
- [Credential Auth](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/services/auth.service.ts): `src/auth/services/auth.service.ts`
- [Token Lifecycle](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/services/token.service.ts): `src/auth/services/token.service.ts`
- [JWT Guard](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/guards/jwt-auth.guard.ts): `src/auth/guards/jwt-auth.guard.ts`
- [Refresh Token Store](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/repositories/refresh-token.repository.ts): `src/auth/repositories/refresh-token.repository.ts`
- [JWT Signing](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/auth/auth.module.ts): `src/auth/auth.module.ts`

### User Management

- [User Routes](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/users/controllers/users.controller.ts): `src/users/controllers/users.controller.ts`
- [User Services](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/users/services/users.service.ts): `src/users/services/users.service.ts`
- [User Repository](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/users/repositories/user.repository.ts): `src/users/repositories/user.repository.ts`
- [Email Normalization](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/common/decorators/is-normalized-email.decorator.ts): `src/common/decorators/is-normalized-email.decorator.ts`

### Persistence & Health

- [Health Endpoint](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/health/controllers/health.controller.ts): `src/health/controllers/health.controller.ts`
- [Health Service](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/health/services/health.service.ts): `src/health/services/health.service.ts`
- [Prisma Client](https://github.com/aisack23/be_noodlevolt_is_2026/blob/main/src/prisma/services/prisma.service.ts): `src/prisma/services/prisma.service.ts`
- **PostgreSQL**

### Other components

- **API Client**

## Connections

- API Client → HTTP Bootstrap: sends HTTP (evidence: `src/main.ts`)
- HTTP Bootstrap → Application Modules: creates app (evidence: `src/main.ts`)
- Application Modules → Environment Validation: validates env (evidence: `src/app.module.ts`)
- Application Modules → JWT Guard: registers global guard (evidence: `src/app.module.ts`)
- API Client → Auth Routes: calls auth API (evidence: `README.md`)
- Auth Routes → Credential Auth: handles auth (evidence: `README.md`)
- Credential Auth → User Services: finds and verifies user (evidence: `src/auth/services/auth.service.ts`)
- Credential Auth → Token Lifecycle: issues or manages tokens (evidence: `src/auth/services/auth.service.ts`)
- Token Lifecycle → Refresh Token Store: persists refresh tokens (evidence: `src/auth/services/token.service.ts`)
- Token Lifecycle → JWT Signing: signs and verifies JWT
- JWT Guard → User Services: loads request user (evidence: `src/auth/guards/jwt-auth.guard.ts`)
- JWT Guard → JWT Signing: verifies access token
- API Client → User Routes: calls user API (evidence: `README.md`)
- User Routes → User Services: handles user operations
- User Services → User Repository: delegates data access (evidence: `README.md`)
- User Repository → Prisma Client: uses database client (evidence: `README.md`)
- Prisma Client → PostgreSQL: connects via adapter (evidence: `src/prisma/services/prisma.service.ts`)
- API Client → Health Endpoint: checks health (evidence: `README.md`)
- Health Endpoint → Health Service: delegates health check
- Application Modules → Health Endpoint: imports health module (evidence: `src/app.module.ts`)
- Application Modules → User Routes: imports users module (evidence: `src/app.module.ts`)
- Application Modules → Auth Routes: imports auth module (evidence: `src/app.module.ts`)
- Email Normalization → User Routes: validates email DTO
