Skip to content

Coderic/coderic-nest-petcare-backend

Coderic Pet Care — Backend API

Backend REST API para la aplicación Coderic Pet Care, construido con NestJS y TypeScript.


Tecnologías

Capa Tecnología
Framework NestJS 11 + TypeScript
Base de datos PostgreSQL 16 (TypeORM)
Caché / Sesiones Redis 7
Autenticación JWT (access token + refresh token)
Documentación Swagger / OpenAPI
Contenerización Docker + Docker Compose
Gestor de paquetes pnpm

Requisitos previos


Variables de entorno

Copia .env.template y renómbralo según el entorno:

cp .env.template .env.development
Variable Descripción Ejemplo
NODE_ENV Entorno de ejecución development
PORT Puerto del servidor 4000
DB_HOST Host de PostgreSQL localhost
DB_PORT Puerto de PostgreSQL 5432
DB_USERNAME Usuario de la base de datos postgres
DB_PASSWORD Contraseña de la base de datos postgres
DB_NAME Nombre de la base de datos petcare_dev
DB_SYNCHRONIZE Sincronizar esquema automáticamente true
REDIS_HOST Host de Redis localhost
REDIS_PORT Puerto de Redis 6379
REDIS_PASSWORD Contraseña de Redis redis_password
BCRYPT_SALT_ROUNDS Rondas de hashing (4–31) 10
JWT_SECRET Secreto para firmar JWT change_this_secret
JWT_EXPIRES_IN Duración del access token 15m
THROTTLE_TTL Ventana de rate limiting (ms) 60000
THROTTLE_LIMIT Máximo de requests por ventana 100
SESSION_TTL_WEB_MS TTL de sesión web (ms) 86400000 (1 día)
SESSION_TTL_MOBILE_MS TTL de sesión móvil (ms) 2592000000 (30 días)

Desarrollo con Docker (recomendado)

Los siguientes comandos levanta la API junto a PostgreSQL y Redis:

# Primera vez o cuando cambien dependencias
make dev-build

# Iniciar servicios (sin rebuild)
make dev-up

# Detener servicios
make dev-down

Desarrollo local (sin Docker)

# Instalar dependencias
pnpm install

# Modo watch
pnpm start:dev

# Modo debug
pnpm start:debug

Compilar y ejecutar en producción

pnpm build
pnpm start:prod

Pruebas

# Tests unitarios
pnpm test

# Tests en modo watch
pnpm test:watch

# Tests e2e
pnpm test:e2e

# Cobertura
pnpm test:cov

Documentación de la API

Una vez iniciado el servidor, la documentación Swagger está disponible en:

http://localhost:{PORT}/api/docs

Endpoints de autenticación (/v1/auth)

Método Ruta Descripción Autenticación
POST /v1/auth/register Registrar nuevo usuario Pública
POST /v1/auth/login Iniciar sesión Pública
POST /v1/auth/refresh Renovar access token Pública
POST /v1/auth/logout Cerrar sesión JWT requerido

Formato de respuesta

Todas las respuestas siguen la estructura:

{
  "success": true,
  "message": "Operación exitosa",
  "data": { ... },
  "timestamp": "2026-03-19T00:00:00.000Z",
  "path": "/v1/auth/login"
}

En caso de error:

{
  "success": false,
  "message": "Credenciales inválidas",
  "timestamp": "2026-03-19T00:00:00.000Z",
  "path": "/v1/auth/login"
}

Estructura del proyecto

src/
├── auth/               # Módulo de autenticación (login, registro, sesiones)
├── user/               # Módulo de usuarios
├── common/             # Filtros, interceptores y DTOs compartidos
├── config/             # Configuración (env, DB, Redis, Swagger, throttle)
└── main.ts             # Bootstrap de la aplicación

Licencia

MIT © Coderic

About

Backend de la aplicación Pet Care sobre el control y protección de animales

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors