KLUK Backend

API backend para un e-commerce

API REST para una plataforma de comercio electrónico, desarrollada con NestJS 10 y TypeScript. Módulos de autenticación, usuarios, productos, carrito, favoritos y reportes, con subida de imágenes a Cloudinary (multer + streamifier) y documentación Swagger.

2026 · En desarrollo

Captura de KLUK Backend
KLUK Backend — captura del proyecto.
01

Contexto y propósito

API del e-commerce KLUK: catálogo de productos, carrito de compras, favoritos, usuarios con autenticación, reportes agregados y subida de imágenes a Cloudinary. NestJS 10 + TypeORM + PostgreSQL + JWT, con documentación Swagger.

Propósito declarado: Proveer la API y la persistencia necesarias para gestionar productos, carrito, favoritos, usuarios y reportes de un e-commerce.

02

Arquitectura

API modular NestJS 10 (auth, users, productos, carrito, favorites, reportes, cloudinary) con TypeORM + PostgreSQL, JWT + bcryptjs, validación con class-validator, Helmet, Swagger y subidas a Cloudinary.

Storefront / clientes ──REST + JWT──▶ KLUK API (NestJS 10)
  auth │ users │ productos │ carrito │ favorites │ reportes │ cloudinary
   ▼
PostgreSQL (TypeORM) + Cloudinary (media)
  • Módulos por dominio (users, auth, productos, carrito, favorites, reportes, cloudinary) con validación class-validator y Helmet.
  • Subidas con multer + streamifier hacia Cloudinary centralizado en módulo propio.
  • Swagger (@nestjs/swagger) como documentación viva en /api.
03

Stack detallado

CapaTecnologíaDetalle
FrameworkNestJS 10 + TSModular por dominio
BDTypeORM 0.3 + PostgreSQLDriver pg; synchronize:true solo dev
AuthJWT + bcryptjsLogin + guards
MediaCloudinary + multerImágenes de producto vía streamifier
DocsSwaggerOpenAPI en /api
05

Endpoints principales

MétodoRutaQué haceAuth
CRUD/productosCatálogo de productosJWT (escritura admin)
CRUD/carritoCarrito por usuarioJWT
CRUD/favoritesFavoritos por usuarioJWT
GET/reportes/*Agregados para dashboardJWT admin
CRUD/users · /auth/*Usuarios y loginMixto
GET/apiDocumentación SwaggerNinguna
06

Datos y conexiones

User 1──* Carrito 1──* Item *──1 Producto
User *──* Favoritos ── Producto · Reportes = agregados SQL
09

Despliegue

Dónde: Render/Railway/VPS + PostgreSQL + Cloudinary

  • npm install && npm run build && npm run start:prod
  • Env: DB_HOST/PORT/USER/PASS/NAME, SSL, JWT_SECRET, CLOUDINARY_*
10

Metodología y decisiones

  • Dominio e-commerce clásico para practicar NestJS a fondo.
  • Swagger como documentación viva.
11

Retos y soluciones

Consistencia carrito-stockTransacciones TypeORM en checkout.
12

Qué aprendí

  • NestJS modular, guards y uploads a Cloudinary.
  • Reportes agregados para dashboards.
13

Ejecutar en local

git clone https://github.com/xenoxf/kluk && npm install
Configurar .env (DB_*, SSL, JWT_SECRET, CLOUDINARY_*) y npm run start:dev
14

Próximos pasos

  • Pagos (Stripe/MercadoPago).
  • Migraciones versionadas y tests e2e.
↗

Seguir explorando