Saltar a contenido

Modulo de Onboarding

Identificador: MTS-ONB-001 Version: 2.0.0 Fecha de ultima actualizacion: 2025-12-05 Estado: Aprobado Autor: SpecQueen Revisores: Director del Proyecto


1. Historial de Versiones

Version Fecha Autor Cambios
2.0.0 2025-12-05 SpecQueen OBS-067: 4 roles con onboarding diferenciado, cuidadores siempre Free, referencias a 05-flujos seccion 8
1.1.0 2025-12-05 SpecQueen Iteracion 13: Wizard de receta, seleccion de tier
1.0.0 2025-12-03 SpecQueen Version inicial

2. Proposito

Este modulo especifica los flujos de onboarding para cada uno de los 4 roles de MedTime. El onboarding esta disenado para ser:

  • Adaptativo por rol: Cada rol tiene un flujo especifico
  • Diferenciado por tier: Los pasos varian segun Free/Pro/Perfect
  • Minimo friccion: Solo pasos obligatorios son bloqueantes
  • Cumplimiento regulatorio: Consentimientos legales integrados

Referencia: Ver 05-flujos-de-usuario.md seccion 8 para diagramas detallados de cada flujo.


3. Los 4 Roles y su Onboarding

3.1. Matriz de Onboarding por Rol

Rol Codigo Selecciona Tier Onboarding Especial Tiempo Estimado
Paciente Independiente PI Si (Free/Pro/Perfect) Habitos, primer medicamento 2-7 min
Cuidador Responsable CR Si (Free/Pro/Perfect) Declaracion tutela, agregar PD 3-8 min
Cuidador Solidario CS No (siempre Free) Acepta invitacion, tour rapido 1-2 min
Paciente Dependiente PD No (hereda de CR) N/A - sin onboarding propio N/A

3.2. Reglas Fundamentales de Onboarding

Regla Descripcion
RN-ONB-001 Un CSsiempre es tier Free, no ve pantalla de seleccion de tier
RN-ONB-002 Un PDno tiene onboarding - su perfil lo crea el CR
RN-ONB-003 Un PI y un CRdeben seleccionar tier durante onboarding
RN-ONB-004 Los pasos obligatorios no pueden saltarse, los opcionales si
RN-ONB-005 El onboarding se puede retomar donde se abandono

4. Flujo de Onboarding por Rol

4.1. Paciente Independiente (PI)

Un adulto que gestiona su propia medicacion.

4.1.1. Pasos del Onboarding PI

Paso Nombre Obligatorio Free Pro Perfect
1 Bienvenida y propuesta de valor Si Si Si Si
2 Seleccion de rol Si Si Si Si
3 Seleccion de tier Si Si Si Si
4 Crear cuenta/PIN Si PIN local Firebase Auth Firebase + MFA
5 Aviso de privacidad Si Si Si Si
6 Configurar habitos No Si Si Si
7 Tour guiado (5 pantallas) No Si Si Si
8 Primer medicamento/receta No Si Si Si
9 Invitar cuidadores No No Si Si

4.1.2. Flujo Simplificado PI

flowchart TD
    A[PI inicia app] --> B[Bienvenida - carrusel 3 pantallas]
    B --> C[Seleccionar rol: Soy Paciente]
    C --> D[Seleccionar tier: Free/Pro/Perfect]

    D -->|Free| E1[Crear PIN local 4-6 digitos]
    D -->|Pro| E2[Login Google/Apple + verificar email]
    D -->|Perfect| E3[Login Google/Apple + configurar MFA]

    E1 --> F[Aviso de privacidad - aceptar]
    E2 --> F
    E3 --> F

    F --> G{Tour guiado?}
    G -->|Si| H[Tour 5 pantallas]
    G -->|Saltar| I[Configurar habitos]
    H --> I

    I --> J{Agregar primer medicamento?}
    J -->|Si| K[Wizard de receta o medicamento]
    J -->|Despues| L[Dashboard PI]
    K --> L

    L --> M{Tier Pro/Perfect?}
    M -->|Si| N{Invitar cuidadores?}
    M -->|No| O[Onboarding completado]
    N -->|Si| P[Flujo invitacion CS]
    N -->|Despues| O
    P --> O

4.2. Cuidador Responsable (CR)

Un adulto responsable legal de uno o mas Pacientes Dependientes (menores o personas bajo tutela).

4.2.1. Pasos del Onboarding CR

Paso Nombre Obligatorio Free Pro Perfect
1 Bienvenida y propuesta de valor Si Si Si Si
2 Seleccion de rol Si Si Si Si
3 Seleccion de tier Si Si Si Si
4 Crear cuenta/PIN Si PIN local Firebase Auth Firebase + MFA
5 Aviso de privacidad Si Si Si Si
6 Declaracion de tutela Si Si Si Si
7 Agregar primer dependiente Si Si Si Si
8 Tour guiado CR (5 pantallas) No Si Si Si
9 Medicamentos del dependiente No Si Si Si
10 Invitar CS para dependientes No No Si Si

4.2.2. Flujo Simplificado CR

flowchart TD
    A[CR inicia app] --> B[Bienvenida - carrusel 3 pantallas]
    B --> C[Seleccionar rol: Soy Cuidador Responsable]
    C --> D[Seleccionar tier: Free/Pro/Perfect]

    D -->|Free| E1[Crear PIN local]
    D -->|Pro| E2[Login Google/Apple + verificar email]
    D -->|Perfect| E3[Login Google/Apple + configurar MFA]

    E1 --> F[Aviso de privacidad - aceptar]
    E2 --> F
    E3 --> F

    F --> G[Declaracion jurada de tutela]
    G --> H[Agregar primer dependiente PD]
    H --> I[Ingresar datos del PD: nombre, edad, relacion]

    I --> J{Tour guiado CR?}
    J -->|Si| K[Tour 5 pantallas especifico CR]
    J -->|Saltar| L[Agregar medicamentos del PD]
    K --> L

    L --> M[Dashboard CR con 1 PD]

    M --> N{Tier Pro/Perfect - mas dependientes?}
    N -->|Si| O[Agregar otro PD]
    N -->|No| P{Invitar CS?}
    O --> I
    P -->|Si| Q[Flujo invitacion CS]
    P -->|Despues| R[Onboarding completado]
    Q --> R

4.2.3. Limites de Dependientes por Tier CR

Tier CR Max Dependientes Max CS por Dependiente
Free 1 0 (sin invitaciones)
Pro 5 3
Perfect 10 5

4.3. Cuidador Solidario (CS)

Un voluntario que apoya a un PI. Siempre es tier Free, no selecciona tier.

4.3.1. Pasos del Onboarding CS

Paso Nombre Obligatorio Notas
1 Recibir invitacion Si Via email o SMS
2 Abrir link/app Si Deep link a app
3 Crear cuenta o login Si Siempre Free
4 Ver detalles de invitacion Si Nombre del PI, permisos
5 Aceptar terminos de CS Si Responsabilidades
6 Tour rapido (3 pantallas) No Especifico para CS

4.3.2. Flujo Simplificado CS

flowchart TD
    A[CS recibe invitacion por email/SMS] --> B[Abre link]
    B --> C{Tiene app instalada?}
    C -->|No| D[Instalar app desde store]
    C -->|Si| E[App abre con token de invitacion]
    D --> E

    E --> F{Ya tiene cuenta MedTime?}
    F -->|Si| G[Login existente]
    F -->|No| H[Crear cuenta nueva]

    H --> I[Ingresar nombre]
    I --> J[Crear PIN local 4-6 digitos]
    J --> K[Aviso de privacidad simplificado]
    Note over H,K: Cuenta CS siempre Free

    G --> L[Ver detalles de invitacion]
    K --> L

    L --> M[Nombre del PI: Juan]
    M --> N[Permisos ofrecidos: ver medicamentos, recibir alertas]
    N --> O[Aceptar terminos de cuidador solidario]

    O --> P{Tour rapido?}
    P -->|Si| Q[Tour 3 pantallas para CS]
    P -->|Saltar| R[Dashboard CS]
    Q --> R

    R --> S[Onboarding CS completado]

4.3.3. Pantalla de Invitacion CS

+--------------------------------------------------+
| INVITACION DE CUIDADOR                            |
+--------------------------------------------------+

Juan Garcia te ha invitado a ser su
cuidador solidario en MedTime.

PERMISOS QUE TENDRAS:
+--------------------------------------------------+
| [x] Ver medicamentos de Juan                      |
| [x] Ver estadisticas de adherencia                |
| [x] Recibir alertas si Juan omite tomas           |
| [ ] Registrar tomas en nombre de Juan (no)        |
+--------------------------------------------------+

Al aceptar, te comprometes a:
- Respetar la privacidad de Juan
- Usar la informacion solo para apoyar su salud
- Mantener confidencialidad de los datos

+--------------------------------------------------+
|           [ Rechazar ]    [ Aceptar ]             |
+--------------------------------------------------+

4.4. Paciente Dependiente (PD)

Menor de edad o persona bajo tutela. No tiene onboarding propio.

4.4.1. Creacion de Perfil PD (por el CR)

Dato Obligatorio Notas
Nombre Si Como lo llama el CR
Fecha de nacimiento Si Para calcular edad y transicion 18
Relacion con CR Si Hijo/a, padre/madre, tutela legal
Foto No Opcional para identificacion

4.4.2. Acceso del PD a la App (Segun Edad)

Edad Acceso App Puede Confirmar Tomas Notificaciones
0-12 Ninguno No Solo al CR
13-15 Solo lectura (opcional) No Opcionales
16-17 Solo lectura (opcional) Si (supervisado) Opcionales
18+ Migracion obligatoria a PI Si Propias

4.4.3. Flujo de Acceso Opcional PD (13-17)

flowchart TD
    A[CR decide dar acceso al PD] --> B[CR genera codigo de acceso temporal]
    B --> C[PD instala app]
    C --> D[PD ingresa codigo]
    D --> E[Vinculacion como PD]
    E --> F[Solo lectura de sus datos]
    F --> G[Notificaciones en su dispositivo opcional]

    Note over E,G: PD hereda tier del CR, no tiene cuenta propia

5. Seleccion de Tier

5.1. Pantalla de Seleccion de Tier (PI y CR)

Solo PI y CR ven esta pantalla. CS es siempre Free. PD hereda tier del CR.

+--------------------------------------------------+
| ELIGE TU PLAN                                     |
+--------------------------------------------------+

+-----------------+-----------------+-----------------+
|      FREE       |       PRO       |     PERFECT     |
|                 |                 |                 |
|   $0/siempre    |   $4.99/mes     |   $9.99/mes     |
|                 |                 |                 |
| [x] 100% local  | [x] Todo Free + | [x] Todo Pro +  |
| [x] Sin cuenta  | [x] Sync cloud  | [x] Sync tiempo |
| [x] Alertas     | [x] OCR recetas |     real        |
| [x] Offline     | [x] Multiples   | [x] MFA         |
|                 |     dispositivos| [x] Recovery Key|
|                 | [x] Invitar CS  | [x] Prioridad   |
|                 |                 |     soporte     |
|                 |                 |                 |
| [ Seleccionar ] | [ Seleccionar ] | [ Seleccionar ] |
+-----------------+-----------------+-----------------+

Puedes cambiar de plan en cualquier momento.

5.2. Diferencias de Onboarding por Tier

Aspecto Free Pro Perfect
Autenticacion PIN local Firebase (Google/Apple) Firebase + MFA obligatorio
Verificacion Ninguna Email Email + MFA setup
Tour guiado Igual Igual Igual
Invitar cuidadores No disponible Si Si
Habitos Igual Igual Igual
Primer medicamento Igual + OCR receta + OCR receta

6. Pasos Obligatorios vs Opcionales

6.1. Matriz de Pasos por Rol

Paso PI CR CS PD
Bienvenida Obligatorio Obligatorio N/A N/A
Seleccion rol Obligatorio Obligatorio N/A N/A
Seleccion tier Obligatorio Obligatorio N/A (Free) N/A
Crear cuenta/PIN Obligatorio Obligatorio Obligatorio N/A
Aviso privacidad Obligatorio Obligatorio Obligatorio N/A
Declaracion tutela N/A Obligatorio N/A N/A
Agregar dependiente N/A Obligatorio N/A N/A
Ver invitacion N/A N/A Obligatorio N/A
Aceptar terminos CS N/A N/A Obligatorio N/A
Tour guiado Saltable Saltable Saltable N/A
Configurar habitos Saltable Saltable N/A N/A
Primer medicamento Saltable Saltable N/A N/A
Invitar cuidadores Saltable Saltable N/A N/A

6.2. Consecuencias de Saltar Pasos

Paso Saltado Consecuencia
Tour guiado Acceso desde menu Ayuda
Configurar habitos Usa defaults del sistema
Primer medicamento Dashboard vacio
Invitar cuidadores Accesible desde Configuracion

7. Tour Guiado por Rol

7.1. Tour Paciente Independiente (5 pantallas)

# Pantalla Contenido Interaccion
1 Bienvenida "MedTime te ayuda a nunca olvidar tus medicamentos" Tap continuar
2 Dashboard Elementos principales resaltados Highlight
3 Agregar Medicamento "Asi agregas un medicamento o receta" Demo interactivo
4 Notificaciones "Recibiras alertas cuando sea hora de tomar" Preview
5 Estadisticas "Tu racha y logros te motivan a seguir" Preview

7.2. Tour Cuidador Responsable (5 pantallas)

# Pantalla Contenido Interaccion
1 Tu Rol "Como cuidador responsable, gestionas la salud de tus dependientes" Tap continuar
2 Mis Dependientes "Aqui ves todos los dependientes que cuidas" Highlight
3 Dashboard Multi "Vista rapida de todos los medicamentos pendientes" Demo
4 Registrar Tomas "Confirma las tomas de tus dependientes" Demo interactivo
5 Alertas CR "Recibiras alertas de todos tus dependientes" Preview

7.3. Tour Cuidador Solidario (3 pantallas)

# Pantalla Contenido Interaccion
1 Tu Rol "Eres un apoyo valioso para [nombre del PI]" Tap continuar
2 Permisos "Esto es lo que puedes ver y hacer" Highlight
3 Alertas "Recibiras notificaciones segun los permisos otorgados" Preview

8. Estados del Onboarding

8.1. Modelo de Estados

stateDiagram-v2
    [*] --> NOT_STARTED
    NOT_STARTED --> WELCOME: Abre app
    WELCOME --> ROLE_SELECTION: Continua
    ROLE_SELECTION --> TIER_SELECTION: Selecciona PI/CR
    ROLE_SELECTION --> INVITATION_FLOW: Selecciona CS
    TIER_SELECTION --> ACCOUNT_CREATION: Selecciona tier
    INVITATION_FLOW --> ACCOUNT_CREATION: Ingresa codigo
    ACCOUNT_CREATION --> PRIVACY_CONSENT: Crea cuenta
    PRIVACY_CONSENT --> ROLE_SPECIFIC: Acepta
    ROLE_SPECIFIC --> OPTIONAL_STEPS: Completa obligatorios
    OPTIONAL_STEPS --> COMPLETED: Termina o salta
    COMPLETED --> [*]

    note right of ROLE_SPECIFIC: CR: tutela + PD
    note right of ROLE_SPECIFIC: CS: ver invitacion + aceptar

8.2. Persistencia de Estado

Campo Tipo Descripcion
onboarding_state enum Estado actual del onboarding
role_selected enum PI, CR, CS, PD
tier_selected enum Free, Pro, Perfect (null para CS)
completed_steps array Lista de pasos completados
skipped_steps array Lista de pasos saltados
started_at timestamp Inicio del onboarding
completed_at timestamp Fin del onboarding (null si incompleto)

9. Reglas de Negocio

Regla Descripcion
RN-ONB-010 Onboarding debe completarse antes de usar funciones principales
RN-ONB-011 Estado se persiste localmente para reanudar
RN-ONB-012 Aviso de privacidad requiere scroll completo antes de habilitar aceptar
RN-ONB-013 Declaracion de tutela CR requiere checkbox explicito
RN-ONB-014 CS no puede cambiar a Pro/Perfect (siempre Free)
RN-ONB-015 PD no tiene onboarding, CR lo crea
RN-ONB-016 Invitacion CS expira en 7 dias
RN-ONB-017 Al cumplir 18, PD debe migrar a PI con onboarding propio

10. Casos de Error

10.1. Error en Verificacion (Pro/Perfect)

flowchart TD
    A[Usuario intenta verificar] --> B{Tipo de error?}
    B -->|Email no llega| C[Reenviar en 60 segundos]
    B -->|Codigo SMS incorrecto| D{Intentos < 3?}
    B -->|Firebase caido| E[Ofrecer continuar como Free]

    D -->|Si| F[Permitir reintento]
    D -->|No| G[Bloquear 30 minutos]

    C --> H[Usuario reintenta]
    F --> H
    G --> I[Mostrar temporizador]
    E --> J[Cambiar a cuenta Free local]

10.2. Error en Invitacion CS

Error Causa Solucion
Codigo invalido Token mal copiado Solicitar nuevo codigo al PI
Invitacion expirada Mas de 7 dias PI debe reenviar invitacion
PI ya no existe PI elimino cuenta CS no puede vincularse
Limite de CS alcanzado PI llego al maximo PI debe desvincular otro CS

11. Integracion con Otros Modulos

Modulo Integracion
MTS-AUTH-001 Creacion de cuenta y autenticacion
MTS-PRI-001 Consentimientos y avisos de privacidad
MTS-PAY-001 Procesamiento de suscripcion Pro/Perfect
MTS-RX-001 Wizard de primera receta
MTS-MED-001 Agregar primer medicamento

12. Criterios de Aceptacion

12.1. Por Rol

  • PI puede completar onboarding seleccionando cualquier tier
  • CR puede completar onboarding agregando al menos 1 PD
  • CS puede aceptar invitacion y completar onboarding Free
  • PD no tiene onboarding (verificar que CR crea perfil)

12.2. Por Tier

  • Free: cuenta local con PIN funciona offline
  • Pro: Firebase Auth con verificacion email funciona
  • Perfect: MFA obligatorio se configura correctamente

12.3. Generales

  • Pasos obligatorios no se pueden saltar
  • Pasos opcionales se pueden saltar
  • Estado se persiste al cerrar app
  • Tour guiado se puede repetir desde menu Ayuda

13. Referencias


Documento generado por SpecQueen - "El onboarding es la primera impresion. Esta especificacion asegura que sea perfecta."