# Sample

### What it is responsible for

Sample manages application entry paths and example-facing interfaces, with `AppController`/`getHello` and `AppController`/`root` identified as work-entry points. Its named pieces span controller actions such as `create`, `findAll`, and `findOne`; GraphQL access at `/graphql`; and a Swagger interface at `/api`. The documented startup paths include examples requiring Docker or local MySQL, and others requiring Docker or local mongodb; after their required service is available, Nest runs with `npm run start`. The authors also flag a remote-machine listen-address change under the documented adapter instructions.

### What it refuses

Sample rejects input when validation reports `Validation failed` because `isNaN(val)` or because `errors.length > 0`. It rejects authentication attempts with `UnauthorizedException` when `!token` and when `user?.password !== pass`. It rejects missing recipes with `NotFoundException` when `!recipe`, and GraphQL requests with `GraphQLError` when `complexity >= 20`.

### What it needs, and who needs it

Sample depends on `sample/03-microservices/src/math`, `sample/04-grpc/src/hero`, `Auth`, `sample/26-queues/src/audio`, `sample/27-scheduling/src/tasks`, and `Orders`. Those named dependencies are the external sides Sample needs; without any one, the supplied evidence does not state a specific failure mode. No subsystem is listed as depending on Sample, so the evidence names no consumer that would break without it.

### Notable members

`AppController` carries listed entry work through `getHello` and `root`, making it the clearest ingress symbol. `ValidationPipe` and `ParseIntPipe` carry the displayed validation boundary: the refusal conditions explicitly cover invalid numeric input and nonempty validation errors. `RolesGuard` is the named authorization boundary most closely aligned with the two displayed `UnauthorizedException` conditions, while `CatsController` is the named controller alongside the `create`, `findAll`, and `findOne` operations. Their exact internal control flow is not documented here.

449 entities in `sample`. Nothing else in this repository depends on it.

## What it is made of

Its 449 entities sit in 92 files under `sample`: 312 doc comments, 40 modules, 25 markdown docs, 14 HTTP endpoints and 58 more.
`schema.gql` holds 11 of them — more than any other file here.

## Where work enters

11 controllers publish 14 HTTP endpoints — 11 `GET` and 3 `POST`. None of them declares a guard.

- `AppController` — `sample/08-webpack/src/app.controller.ts`:4
- `getHello` — `sample/08-webpack/src/app.controller.ts`:8
- `AppController` — `sample/15-mvc/src/app.controller.ts`:3
- `root` — `sample/15-mvc/src/app.controller.ts`:5
- `AppController` — `sample/17-mvc-fastify/src/app.controller.ts`:3
- `root` — `sample/17-mvc-fastify/src/app.controller.ts`:5

## Boundaries

It depends on `Math`, `Hero`, `Auth`, `Audio`, `Tasks`, `Orders`, and on nothing else in this repository.

## How this code is named

These conventions cover most of the codebase. Learning them is faster than reading an index —
each one lets you find any member of its family without looking it up.

| Pattern | Where | Count | Examples |
|---|---|---|---|
| `*.module.ts` | across the repository | 73 | `app.module.ts`, `cats.module.ts`, `core.module.ts`, `math.module.ts` |
| `*.service.ts` | across the repository | 30 | `app.service.ts`, `cats.service.ts`, `auth.service.ts`, `users.service.ts` |
| `*.controller.ts` | across the repository | 25 | `app.controller.ts`, `cats.controller.ts`, `math.controller.ts`, `hero.controller.ts` |
| `find*` | exported symbols | 17 | `findAll`, `findOne` |
