Skip to content

API REST desarrollada con NestJS para la gestión de productos de café. Este proyecto implementa operaciones CRUD completas para administrar un catálogo de cafés con sus marcas y sabores.

Notifications You must be signed in to change notification settings

nasarcacd/iluvcoffee

Repository files navigation

iLuvCoffee ☕

API REST desarrollada con NestJS para la gestión de productos de café. Este proyecto implementa operaciones CRUD completas para administrar un catálogo de cafés con sus marcas y sabores.

Descripción

iLuvCoffee es una aplicación backend construida con NestJS, un framework progresivo de Node.js para construir aplicaciones del lado del servidor eficientes y escalables. La aplicación proporciona una API RESTful para gestionar un inventario de cafés.

Características

  • CRUD completo de productos de café
  • Arquitectura modular con NestJS
  • DTOs para validación de datos
  • Estructura escalable y mantenible
  • TypeScript para type-safety
  • Testing unitario y e2e configurado

Tecnologías Utilizadas

  • NestJS v7.0.0 - Framework principal
  • TypeScript - Lenguaje de programación
  • Express - Servidor HTTP
  • Jest - Testing framework
  • RxJS - Programación reactiva

Estructura del Proyecto

src/
├── app.controller.ts       # Controlador principal
├── app.module.ts           # Módulo raíz
├── app.service.ts          # Servicio principal
├── main.ts                 # Punto de entrada
└── coffees/                # Módulo de cafés
    ├── coffees.controller.ts    # Controlador de cafés
    ├── coffees.service.ts       # Lógica de negocio
    ├── coffees.module.ts        # Módulo de cafés
    ├── dto/                     # Data Transfer Objects
    │   ├── create-coffee.dto.ts
    │   └── update-coffee.dto.ts
    └── entities/                # Entidades
        └── coffee.entity.ts

Requisitos Previos

  • Node.js (v12 o superior)
  • npm o yarn

Instalación

# Clonar el repositorio
git clone <repository-url>

# Navegar al directorio
cd iluvcoffee

# Instalar dependencias
npm install

Ejecución de la Aplicación

# Modo desarrollo
npm run start:dev

# Modo producción
npm run build
npm run start:prod

# Modo debug
npm run start:debug

La aplicación estará disponible en http://localhost:3000

Endpoints de la API

Cafés

Método Endpoint Descripción
GET /coffees Obtener todos los cafés
GET /coffees/:id Obtener un café por ID
POST /coffees Crear un nuevo café
PATCH /coffees/:id Actualizar un café existente
DELETE /coffees/:id Eliminar un café

Ejemplos de Uso

Obtener todos los cafés

curl http://localhost:3000/coffees

Crear un nuevo café

curl -X POST http://localhost:3000/coffees \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Espresso",
    "brand": "Lavazza",
    "flavors": ["chocolate", "vanilla"]
  }'

Actualizar un café

curl -X PATCH http://localhost:3000/coffees/1 \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Espresso Premium"
  }'

Eliminar un café

curl -X DELETE http://localhost:3000/coffees/1

Modelo de Datos

Coffee Entity

{
  id: number;
  name: string;
  brand: string;
  flavors: string[];
}

Testing

# Tests unitarios
npm run test

# Tests unitarios en modo watch
npm run test:watch

# Tests e2e
npm run test:e2e

# Cobertura de tests
npm run test:cov

Linting y Formato

# Ejecutar linter
npm run lint

# Formatear código
npm run format

Scripts Disponibles

Script Descripción
npm run start Inicia la aplicación
npm run start:dev Inicia en modo desarrollo con hot-reload
npm run start:prod Inicia en modo producción
npm run build Compila el proyecto
npm run test Ejecuta tests unitarios
npm run test:e2e Ejecuta tests end-to-end
npm run lint Ejecuta el linter
npm run format Formatea el código

Desarrollo

Agregar un Nuevo Módulo

nest generate module <module-name>

Agregar un Nuevo Controlador

nest generate controller <controller-name>

Agregar un Nuevo Servicio

nest generate service <service-name>

Próximas Mejoras

  • Integración con base de datos (PostgreSQL/MongoDB)
  • Autenticación y autorización
  • Documentación con Swagger/OpenAPI
  • Validación de DTOs con class-validator
  • Paginación en endpoints de listado
  • Filtros y búsqueda avanzada
  • Manejo de errores global
  • Variables de entorno con @nestjs/config
  • Logging mejorado
  • Rate limiting
  • Compresión de respuestas
  • CORS configurado

Recursos

Licencia

UNLICENSED - Proyecto privado

Autor

Desarrollado con ❤️ usando NestJS

About

API REST desarrollada con NestJS para la gestión de productos de café. Este proyecto implementa operaciones CRUD completas para administrar un catálogo de cafés con sus marcas y sabores.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •