REST API with NestJS and MongoDB

A RESTful API built with NestJS to practice and apply backend development concepts, focusing on clean architecture, data validation, security, and maintainability.

The project implements a complete CRUD flow using a service-based architecture and a cloud-hosted MongoDB database.

Architecture & Structure

The application follows NestJS best practices, separating concerns using controllers, services, and modules.

Controllers handle incoming requests and delegate business logic to services, ensuring a clean and scalable structure.

Controller

Controller

Services

Services

Module

Module

Database & Persistence

Data persistence was implemented using MongoDB, hosted on MongoDB Atlas, enabling cloud-based data storage and environment-independent configuration.

The API performs full CRUD operations against the database.

mongodb

Data Validation & Security

Data transfer and validation were handled using DTOs, combined with ValidationPipe, class-validator, and class-transformer.

These mechanisms help prevent invalid or malicious data from reaching the application core, improving security and data integrity.

dto validation

Configuration & Environment Management

Application configuration was managed using @nestjs/config, allowing environment-specific variables to be stored in .env files and adapted across different deployment environments.

config

Error Handling & Request Control

Advanced request handling was implemented using:

  • Exception filters to catch and standardize error responses
  • Guards to protect routes and control access
  • Interceptors to wrap and transform API responses
  • Custom pipes to validate and transform incoming data