VOLTA · 01-project-definition.md · 3 de 22

En esta página 1. Identidad 0%

01 — Definición de proyecto — VOLTA

1. Identidad

CampoValor
NombreVOLTA
SignificadoVuelta a la cancha: el hueco que te espera en el grupo del barrio
Eslogan”Tu plaza en la cancha.”
Una fraseWeb del club de barrio para pedir plaza en clases y panel del coach que gestiona esas solicitudes.
SectorFitness comunitario / club de barrio
TipoWeb club + solicitud pública + inbox coach JWT — Nivel 1
PlataformaWeb responsive (móvil-first visitante + desktop coach)
Mercado demoEspaña (club de barrio, Valencia en copy)
Idiomaes-ES
Fecha caso2026-08-08

2. Problema

Principal (hipótesis de diseño)

Los clubs de barrio gestionan listas de plaza por WhatsApp, notas en el mostrador y mensajes perdidos. El visitante no sabe si su mensaje llegó; el coach no tiene un inbox con estado (nuevo / contactado / confirmado).

Secundarios

ProblemaQuién lo sufreEfecto
“Apúntame al HIIT del jueves” en hilosVisitanteNo hay acuse ni código de referencia
Listas en papel / Excel localCoachDifícil priorizar contactos del día
Sin tipo de clase ni franja preferidaAmbosLlamadas de ida y vuelta
Sin máquina de estadosCoachSe pierde quién ya fue contactado

Supuestos (no investigación primaria propia)

  • S1: Clubs pequeños–medianos no necesitan un CRM enterprise; sí un inbox de solicitudes con estado.
  • S2: El visitante prefiere un form de 1 pantalla a crear cuenta o descargar app.
  • S3: El valor inmediato está en captura estructurada + pipeline de estado, no en aforo live ni pagos.

Hipótesis de producto

IDHipótesisSeñal de validación (futura)
H1Un form público con tipo de clase y franja reduce mensajes ambiguos↓ “¿a qué hora?” post-solicitud
H2Inbox con estados NEW→CONTACTED→CONFIRMED acelera el cierre de plazaMediana tiempo NEW→CONFIRMED
H3Códigos cortos VO-MMDD-XXX facilitan referencia oralUso del código en WhatsApp/llamada

No se afirman estadísticas de mercado inventadas. Todo lo anterior es razonamiento de diseño etiquetado.

3. Propuesta de valor

ParaValor
Visitante (Marc)Pide plaza en 1 minuto: clase, día y franja sin cuenta.
Coach (Nora)Ve solicitudes nuevas, marca contacto y confirma o cancela.
ClubCanal digital mínimo viable sin marketplace ni ERP de socios.

No es VOLTA

ExcluidoPor qué
Marketplace de entrenadores o clubsEso sería CORREA-like; no es el club propio
Tool de finca / logística / legalDominios de otros días de la serie
SaaS multi-sede con billingComplejidad L3/L4
App fitness con wearables / planes IAFuera del job “plaza en la cancha”

4. Objetivos

Negocio / caso de estudio

  • Demostrar vertical slice L1 fitness con JWT coach y dominio ClassRequest.
  • Portfolio coherente: Paper + docs + app runnable.

Usuario

RolObjetivo medible en demo
VisitanteEnviar solicitud en < 2 min; ver código en success
CoachMarcar CONTACTED / CONFIRMED en < 3 taps desde el inbox

No objetivos v1 (explícitos)

  • Pagos y cuotas mensuales
  • Aforo en tiempo real por clase
  • Chat in-app
  • Multi-coach con permisos granulares
  • Export contable

5. Roles y permisos (resumen)

AcciónPúblicoCOACH
Ver home / clases
POST solicitudSí (mismo form)
Login JWTNo (no cuenta socio)
Listar solicitudesNo (401)
Ver stats summaryNo
Ver detalleNo
Cambiar statusNo

6. Métricas (modelo, no instrumentadas en v1 salvo base)

TipoMétricaDefinición
North StarSolicitudes CONFIRMED / semanaPlazas realmente cerradas
Activación1ª solicitud públicaPOST create
Ops% NEW contactadas en 24 hNEW → CONTACTED
CalidadTasa error API en create/list4xx/5xx
UXTiempo form completeMediana en analytics futuro

7. Alcance funcional v1 (L1)

MóduloIncluido
Home públicaHero, clases, horarios teaser, CTAs
SolicitudForm + POST /api/requests
SuccessCódigo + mensaje
AuthPOST /api/auth/login → JWT
InboxGET list, GET stats, GET by id, PATCH status
UI estadosLoading implícito, empty, error de red
Seed1 coach, 5 solicitudes

8. Criterios de aceptación de producto

  1. Un visitante puede enviar una solicitud sin autenticación y recibir un código VO-….
  2. Sin token, GET/PATCH /api/requests* responden 401.
  3. Un coach puede iniciar sesión y ver el inbox ordenado (createdAt desc) con stats.
  4. El detalle permite transicionar estados NEW | CONTACTED | CONFIRMED | CANCELLED.
  5. La home comunica club de barrio y plaza, no marketplace ni gym chain genérico.
  6. Tipos de clase soportados: HIIT, YOGA, BASKET, KIDS, OPEN.

9. Stack y artefactos

CapaDetalle
FrontendAngular + Tailwind · puerto 4200
BackendNestJS · puerto 3008
DBNeon PostgreSQL · Prisma · project delicate-mountain-11765167
AuthJWT (passport/strategy en API)
DiseñoPaper 01KZG2VRQFF2QF0PRDB10D4AG7
Repo app/Users/cristian/orca/volta-app/ · GitHub Criscode2022/volta-app

10. Riesgos y mitigaciones

RiesgoImpactoMitigación v1
Spam en form públicoInbox ruidosoValidación server; honeypot futuro L1+
Expectativa de aforo liveDecepciónCopy “solicitud”; coach confirma
Confundir con ClassPassExpectativa marketplaceMarca club único, no multi-sede
PII en solicitudesPrivacidadSolo coach autenticado lista; doc 11

11. Glosario

TérminoDefinición en VOLTA
PlazaHueco en una clase o cancha abierta del club
SolicitudClassRequest con preferencias y estado
CoachUsuario autenticado que opera el inbox
Código VO-Identificador corto oral (VO-0808-01)
OPENTipo de clase “cancha abierta” / libre