krakenweb-nestjs
v0.1.2
Published
Migración de Kraken Web a NestJS con Prisma
Readme
Kraken Web NestJS
Migración del sistema Kraken Web a una arquitectura moderna basada en NestJS, Prisma ORM y TypeScript.
Descripción
Este proyecto es una migración del sistema Kraken Web original (Java) a una arquitectura moderna basada en NestJS. La migración sigue un enfoque modular y aplica las mejores prácticas de desarrollo, incluyendo documentación detallada con Swagger, pruebas unitarias y de integración, y una estructura de código clara y mantenible.
Tecnologías Principales
- NestJS: Framework de Node.js para construir aplicaciones del lado del servidor eficientes y escalables
- Prisma ORM: ORM de próxima generación para Node.js y TypeScript
- TypeScript: Superset tipado de JavaScript
- JWT: Autenticación basada en tokens
- Swagger/OpenAPI: Documentación automática de API
- Jest: Framework de pruebas
Estructura del Proyecto
krakenweb-nestjs/
├── docs/ # Documentación técnica
├── prisma/ # Esquema y migraciones de Prisma
│ ├── migrations/ # Migraciones de la base de datos
│ ├── seeds/ # Scripts de seed para datos iniciales
│ └── schema.prisma # Esquema de la base de datos
├── src/ # Código fuente
│ ├── auth/ # Módulo de autenticación
│ ├── common/ # Código compartido entre módulos
│ ├── app.module.ts # Módulo principal de la aplicación
│ └── main.ts # Punto de entrada de la aplicación
├── test/ # Pruebas unitarias y de integración
├── .env # Variables de entorno (no incluido en el repositorio)
├── .env.example # Ejemplo de variables de entorno
├── nest-cli.json # Configuración de NestJS CLI
├── package.json # Dependencias y scripts
└── tsconfig.json # Configuración de TypeScriptMódulos Implementados
Módulo de Autenticación
Implementa un sistema completo de autenticación basado en JWT con roles y permisos.
Ver documentación detallada del módulo de autenticación
Módulo de Gestión de Items
Implementa funcionalidades para la gestión de inventario, incluyendo búsqueda de items, consulta de stock y gestión de movimientos.
Ver documentación detallada del módulo de items
Requisitos
- Node.js (v16 o superior)
- npm o yarn
- Para producción con Oracle: Oracle Database y Oracle Instant Client
- Base de datos compatible con Prisma (SQLite para desarrollo, PostgreSQL recomendado para producción)
Instalación
- Clonar el repositorio:
git clone <url-del-repositorio>
cd krakenweb-nestjs- Instalar dependencias:
npm install- Configurar variables de entorno:
cp .env.example .env
# Editar .env con los valores adecuados- Generar el cliente de Prisma:
npm run prisma:generate- Ejecutar migraciones:
npm run prisma:migrate- Inicializar datos (opcional):
npm run prisma:seedEjecución
Desarrollo
npm run start:devLa aplicación estará disponible en http://localhost:3000.
Producción
Configuración Estándar
npm run build
npm run start:prodConfiguración con Oracle (como en el proyecto Java original)
Para ejecutar la aplicación en producción utilizando Oracle como base de datos:
- Configura las variables de entorno para producción:
cp .env.example .env.production
# Edita .env.production con la configuración de Oracle- Construye la aplicación:
npm run build- Inicia la aplicación en modo producción:
NODE_ENV=production node dist/main.jsPara una configuración detallada con Oracle, consulta la guía de configuración de producción con Oracle.
Documentación API
La documentación de la API está disponible en http://localhost:3000/api/docs cuando la aplicación está en ejecución.
Pruebas
Pruebas Unitarias
npm testPruebas de Cobertura
npm run test:covPruebas End-to-End
npm run test:e2eReglas de Desarrollo
Este proyecto sigue las Reglas de Desarrollo para Kraken API, que incluyen:
- Estándares de código (ESLint, Prettier)
- Convenciones de commits (Conventional Commits)
- Versionado semántico
- Flujo de trabajo de desarrollo
Licencia
Este proyecto es propiedad de Farmatodo y su uso está restringido según los términos de la licencia interna.
