Backend de renta de autos construido para cargas reales de producción
Personal ProjectNestJSPostgreSQLTypeScriptVitest
Arquitectura limpia/gritona — módulo → controlador → servicio → repositorio
El Desafío
- Disciplina en monorepo TypeScript: Mantener TypeScript strict en todo el monorepo con cero errores de compilación
- Capas de arquitectura limpia en NestJS: Separación estricta entre módulo, controlador, servicio y repositorio sin acoplamientos cruzados
- Queries tipadas con Drizzle ORM: Drizzle ORM + PostgreSQL para queries completamente tipadas sin capa de abstracción adicional
- JWT auth + cobertura de tests Vitest: Autenticación JWT con guards de NestJS y tests unitarios e integración con Vitest
Arquitectura de la Solución
Monorepo / TypeScript Strict
Monorepo TypeScript con modo strict activo en todo el proyecto. Cero errores de compilación como requisito no negociable.
Arquitectura Limpia NestJS
Capas separadas: módulo (límite de contexto), controlador (HTTP), servicio (casos de uso), repositorio (acceso a datos). Sin acoplamientos cruzados.
Drizzle + PostgreSQL + Zod
Drizzle ORM para queries SQL tipadas sobre PostgreSQL. Esquemas Zod compartidos entre capas para validación de entrada consistente.
JWT Auth + Vitest
Guards de NestJS para autenticación JWT. Tests unitarios sobre servicios y tests de integración sobre repositorios con Vitest.
Resultados
0
Errores TypeScript en compilación
100%
Validación Zod compartida entre capas
Unit + Integration
Estrategia de pruebas