Saltar al contenido
Volver a proyectos

Coco Aventura

La operación completa de un balneario con cabañas, de la reservación al corte de caja.

Desarrollé el sistema que opera Coco Aventura, un club de playa con cabañas. Sustituí libretas y hojas de cálculo por un solo lugar donde vive el día completo: quién duerme dónde, quién entró nada más por el día, qué se vendió y cuánto tiene que haber en la caja al cerrar.

Mi rol
Arquitectura, backend y frontend
Sector
Turismo / Balneario y cabañas
Alcance
App web
4 meses
Duración del proyecto
5 módulos
Módulos operativos entregados
4 flujos
Ingresos conciliados en el corte
2 cajas
Puntos de venta en paralelo

Stack

  • React (Vite)
  • Material UI
  • TypeScript
  • Node.js
  • Express
  • MongoDB

Pantallas

Capturas del sistema real en operación.

App web

Calendario, reservaciones y check-in

La parrilla de ocupación por cabaña y día, con el color marcando el estado de pago de cada estancia. El alta de reservación calcula la tarifa según fechas, tipo de cabaña y número de personas, y bloquea los empalmes. El check-in del día entrega brazaletes y registra el vehículo, y el mapa de cabañas muestra en tiempo real cuáles están ocupadas y por quién.

App web

Covers, day pass y eventos

El registro de quienes entran sólo por el día. Cada partida toma el precio de la tarifa vigente — el sistema rechaza cualquier otro — y va sumando el total del turno hasta que el cover se cierra. Los eventos con precio propio, como una noche de espuma, se cobran con su propio color de brazalete para distinguirlos en la puerta.

App web

Punto de venta, tiendita y rentas

Dos cajas trabajando a la vez: el punto de venta de la playa y la tiendita. Se cobra tocando el producto, se descuenta inventario en el momento y no deja vender lo que ya no hay. Las rentas de camastros y sombrillas llevan su registro diario con el resumen de lo cobrado.

App web

Brazaletes, compras y cierre de caja

El libro de brazaletes por color y por día: lo que había, lo que se usó, lo que se resurtió y en manos de quién quedó — bodega, tiendita o cada recepcionista. Las compras a proveedores entran a inventario con su ticket, y el corte de turno concentra reservaciones, covers, rentas y ventas del día para conciliar efectivo, tarjeta y transferencias contra lo que hay en la caja.

App web

Tarifas, cabañas y control de accesos

Las tarifas se configuran por servicio y temporada, con precios distintos entre semana, en fin de semana o en fechas concretas, y el calendario muestra cuál aplica cada día. Junto al catálogo de cabañas y tipos de servicio están los horarios del personal y los roles, donde se define módulo por módulo quién puede ver, crear, editar y borrar.

El problema

Coco Aventura son varios negocios en el mismo terreno: huéspedes que se quedan a dormir en cabañas, visitantes que entran sólo por el día, una tiendita y la renta de camastros y sombrillas. Cada cosa se llevaba en su propia libreta u hoja de cálculo. El dinero entra por cuatro caminos —reservaciones, covers, rentas y ventas— y la caja tiene que cuadrar al final de cada turno.

Lo que construí

Diseñé el sistema alrededor del calendario de ocupación: un renglón por cabaña, una columna por día, y el color diciendo si la estancia está liquidada, con depósito o sin depósito. Al dar de alta una reservación el sistema resuelve solo la tarifa vigente según fechas, tipo de cabaña y número de personas, y no deja empalmar dos huéspedes en la misma cabaña. De ahí cerré los huecos por donde se va el dinero: el cover sólo acepta el precio de la tarifa del día, las dos cajas descuentan inventario en el momento y no dejan vender lo que ya no hay, y los brazaletes llevan un libro por color con traspasos entre bodega, tiendita y cada recepcionista. El corte de turno concentra reservaciones, covers, rentas y ventas en una sola conciliación de efectivo, tarjeta y transferencias contra lo que físicamente hay en la caja. Todo el acceso pasa por roles, con permisos de ver, crear, editar y borrar definidos módulo por módulo.

Decisiones técnicas

  1. 01

    El calendario de ocupación como interfaz

    En vez de una lista de reservaciones, hice del calendario la pantalla principal: parrilla de cabaña por día donde el color codifica el estado de pago. Una sola vista contesta quién llega, quién se va y qué queda libre, que es lo que recepción necesita saber todo el día.

  2. 02

    El precio lo dicta la tarifa, no el usuario

    Las tarifas se configuran por servicio y temporada, con precios distintos entre semana, en fin de semana o en fechas concretas, y el calendario muestra cuál aplica cada día. El registro de covers rechaza cualquier importe que no sea el de la tarifa vigente, así nadie cobra de más ni de menos en la puerta.

  3. 03

    Una cabaña, un huésped, sin empalmes

    El alta de estancia resuelve sola la tarifa por fechas, tipo de cabaña y número de personas, y bloquea que dos huéspedes ocupen la misma cabaña en fechas traslapadas. El mapa de cabañas cierra el círculo: muestra en tiempo real cuáles están ocupadas y por quién.

  4. 04

    Libro de brazaletes por color y custodia

    Modelé los brazaletes como inventario con dueño: entran a bodega, se traspasan a tiendita, se reparten a recepción y se descuentan conforme se entregan. El libro cuadra por color, por día y por responsable. Los eventos con precio propio, como una noche de espuma, salen con su propio color para distinguirlos en la puerta.

  5. 05

    Un corte que concilia cuatro flujos

    El cierre de turno junta reservaciones, covers, rentas y ventas del día para conciliar efectivo, tarjeta y transferencias contra el dinero que realmente está en la caja. Es el punto donde el sistema deja de ser un registro y se vuelve un control.

Siguiente proyecto

GRI Admin

El mantenimiento de residenciales: de hojas sueltas a un sistema con evidencia.