Volver a proyectos

// Expediente de evidencia

Cabañas Las Palmas

Sistema full-stack de gestión hotelera para Cabañas Las Palmas: landing pública y panel privado para administrar cabañas, pasajeros, reservas, pagos, servicios extra, egresos y reportes desde un único flujo.

Next.jsReactTypeScriptSQLitebetter-sqlite3Tailwind CSSPDFKitExcelJSNodemailerLeafletPM2Nginx
Arquitectura técnica de Cabañas Las Palmas: superficie pública, acceso privado, aplicación Next.js, módulos de operación, persistencia SQLite, archivos, reportes y comprobantes.
VisitantePersona que consulta la vitrina pública de Cabañas Las Palmas.iLanding públicaNext.js · ReactExperiencia pública responsive para visitantes.iCapa server-sideNext.js App RouterCapa de aplicación que separa la vista pública de la operación privada.iOperador autorizadoPersona que administra la operación diaria desde el panel privado.iLogin + sesiónJWT · admin/ownerEntrada protegida al espacio privado de administración.iMódulos de negocioreservas · pagos · extrasNúcleo funcional del sistema de gestión hotelera.iSQLitebetter-sqlite3Persistencia local de los datos operativos del sistema.iReportes y exportaciónExcelJS · impresiónSalida operativa para revisar y exportar información autorizada.iArchivos persistentesimágenes · backupsPersistencia de imágenes y respaldos protegidos.iComprobantesPDFKit · NodemailerComprobante HTML/PDF y notificación por correo cuando está habilitado.iHTTPSContenido públicoOperación privadaHTTPSSesión verificadaLectura / escrituraConsultasImágenes persistentesReserva confirmadaNext.js · SQLite · JWT/roles · ExcelJS · PDFKit · HTTPS

Contexto

Complejo turístico de cabañas en El Quisco que necesitaba transformar una operación basada en cuadernos y hojas de cálculo en una plataforma centralizada, manteniendo una vitrina pública clara para sus visitantes y un espacio privado para la gestión diaria.

Problema

La gestión basada en cuadernos y Excel dificultaba conocer disponibilidad, saldos y resultado mensual, además de aumentar el riesgo de reservas duplicadas y mezclar ingresos de alojamiento, servicios extra y egresos. El negocio necesitaba una solución propia, cómoda desde el teléfono y capaz de reducir errores operativos sin publicar sus datos de pasajeros.

Mi rol

Diseñé y desarrollé la solución full-stack: landing pública, panel administrativo, APIs server-side, modelo de datos, autenticación, validaciones de negocio, disponibilidad, cálculo de noches y saldos, pagos, servicios extra, egresos, reportes, exportaciones, notificaciones opcionales, auditoría y despliegue.

Restricciones

Era una operación real con datos personales y financieros, uso desde desktop y móvil, infraestructura acotada y una base local. También debía respetar la operación horaria de Chile, permitir que el correo fuera configurable y conservar datos e imágenes durante las actualizaciones.

Solución

Construí un flujo operativo completo: dashboard con KPIs y estado de cabañas; reservas con cálculo de noches, totales y control de solapamientos; estados Reservada, Check-In, Check-Out y Cancelada; pagos parciales y saldo; catálogo y cargos extra; egresos; reportes de ocupación, ingresos y estado de resultados de los últimos 12 meses; exportación Excel y vista de impresión; ficha de cabañas con amenities y galería editable; landing responsive; contacto por WhatsApp; y comprobantes HTML/PDF por correo cuando esa función está habilitada.

Arquitectura

Aplicación Next.js con App Router, React, TypeScript y Tailwind CSS. Separa la experiencia pública de la gestión privada mediante una capa server-side y módulos para cabañas, pasajeros, reservas, pagos, extras, egresos, reportes y exportaciones. Usa SQLite como almacenamiento local y se despliega en un VPS con un proceso administrado y proxy HTTPS.

Decisiones

Elegí Next.js para mantener landing, panel y APIs dentro de una misma aplicación, y SQLite por ser proporcional a la operación de un solo nodo. Centralicé las reglas de fechas y validación en el servidor, reutilicé la lógica de reportes para exportaciones y estructuré las actualizaciones para que los datos operativos permanezcan independientes del artefacto de cada versión.

Seguridad

La solución aplica defensa en profundidad para proteger la operación: autenticación y control de acceso, sesiones protegidas, validación de datos y reglas de negocio en servidor, controles contra solicitudes no autorizadas, protección de archivos, trazabilidad y respaldos protegidos. Esta ficha comunica capacidades, pero omite deliberadamente secretos, credenciales, rutas internas, parámetros operativos, nombres de controles y detalles de infraestructura que no deben convertirse en una guía para atacar el sistema. No se presenta como certificación ni auditoría externa.

Testing

La suite automatizada actual del proyecto cubre autenticación y sesiones, validaciones, disponibilidad, cálculo de noches y saldos, transiciones de reservas, operaciones de cabañas/pasajeros/pagos/egresos/extras, reportes, exportación, carga de imágenes, backups y controles de seguridad. Además, se revisaron manualmente la impresión, la descarga Excel, la edición de amenities/galería y los recorridos responsive en desktop y móvil. No se publica un benchmark independiente de rendimiento, disponibilidad o ahorro de tiempo.

Deployment

El proyecto está desplegado en un VPS de Hostinger como aplicación Next.js standalone administrada por PM2 detrás de Nginx/HTTPS. El flujo de actualización valida el entorno, crea un respaldo previo, compila y reinicia la aplicación preservando los datos operativos, imágenes y respaldos. La demo pública muestra la vitrina comercial y no expone el panel ni la infraestructura interna.

Resultado

El sistema llevó la operación desde papel y Excel a una plataforma web centralizada para reservas, ocupación, pasajeros, saldos, gastos y reportes. También incorporó una operación más ordenada para amenities, galería, exportación Excel e impresión, junto con un flujo de actualización que conserva los datos del negocio. El resultado corresponde al caso entregado; no se publica una medición independiente de productividad, disponibilidad o rendimiento.

Evidencia

Evidencia pública: demo visual de la landing, galería, ubicación y flujo de contacto. La ficha incorpora una muestra aislada de validación de RUT y su enfoque de pruebas para evidenciar calidad de software y experiencia de usuario sin publicar código privado. Evidencia técnica revisada en el proyecto: documentación, modelo de datos, pruebas y recorridos funcionales. No se publican datos de pasajeros, credenciales, base de producción, archivos subidos, APIs, controles de seguridad ni información que permita acceder a la operación real.