Bitácora Sesión 1 Monorepo Vacation Control + entorno local

Bitácora – Sesión 1


Título: Monorepo Vacation Control + entorno local


Hora de inicio: 12:30 pm

Hora de fin: 3:30 pm

Horas trabajadas: 3 horas


Descripción de avances


• Monorepo Turborepo en la raíz: turbo.json, npm workspaces (apps y packages), scripts dev, build, lint, format, db:up, db:down y db:logs.


• Paquetes compartidos: types, config y eslint-config (tipos y ESLint compartidos).


• Frontend en apps/web: Next.js 15 con App Router, TypeScript, Tailwind; layout con menú; páginas de ejemplo en inicio, login y empleados (datos de prueba, sin API todavía).


• Backend en apps/api: NestJS con configuración global; endpoint de salud GET /health; módulos iniciales auth, employees, movements, logs, errors y database (solo estructura, sin lógica de negocio ni ORM).


• Base de datos: Docker Compose con SQL Server 2019, puerto 1433 y volumen persistente; variables desde .env en la raíz.


• Documentación en README: cómo instalar, correr en desarrollo, levantar Docker y qué hay en cada carpeta.


• Variables de entorno: .env de ejemplo y .env real en la raíz; para el cliente SQL usar servidor localhost,1433, usuario sa y confiar en certicado del servidor en local.


Problemas encontrados


1. Docker Compose mostraba que SA_PASSWORD no estaba definida al armar el archivo compose: el .env de la raíz no siempre se usa para rellenar variables en el compose según la carpeta de proyecto.


2. El backend aún no se conecta a SQL Server: no hay librería de cliente; el servicio de base solo lee variables del entorno.


Solución aplicada


1. Para Compose: además de la raíz, usar un .env en db/docker con SA_PASSWORD, o exportar SA_PASSWORD en la terminal antes de db:up.


2. Para conectarse con una herramienta gráfica: servidor localhost,1433, inicio de sesión SQL, usuario sa, y marcar confiar en certificado del servidor en desarrollo local.


Próximos pasos


1. Agregar cliente SQL en Nest y probar conexión (por ejemplo una consulta simple o un endpoint de salud de base de datos).


2. Crear la base vacation_control y los procedimientos almacenados según el plan del proyecto.


3. Que el frontend use la URL pública de la API y deje de usar datos inventados en empleados.


4. No subir al repositorio archivos .env ni contraseñas.

Comentarios