← Juan Manuel Cano

Llavia

Aplicación de gestión de alquileres por habitaciones, en producción. Cubre el ciclo completo: contrato, facturación, cobro e incidencias.

Estado
— en producción
Stack
— Next.js 15, PostgreSQL, Prisma, Auth.js, Tailwind
Tamaño
— 16 modelos de datos, unos 253 ficheros TypeScript
Pruebas
— Playwright, por módulo

Contexto

El alquiler por habitaciones multiplica la gestión administrativa: cada habitación tiene su propio contrato, calendario de cobro, fianza e inquilino. El volumen de trabajo no está en la firma del contrato, sino en el seguimiento mensual de cada una.

Funcionamiento

La aplicación expone dos portales sobre la misma base de datos. El propietario administra propiedades, habitaciones, inquilinos, contratos, facturas, pagos y gastos. El inquilino accede únicamente a su información: estado de cuenta, descarga de facturas y apertura de incidencias.

Procesos automatizados:

Decisiones técnicas

Control de acceso en el servidor. La separación de roles no se implementa en la interfaz, sino en el middleware y en cada server action, de modo que manipular un identificador en la URL no da acceso a datos ajenos. Las operaciones sensibles quedan registradas en una tabla de auditoría.

Tareas programadas como endpoints. Los procesos diarios son rutas /api/worker/* protegidas por un secreto e invocadas desde cron. De esta forma el código que se ejecuta de forma desatendida es el mismo que puede lanzarse manualmente para depurarlo.

Despliegue

En un VPS de administración propia. Los contenedores escuchan únicamente en la interfaz local y un nginx delante se encarga del TLS. La base de datos y los adjuntos se copian cada noche y se replican fuera del servidor, de modo que la copia no dependa del mismo disco que los datos.