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
- 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.
- 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.
- 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.
- 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.
- 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.