CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/nestjs-best-practices

NestJS patterns -- modules, DI, exception filters, validation pipes, guards, interceptors, testing, config

98

1.36x
Quality

89%

Does it follow best practices?

Impact

100%

1.36x

Average score across 12 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

task.mdevals/scenario-5/

Shipment Tracking API

Problem/Feature Description

A logistics company needs a NestJS API for tracking shipments. Build the initial project scaffold following NestJS best practices.

Requirements:

  1. A shipments feature module with POST /shipments (create), GET /shipments (list all), and GET /shipments/:id (get one) endpoints
  2. A DTO for creating shipments: trackingNumber (non-empty string), origin (string), destination (string), weightKg (positive number)
  3. A logging interceptor that logs HTTP method, URL, and request duration in ms
  4. Proper error handling and input validation configured globally
  5. A stub service (in-memory array storage is fine)

Follow NestJS best practices for project structure, error handling, validation, and response formatting.

Output Specification

Produce TypeScript source files in logistics-api/src/:

  • main.ts -- bootstrap file with all global configuration
  • app.module.ts -- root module
  • shipments/shipments.module.ts -- feature module
  • shipments/shipments.controller.ts -- controller
  • shipments/shipments.service.ts -- stub service
  • shipments/dto/create-shipment.dto.ts -- validated DTO
  • common/filters/all-exceptions.filter.ts -- exception filter
  • common/interceptors/logging.interceptor.ts -- logging interceptor

Do not run npm install or start the server.

evals

tile.json