Volver a proyectosPROYECTO 02 / 03

Catálogo y gestión de alquileres turísticos

Alquileres Uspallata

Plataforma full stack para publicar alojamientos, revisar fichas, controlar disponibilidad y conectar visitantes con propietarios.

Estado
Desarrollo activo
Rol
Análisis de dominio, arquitectura y desarrollo full stack
Año
2026

Resumen del proyecto

Problema de producto, sistema y evidencia actual

Problema
Cada publicación requiere revisión y publicación controladas, disponibilidad con fecha de actualización y contacto con el propietario sin exponer datos operativos privados.
Sistema
Una API NestJS y una interfaz Vue usan Prisma y PostgreSQL, con separación entre catálogo público y flujos de propietarios y administración.
Evidencia y validación
El repositorio contiene pruebas de API y autorización, además de capturas reproducibles del catálogo y las propiedades con datos sintéticos.
Límites
Son capturas sintéticas reproducibles del producto NestJS/Vue. No hay despliegue público. No muestran revisión/publicación ni auditoría administrativa; reservas, pagos y flujos en tiempo real quedan fuera. Un enlace live depende de los gates de release del producto comunitario.

Problema

Un catálogo de alojamientos no se resuelve mostrando tarjetas. También necesita controlar quién puede editar una ficha, cuándo una publicación queda aprobada, si la disponibilidad sigue vigente y cómo llega una consulta al propietario correcto sin exponer datos internos.

Alquileres Uspallata aborda ese recorrido como un sistema full stack con catálogo público, workflows privados para propietarios y administración, disponibilidad con marca temporal y auditoría de acciones sensibles.

Contexto y restricciones

El dominio combina información pública y operación privada. Una ficha visible debe atravesar revisión y publicación explícitas, mientras que la disponibilidad puede quedar desactualizada aunque la ficha siga publicada.

Las restricciones principales fueron:

  • separar propiedad, revisión y publicación;
  • derivar al propietario desde la sesión autenticada;
  • no aceptar identidad arbitraria enviada por el cliente;
  • exponer solo campos permitidos en rutas públicas;
  • conservar motivos de rechazo y acciones administrativas;
  • no presentar disponibilidad vieja como disponibilidad confirmada actual.

Arquitectura

La API NestJS organiza autenticación, propietarios, listados, revisión, contacto y auditoría. Prisma y PostgreSQL sostienen el modelo transaccional. Vue consume rutas diferenciadas para la experiencia pública, el propietario y la administración.

El sistema separa campos públicos de ownership, almacenamiento, revisión y auditoría. Las operaciones privadas obtienen el contexto de propietario desde la sesión y las acciones administrativas quedan asociadas a actor, acción, entidad, propietario objetivo y fecha.

Decisiones de ingeniería

Revisión y publicación son estados distintos. Una ficha puede pasar de DRAFT a SUBMITTED, luego a APPROVED o REJECTED; solo una ficha aprobada puede publicarse. Editar o revisar no implica hacer visible la publicación.

Disponibilidad con frescura explícita. El estado de disponibilidad guarda una fecha de última confirmación para diferenciar información reciente de información potencialmente obsoleta.

Autoridad del servidor. El navegador no decide qué propietario modifica una ficha ni qué datos internos se exponen.

Auditoría de acciones asistidas. Las operaciones administrativas relevantes dejan una traza asociada al actor y a la entidad afectada.

Implementación

El flujo implementado cubre:

  • borradores y envío a revisión;
  • aprobación o rechazo con motivo persistido;
  • publicación controlada;
  • catálogo público paginado con filtros;
  • ficha pública con disponibilidad;
  • contacto directo al propietario correcto;
  • acciones administrativas con auditoría.

El stack principal combina NestJS, Vue, TypeScript, Prisma y PostgreSQL, con separación clara entre API, persistencia y experiencia de usuario.

QA y validación

El repositorio incluye migraciones versionadas, pruebas de API y guards, lint, build, validación de secretos y smoke test de salud. Los checkpoints documentados cubren catálogo, revisión, disponibilidad, contacto y auditoría.

La validación prioriza especialmente límites de autorización, respuestas públicas sin datos internos y consistencia de las transiciones de estado.

Resultado actual

El núcleo del producto está implementado y en desarrollo activo. La plataforma ya modela el recorrido completo desde creación y revisión de una ficha hasta publicación, consulta pública y contacto, sin mezclar autoridad del cliente con autoridad del servidor.

Evidencia y límites

La evidencia disponible está en el repositorio, las pruebas y el caso documentado. Las capturas reproducibles del catálogo y una ficha pública con disponibilidad, generadas con datos sintéticos, se muestran arriba. Siguen pendientes una instancia pública verificable y recorridos visuales de revisión/publicación, contacto directo y auditoría administrativa.

El alcance actual no incluye reservas, pagos, realtime, notificaciones, turismo completo ni despliegue productivo público. Por eso la demo permanece sin URL y el proyecto se presenta como desarrollo activo, no como producto terminado en producción.