Nuevas Épicas (MCH-029 a MCH-033): - Infraestructura SaaS multi-tenant - Auth Social (OAuth2) - Auditoría Empresarial - Feature Flags - Onboarding Wizard Nuevas Integraciones (INT-010 a INT-014): - Email Providers (SendGrid, Mailgun, SES) - Storage Cloud (S3, GCS, Azure) - OAuth Social - Redis Cache - Webhooks Outbound Nuevos ADRs (0004 a 0011): - Notifications Realtime - Feature Flags Strategy - Storage Abstraction - Webhook Retry Strategy - Audit Log Retention - Rate Limiting - OAuth Social Implementation - Email Multi-provider Actualizados: - MASTER_INVENTORY.yml - CONTEXT-MAP.yml - HERENCIA-SIMCO.md - Mapas de documentación Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
237 lines
7.6 KiB
Markdown
237 lines
7.6 KiB
Markdown
---
|
|
id: EPIC-MCH-033
|
|
type: Epic
|
|
title: "MCH-033: Onboarding Wizard"
|
|
code: MCH-033
|
|
status: Planificado
|
|
phase: 8
|
|
priority: P2
|
|
created_at: 2026-01-10
|
|
updated_at: 2026-01-10
|
|
simco_version: "4.0.1"
|
|
dependencies:
|
|
blocks: []
|
|
depends_on: ["MCH-029"]
|
|
---
|
|
|
|
# MCH-033: Onboarding Wizard
|
|
|
|
## Metadata
|
|
- **Codigo:** MCH-033
|
|
- **Fase:** 8 - Mejoras UX
|
|
- **Prioridad:** P2
|
|
- **Estado:** Planificado
|
|
- **Story Points:** 3
|
|
- **Sprint Objetivo:** Sprint 9
|
|
|
|
## Descripcion
|
|
|
|
Crear asistente interactivo de configuracion inicial que guie al usuario en los primeros pasos de setup de su negocio. Reduce friccion, aumenta activacion y mejora la experiencia de primer uso.
|
|
|
|
## Objetivos
|
|
|
|
1. Guiar configuracion inicial de negocio
|
|
2. Facilitar carga de primeros productos
|
|
3. Configurar metodos de pago
|
|
4. Invitar al equipo
|
|
5. Mostrar tour interactivo de la app
|
|
|
|
## Alcance
|
|
|
|
### Incluido
|
|
- Wizard de 5 pasos con progreso
|
|
- Persistencia de progreso (continuar despues)
|
|
- Skip opcional por paso
|
|
- Productos sugeridos por giro de negocio
|
|
- Animacion de celebracion al completar
|
|
|
|
### Excluido
|
|
- Migracion desde otros sistemas
|
|
- Importacion masiva de productos (otra feature)
|
|
- Video tutoriales (contenido futuro)
|
|
|
|
## Arquitectura
|
|
|
|
```
|
|
┌─────────────────────────────────────┐
|
|
│ MCH-033: Onboarding Wizard │
|
|
└─────────────────────────────────────┘
|
|
│
|
|
┌─────────────────────────────┼─────────────────────────────┐
|
|
▼ ▼ ▼
|
|
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
│ Paso 1 │ │ Paso 2 │ │ Paso 3 │
|
|
│ Mi Negocio │ ───> │ Productos │ ───> │ Pagos │
|
|
└──────────────┘ └──────────────┘ └──────────────┘
|
|
│
|
|
▼
|
|
┌──────────────┐ ┌──────────────┐
|
|
│ Paso 5 │ <─── │ Paso 4 │
|
|
│ Completar │ │ Mi Equipo │
|
|
└──────────────┘ └──────────────┘
|
|
|
|
┌─────────────────────────────────────┐
|
|
│ Onboarding Progress │
|
|
│ (tenant_settings.onboarding) │
|
|
└─────────────────────────────────────┘
|
|
```
|
|
|
|
## Entregables
|
|
|
|
| Entregable | Estado | Sprint | Ubicacion |
|
|
|------------|--------|--------|-----------|
|
|
| OnboardingWizard component | Planificado | 9 | `apps/web/src/components/onboarding/` |
|
|
| BusinessSetupStep | Planificado | 9 | `apps/web/src/components/onboarding/steps/` |
|
|
| ProductsStep | Planificado | 9 | `apps/web/src/components/onboarding/steps/` |
|
|
| PaymentsStep | Planificado | 9 | `apps/web/src/components/onboarding/steps/` |
|
|
| TeamStep | Planificado | 9 | `apps/web/src/components/onboarding/steps/` |
|
|
| CompletionStep | Planificado | 9 | `apps/web/src/components/onboarding/steps/` |
|
|
|
|
## Dependencias
|
|
|
|
### Depende de
|
|
- MCH-029 (Infraestructura completa para guardar progreso)
|
|
|
|
### Bloquea a
|
|
- Ninguna
|
|
|
|
---
|
|
|
|
## Historias de Usuario
|
|
|
|
### MCH-US-111: Wizard de Configuracion
|
|
|
|
**Como** usuario nuevo
|
|
**Quiero** una guia paso a paso para configurar mi negocio
|
|
**Para** empezar a usar la app rapidamente
|
|
|
|
**Story Points:** 3
|
|
|
|
**Criterios de Aceptacion:**
|
|
- [CA-111-1] Wizard de 5 pasos: Negocio, Productos, Pagos, Equipo, Completar
|
|
- [CA-111-2] Progreso guardado en backend (puede cerrar y continuar)
|
|
- [CA-111-3] Skip opcional por cada paso (excepto paso 1)
|
|
- [CA-111-4] Productos iniciales sugeridos segun giro seleccionado
|
|
- [CA-111-5] Animacion de confetti al completar
|
|
|
|
**Tareas:**
|
|
| ID | Tarea | Tipo | SP |
|
|
|----|-------|------|-----|
|
|
| MCH-TT-111-01 | OnboardingWizard container | Frontend | 0.25 |
|
|
| MCH-TT-111-02 | Paso 1: Datos de negocio (nombre, giro, logo) | Frontend | 0.5 |
|
|
| MCH-TT-111-03 | Paso 2: Productos iniciales (templates por giro) | Frontend | 0.5 |
|
|
| MCH-TT-111-04 | Paso 3: Metodos de pago (conexion Stripe/MercadoPago) | Frontend | 0.5 |
|
|
| MCH-TT-111-05 | Paso 4: Invitar equipo (emails de colaboradores) | Frontend | 0.25 |
|
|
| MCH-TT-111-06 | Paso 5: Completar con confetti y tour | Frontend | 0.25 |
|
|
| MCH-TT-111-07 | Persistencia de progreso en backend | Backend | 0.25 |
|
|
| MCH-TT-111-08 | Tests | Test | 0.25 |
|
|
| MCH-TT-111-09 | Documentacion | Docs | 0.25 |
|
|
|
|
---
|
|
|
|
## Resumen de Story Points
|
|
|
|
| Historia | SP | Sprint |
|
|
|----------|-----|--------|
|
|
| MCH-US-111: Wizard de Configuracion | 3 | 9 |
|
|
| **TOTAL** | **3** | 9 |
|
|
|
|
---
|
|
|
|
## Criterios de Aceptacion de Epica
|
|
|
|
- [ ] Wizard visible para nuevos usuarios
|
|
- [ ] Progreso persistido correctamente
|
|
- [ ] Productos sugeridos por giro funcionando
|
|
- [ ] Animacion de celebracion al completar
|
|
- [ ] Tests de flujo completo
|
|
|
|
## Notas Tecnicas
|
|
|
|
### Persistencia de Progreso
|
|
|
|
```typescript
|
|
// tenant_settings.onboarding
|
|
{
|
|
"current_step": 2,
|
|
"completed_steps": [1],
|
|
"skipped_steps": [],
|
|
"started_at": "2026-01-10T10:00:00Z",
|
|
"completed_at": null,
|
|
"data": {
|
|
"business_type": "abarrotes",
|
|
"products_count": 15
|
|
}
|
|
}
|
|
```
|
|
|
|
### Giros y Productos Sugeridos
|
|
|
|
| Giro | Productos Sugeridos |
|
|
|------|---------------------|
|
|
| Abarrotes | Refrescos, Galletas, Pan, Leche, Huevos |
|
|
| Papeleria | Cuadernos, Lapices, Colores, Folders |
|
|
| Ferreteria | Tornillos, Pintura, Brochas, Herramientas |
|
|
| Farmacia | Medicamentos basicos, Vitaminas |
|
|
| Comida | Tacos, Tortas, Aguas, Refrescos |
|
|
|
|
### Componente OnboardingWizard
|
|
|
|
```tsx
|
|
function OnboardingWizard() {
|
|
const [step, setStep] = useState(1);
|
|
const [progress, saveProgress] = useOnboardingProgress();
|
|
|
|
const steps = [
|
|
{ id: 1, name: 'Mi Negocio', component: BusinessSetupStep },
|
|
{ id: 2, name: 'Productos', component: ProductsStep },
|
|
{ id: 3, name: 'Pagos', component: PaymentsStep },
|
|
{ id: 4, name: 'Mi Equipo', component: TeamStep },
|
|
{ id: 5, name: 'Completar', component: CompletionStep },
|
|
];
|
|
|
|
const CurrentStep = steps[step - 1].component;
|
|
|
|
return (
|
|
<div className="onboarding-wizard">
|
|
<ProgressBar steps={steps} current={step} />
|
|
<CurrentStep
|
|
onNext={() => setStep(s => s + 1)}
|
|
onSkip={() => setStep(s => s + 1)}
|
|
saveProgress={saveProgress}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|
|
```
|
|
|
|
### Animacion de Celebracion
|
|
|
|
Usar libreria `canvas-confetti` para el efecto de confetti al completar:
|
|
|
|
```tsx
|
|
import confetti from 'canvas-confetti';
|
|
|
|
function CompletionStep() {
|
|
useEffect(() => {
|
|
confetti({
|
|
particleCount: 100,
|
|
spread: 70,
|
|
origin: { y: 0.6 }
|
|
});
|
|
}, []);
|
|
|
|
return (
|
|
<div className="completion">
|
|
<h1>Tu negocio esta listo</h1>
|
|
<Button onClick={startTour}>Iniciar tour</Button>
|
|
</div>
|
|
);
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
**Ultima actualizacion:** 2026-01-10
|
|
**Autor:** Architecture Team
|