Todos los proyectos
Proyecto para cliente

Rishi Estudio

Gestión integral de un estudio de Pilates: membresías con créditos, agenda recurrente, reservas, cobros y emails automáticos.

Rol
Full-stack: arquitectura, backend, frontend, base de datos y despliegue
Año
2025
Estado
En producción · mejora continua
Cliente
Estudio de Pilates
Ver en producción
2
perfiles: admin y alumno
Recurrente
reserva de horarios fijos
Créditos
control automático
Mensual
reporte de ingresos

Resumen

Plataforma web full-stack para la gestión integral de un estudio de Pilates: planes de membresía con créditos de clases, agenda con disponibilidad recurrente, reservas de alumnos, cobros y notificaciones automáticas por email.

Contexto

El problema

El estudio gestionaba alumnos, planes y horarios con planillas y WhatsApp, y eso generaba tres problemas concretos: créditos descontrolados — nadie sabía con certeza cuántas clases le quedaban a cada alumno ni cuándo vencía su plan —, re-agendado mensual — los alumnos de largo recorrido tenían que volver a pedir sus mismos horarios todos los meses — y falta de visibilidad de negocio, sin corte mensual de ingresos ni de ocupación.

La solución

Una aplicación con dos perfiles diferenciados: un panel de administración con ABM de planes, alumnos, tipos de clase y disponibilidad, agenda semanal y mensual, asignación de planes con fecha de inicio, gestión de feriados y reporte de ingresos; y un portal del alumno con landing pública, registro, “Mi plan” con créditos restantes y vencimiento, y agenda para reservar, reservar de forma recurrente o cancelar.

Qué hace

Créditos con vencimiento

Cada alumno ve cuántas clases le quedan y cuándo vence su plan. El descuento es automático al reservar.

Reserva recurrente

El alumno fija sus horarios habituales una vez y deja de re-agendar todos los meses.

Agenda con disponibilidad y feriados

Disponibilidad recurrente por tipo de clase, con gestión de feriados y bloqueos que se propagan a las reservas.

Reporte de ingresos mensual

Corte mensual de ingresos y ocupación: el dato de negocio que antes no existía.

Notificaciones automáticas

Emails automáticos en los eventos relevantes del ciclo: confirmaciones, vencimientos y recordatorios.

Decisiones técnicas

  1. 01

    Modelar los créditos como dominio, no como contador

    El plan, su vencimiento, el consumo y la cancelación forman un ciclo con reglas propias. Tratarlo como una entidad de dominio — y no como un número que se resta — es lo que permite cancelar, reintegrar y renovar sin inconsistencias.

  2. 02

    Base de un producto mayor

    Este sistema fue el punto de partida que después se refactorizó a Nutri Suite, el SaaS multi-tenant de nutrición.

Stack

Backend

  • NestJS
  • TypeScript
  • TypeORM
  • Nodemailer

Datos

  • PostgreSQL
  • Migraciones versionadas

Frontend

  • Portal del alumno
  • Panel de administración
  • Landing pública

Infra

  • Deploy propio
  • Dominio propio

Siguiente proyecto

Vibe