# MiChangarrito - Plan de Desarrollo ## Estrategia General ### Base de Codigo - **Reutilizar:** POS-Micro como base (80% del backend) - **Extender:** Schema de BD con nuevas tablas - **Adaptar:** Trading-Platform LLM patterns a TypeScript - **Nuevo:** WhatsApp Service, MCP Server, Mobile App ### Timeline Estimado - **MVP Fase 1:** 8-10 semanas - **Fase 2 Inteligencia:** 4-6 semanas - **Fase 3 Asistente IA:** 6-8 semanas - **Total MVP Completo:** 18-24 semanas (~5-6 meses) --- ## FASE 1: MVP CORE ### MCH-001: Infraestructura Base **Duracion estimada:** 1-2 semanas **Prioridad:** P0 **Dependencias:** Ninguna #### Tareas Backend - [ ] Copiar estructura de POS-Micro a michangarrito/apps/backend - [ ] Actualizar package.json con nombre y dependencias - [ ] Configurar TypeORM para PostgreSQL 5432 (instancia compartida workspace) - [ ] Configurar Redis 6379/DB8 (instancia compartida workspace) - [ ] Implementar health checks - [ ] Configurar Swagger/OpenAPI - [ ] Setup Docker Compose (db, redis, mailhog) - [ ] Configurar ESLint + Prettier #### Tareas Database - [ ] Crear script de inicializacion (database/init/) - [ ] Implementar schema `public` (tenants, tenant_configs) - [ ] Implementar schema `auth` (users, sessions, otp_codes) - [ ] Implementar RLS policies basicas - [ ] Crear funciones utilitarias (generate_ticket_number, update_updated_at) - [ ] Seeds de datos de prueba #### Tareas DevOps - [ ] Crear .env.example completo - [ ] Documentar proceso de setup - [ ] Configurar scripts npm (dev, build, test, migration) #### Entregables - Backend NestJS corriendo en puerto 3141 - Base de datos con schemas public y auth - Docker Compose funcional - Documentacion de setup --- ### MCH-002: Autenticacion **Duracion estimada:** 1 semana **Prioridad:** P0 **Dependencias:** MCH-001 #### Tareas Backend - [ ] Adaptar AuthModule de POS-Micro - [ ] Implementar registro de tenant + usuario owner - [ ] Implementar login con OTP (SMS/WhatsApp) - [ ] Implementar PIN de acceso rapido - [ ] Configurar JWT con refresh tokens - [ ] Implementar biometrico (preparar endpoints) - [ ] Guards para roles (owner, employee) - [ ] Middleware de tenant isolation #### Tareas Database - [ ] Verificar tablas auth.users, auth.sessions, auth.otp_codes - [ ] Indices para busqueda por telefono #### Integraciones - [ ] Servicio de envio OTP (placeholder, luego WhatsApp) #### Entregables - Endpoints: POST /auth/register, POST /auth/login, POST /auth/verify-otp - Endpoints: POST /auth/set-pin, POST /auth/login-pin - Endpoints: POST /auth/refresh, POST /auth/logout - Guards funcionando --- ### MCH-003: Catalogo de Productos **Duracion estimada:** 1 semana **Prioridad:** P0 **Dependencias:** MCH-002 #### Tareas Backend - [ ] Copiar ProductsModule de POS-Micro - [ ] Copiar CategoriesModule de POS-Micro - [ ] Adaptar DTOs para MiChangarrito - [ ] Implementar busqueda por nombre (full-text) - [ ] Implementar busqueda por codigo de barras - [ ] Endpoint de importacion masiva - [ ] Endpoint de templates de proveedores #### Tareas Database - [ ] Implementar schema `catalog` - [ ] Tabla catalog.categories - [ ] Tabla catalog.products - [ ] Tabla catalog.product_templates - [ ] Seeds de templates (Bimbo, Coca-Cola, Sabritas) #### Entregables - CRUD completo de categorias - CRUD completo de productos - Busqueda y filtrado - Templates de proveedores cargados --- ### MCH-004: Punto de Venta Basico **Duracion estimada:** 1.5 semanas **Prioridad:** P0 **Dependencias:** MCH-003 #### Tareas Backend - [ ] Copiar SalesModule de POS-Micro - [ ] Adaptar para multiples metodos de pago - [ ] Implementar generacion de ticket - [ ] Implementar corte de caja - [ ] Calculos de totales, impuestos, cambio - [ ] Cancelacion de ventas #### Tareas Database - [ ] Implementar schema `sales` - [ ] Tabla sales.sales - [ ] Tabla sales.sale_items - [ ] Tabla sales.payments - [ ] Tabla sales.daily_closures #### Tareas Frontend Web - [ ] Inicializar proyecto React + Vite en apps/web - [ ] Configurar TailwindCSS - [ ] Copiar componentes base de POS-Micro frontend - [ ] Adaptar POSPage - [ ] Adaptar CartPanel - [ ] Adaptar CheckoutModal - [ ] Implementar login screen - [ ] Implementar dashboard basico #### Entregables - Registro de ventas completo - Corte de caja funcional - UI web basica de POS --- ### MCH-005: Integraciones de Pago **Duracion estimada:** 2 semanas **Prioridad:** P0 **Dependencias:** MCH-004 #### Tareas Backend - Efectivo - [ ] Registro de pago en efectivo - [ ] Calculo de cambio - [ ] Validacion de montos #### Tareas Backend - Stripe - [ ] Configurar SDK de Stripe - [ ] Crear PaymentsModule para suscripciones - [ ] Implementar creacion de customer - [ ] Implementar webhook handler - [ ] Endpoint para pago con OXXO #### Tareas Backend - Mercado Pago (Basico) - [ ] Configurar API de Mercado Pago - [ ] Implementar creacion de payment intent - [ ] Implementar webhook handler - [ ] Manejo de estados de pago #### Tareas Database - [ ] Completar tabla sales.payments con todos los campos - [ ] Indices para referencias externas #### Entregables - Pago en efectivo funcionando - Stripe configurado (suscripciones preparadas) - Mercado Pago basico funcionando --- ## FASE 2: INTELIGENCIA ### MCH-006: Onboarding Inteligente **Duracion estimada:** 1.5 semanas **Prioridad:** P1 **Dependencias:** MCH-002, MCH-003 #### Tareas Backend - [ ] Crear OnboardingModule - [ ] Flujo de registro guiado - [ ] Procesamiento de imagenes (OCR) - [ ] Procesamiento de audios (transcripcion) - [ ] Seleccion de templates por giro - [ ] Estado de onboarding por tenant #### Integraciones - [ ] Google Cloud Vision para OCR - [ ] OpenAI Whisper para audio #### Entregables - Flujo de onboarding paso a paso - Carga de productos desde fotos - Carga de productos desde audio --- ### MCH-007: Templates y Catalogos **Duracion estimada:** 1 semana **Prioridad:** P1 **Dependencias:** MCH-003 #### Tareas Backend - [ ] CRUD de templates administrativo - [ ] Endpoint de busqueda de templates - [ ] Importacion de template a tenant - [ ] Precios sugeridos por region #### Tareas Database - [ ] Ampliar catalog.product_templates - [ ] Seeds extensivos de proveedores #### Entregables - Catalogo de 500+ productos template - Busqueda por proveedor/categoria - Importacion one-click --- ### MCH-008: Sistema de Fiados **Duracion estimada:** 1.5 semanas **Prioridad:** P1 **Dependencias:** MCH-004 #### Tareas Backend - [ ] Crear CustomersModule - [ ] Crear FiadosModule - [ ] CRUD de clientes - [ ] Registro de fiado al vender - [ ] Abonos a fiados - [ ] Recordatorios automaticos - [ ] Reporte de fiados pendientes #### Tareas Database - [ ] Implementar schema `customers` - [ ] Tabla customers.customers - [ ] Tabla customers.fiados - [ ] Tabla customers.fiado_payments - [ ] Trigger para balance de cliente #### Entregables - Gestion completa de clientes - Sistema de fiados funcional - Recordatorios configurables --- ### MCH-009: Prediccion de Inventario **Duracion estimada:** 1 semana **Prioridad:** P1 **Dependencias:** MCH-004 #### Tareas Backend - [ ] Crear InventoryModule - [ ] Movimientos de inventario automaticos (ventas) - [ ] Registro de compras/entradas - [ ] Alertas de stock bajo - [ ] Prediccion basica (promedio movil) - [ ] Sugerencias de resurtido #### Tareas Database - [ ] Implementar schema `inventory` - [ ] Tabla inventory.inventory_movements - [ ] Tabla inventory.stock_alerts #### Entregables - Control de inventario automatico - Alertas de stock bajo - Sugerencias de compra basicas --- ## FASE 3: ASISTENTE IA ### MCH-010: MCP Server **Duracion estimada:** 2 semanas **Prioridad:** P0 **Dependencias:** MCH-004, MCH-008, MCH-009 #### Tareas MCP Server - [ ] Inicializar proyecto en apps/mcp-server - [ ] Configurar MCP SDK TypeScript - [ ] Implementar transporte stdio - [ ] Implementar tools basicos: - [ ] buscar_producto - [ ] registrar_venta - [ ] obtener_ventas - [ ] consultar_stock - [ ] registrar_fiado - [ ] obtener_fiados - [ ] generar_reporte_ventas - [ ] Implementar autenticacion por tenant - [ ] Implementar rate limiting - [ ] Logging de tool calls #### Tareas Backend - [ ] Cliente HTTP para MCP Server - [ ] Tracking de uso de tokens #### Entregables - MCP Server corriendo en puerto 3142 - 10+ tools funcionales - Documentacion de tools --- ### MCH-011: WhatsApp Service **Duracion estimada:** 2 semanas **Prioridad:** P0 **Dependencias:** MCH-002 #### Tareas WhatsApp Service - [ ] Inicializar proyecto NestJS en apps/whatsapp-service - [ ] Configurar Meta Cloud API - [ ] Implementar verificacion de webhook - [ ] Implementar recepcion de mensajes - [ ] Implementar envio de mensajes (texto, template, botones) - [ ] Implementar envio de multimedia - [ ] Deteccion de tipo de usuario (owner vs customer) - [ ] Persistencia de conversaciones #### Tareas Database - [ ] Implementar schema `messaging` - [ ] Tabla messaging.conversations - [ ] Tabla messaging.messages - [ ] Tabla messaging.notifications #### Integraciones - [ ] Meta WhatsApp Cloud API #### Entregables - WhatsApp Service corriendo en puerto 3143 - Webhook funcional - Envio/recepcion de mensajes - Deteccion de roles --- ### MCH-012: Chat LLM Dueno **Duracion estimada:** 1.5 semanas **Prioridad:** P1 **Dependencias:** MCH-010, MCH-011 #### Tareas Backend - [ ] Crear LLMModule - [ ] Cliente agnostico de LLM (OpenRouter/OpenAI/Claude) - [ ] System prompts para dueno - [ ] Integracion con MCP tools - [ ] Contexto de conversacion - [ ] Tracking de tokens #### Tareas WhatsApp - [ ] Flujo de mensaje de dueno -> LLM -> respuesta - [ ] Manejo de tool calls - [ ] Respuestas con formato amigable #### Entregables - Dueno puede consultar via WhatsApp: - "Cuanto vendi hoy?" - "Que me falta por resurtir?" - "Registra una venta de 2 cocas" --- ### MCH-013: Chat LLM Cliente **Duracion estimada:** 1 semana **Prioridad:** P1 **Dependencias:** MCH-012 #### Tareas Backend - [ ] System prompts para cliente - [ ] Tools limitados para cliente - [ ] Deteccion de intencion (consulta, pedido, precio) #### Tareas WhatsApp - [ ] Flujo de mensaje cliente -> LLM -> respuesta - [ ] Notificacion a dueno de pedidos #### Entregables - Cliente puede consultar via WhatsApp: - "Tienen refrescos?" - "A como el kilo de tortilla?" - "Quiero pedir 3 tacos para llevar" --- ## FASE 4: PEDIDOS Y CLIENTES ### MCH-014: Gestion de Clientes **Duracion estimada:** 1 semana **Prioridad:** P1 **Dependencias:** MCH-008 #### Tareas Backend - [ ] Extender CustomersModule - [ ] Historial de compras por cliente - [ ] Productos frecuentes - [ ] Comunicacion directa por WhatsApp #### Tareas Frontend - [ ] Pantalla de clientes - [ ] Detalle de cliente - [ ] Historial de compras #### Entregables - Gestion completa de clientes en web - Historial y estadisticas --- ### MCH-015: Pedidos via WhatsApp **Duracion estimada:** 1.5 semanas **Prioridad:** P1 **Dependencias:** MCH-013 #### Tareas Backend - [ ] Crear OrdersModule - [ ] Recepcion de pedidos desde LLM - [ ] Estados de pedido - [ ] Notificaciones push de nuevo pedido #### Tareas Database - [ ] Implementar schema `orders` - [ ] Tabla orders.orders - [ ] Tabla orders.order_items #### Tareas Frontend - [ ] Vista de pedidos pendientes - [ ] Aceptar/rechazar pedido - [ ] Cobrar pedido #### Entregables - Flujo completo de pedidos - Notificaciones en tiempo real --- ### MCH-016: Entregas a Domicilio **Duracion estimada:** 1 semana **Prioridad:** P2 **Dependencias:** MCH-015 #### Tareas Backend - [ ] Configuracion de zonas de entrega - [ ] Costos de envio - [ ] Estados de entrega - [ ] Tracking basico #### Entregables - Configuracion de delivery - Estados de pedido con entrega --- ### MCH-017: Notificaciones **Duracion estimada:** 1 semana **Prioridad:** P1 **Dependencias:** MCH-011 #### Tareas Backend - [ ] Crear NotificationsModule - [ ] Integracion Firebase FCM - [ ] Programacion de notificaciones - [ ] Resumen diario automatico - [ ] Alertas de stock #### Integraciones - [ ] Firebase Cloud Messaging #### Entregables - Push notifications funcionales - Resumen diario por WhatsApp - Alertas configurables --- ## FASE 5: MONETIZACION ### MCH-018: Planes y Suscripciones **Duracion estimada:** 1.5 semanas **Prioridad:** P0 **Dependencias:** MCH-005 #### Tareas Backend - [ ] Crear SubscriptionsModule - [ ] Definicion de planes (Changarrito, Tiendita) - [ ] Creacion de suscripcion en Stripe - [ ] Manejo de webhooks de suscripcion - [ ] Cambio de plan - [ ] Cancelacion #### Tareas Database - [ ] Implementar schema `subscriptions` - [ ] Tabla subscriptions.plans - [ ] Tabla subscriptions.subscriptions #### Entregables - Planes configurados en Stripe - Suscripcion funcional --- ### MCH-019: Tienda de Tokens **Duracion estimada:** 1 semana **Prioridad:** P1 **Dependencias:** MCH-018 #### Tareas Backend - [ ] Paquetes de tokens - [ ] Compra de tokens (Stripe) - [ ] Balance de tokens por tenant - [ ] Consumo de tokens en cada llamada LLM #### Tareas Database - [ ] Tabla subscriptions.token_packages - [ ] Tabla subscriptions.token_usage - [ ] Tabla subscriptions.tenant_token_balance #### Entregables - Tienda de tokens funcional - Tracking de consumo --- ### MCH-020: Pagos Suscripcion **Duracion estimada:** 1 semana **Prioridad:** P0 **Dependencias:** MCH-018 #### Tareas Backend - [ ] Pago con OXXO (referencia) - [ ] Preparar IAP iOS (endpoints) - [ ] Preparar IAP Android (endpoints) #### Entregables - Multiples metodos de pago para suscripcion --- ### MCH-021: Dashboard Web **Duracion estimada:** 2 semanas **Prioridad:** P1 **Dependencias:** MCH-004, MCH-008 #### Tareas Frontend - [ ] Dashboard principal con metricas - [ ] Graficas de ventas - [ ] Productos mas vendidos - [ ] Reportes descargables - [ ] Configuracion de negocio - [ ] Gestion de suscripcion #### Entregables - Dashboard web completo - Reportes PDF/Excel --- ## FASE 6: CRECIMIENTO ### MCH-022: Modo Offline **Duracion estimada:** 2 semanas **Prioridad:** P1 **Dependencias:** MCH-004 #### Tareas Mobile - [ ] SQLite local - [ ] Sync de productos - [ ] Registro offline de ventas - [ ] Cola de sincronizacion - [ ] Resolucion de conflictos #### Entregables - App funcional sin internet - Sincronizacion automatica --- ### MCH-023: Programa Referidos **Duracion estimada:** 1 semana **Prioridad:** P2 **Dependencias:** MCH-018 #### Tareas Backend - [ ] Generacion de codigos de referido - [ ] Tracking de referidos - [ ] Aplicacion de beneficios #### Entregables - Sistema de referidos funcional --- ### MCH-024: CoDi y SPEI **Duracion estimada:** 1.5 semanas **Prioridad:** P2 **Dependencias:** MCH-005 #### Tareas Backend - [ ] Integracion con Openpay para CoDi - [ ] Generacion de QR - [ ] CLABE virtual (si disponible) #### Entregables - Cobro con CoDi funcional --- ### MCH-025: Widgets y Atajos **Duracion estimada:** 1 semana **Prioridad:** P2 **Dependencias:** MCH-004 #### Tareas Mobile - [ ] Android widget de venta rapida - [ ] iOS quick actions - [ ] Deep links #### Entregables - Widgets funcionales --- ## APP MOBILE (Paralelo a Fases 3-5) ### Desarrollo React Native **Duracion estimada:** 8-10 semanas (paralelo) **Prioridad:** P0 #### Semanas 1-2: Setup - [ ] Inicializar proyecto Expo en apps/mobile - [ ] Configurar navegacion (React Navigation) - [ ] Configurar estado global (Zustand) - [ ] Configurar API client - [ ] Pantalla de login #### Semanas 3-4: Core - [ ] Pantalla de POS - [ ] Componente de carrito - [ ] Checkout modal - [ ] Scanner de codigo de barras #### Semanas 5-6: Features - [ ] Pantalla de productos - [ ] Pantalla de clientes - [ ] Pantalla de fiados - [ ] Pantalla de pedidos #### Semanas 7-8: Integraciones - [ ] Push notifications (Expo Notifications) - [ ] Bluetooth para terminal (si aplica) - [ ] Deep linking #### Semanas 9-10: Polish - [ ] UI/UX refinamiento - [ ] Performance optimization - [ ] Testing - [ ] Build para TestFlight/Play Console --- ## Cronograma Visual ``` Semana 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | | | | | | | | | | | | | | | | | | MCH-001 ████ MCH-002 ██ MCH-003 ██ MCH-004 ███ MCH-005 ████ --- MVP FASE 1 COMPLETADO (Semana 7) --- MCH-006 ███ MCH-007 ██ MCH-008 ███ MCH-009 ██ --- FASE 2 COMPLETADA (Semana 11) --- MCH-010 ████ MCH-011 ████ MCH-012 ███ MCH-013 ██ --- FASE 3 COMPLETADA (Semana 15) --- MCH-014 ██ MCH-015 ███ MCH-017 ██ --- FASE 4 BASICA COMPLETADA (Semana 18) --- MOBILE |███████████████████████████████████████████████████| | Setup | Core | Features | Integ | Polish | ``` --- ## Metricas de Exito por Fase ### Fase 1 - MVP Core - [ ] Registro de ventas funcional - [ ] 3 metodos de pago (efectivo, Stripe, MP) - [ ] Corte de caja diario - [ ] UI web basica ### Fase 2 - Inteligencia - [ ] Onboarding < 10 minutos - [ ] 500+ productos en templates - [ ] Sistema de fiados completo - [ ] Alertas de stock automaticas ### Fase 3 - Asistente IA - [ ] Respuesta LLM < 3 segundos - [ ] 10+ tools MCP funcionales - [ ] Deteccion de rol 95%+ precision - [ ] Costo < $0.01 por interaccion ### Fase 4 - Pedidos - [ ] Flujo pedido->cobro < 2 minutos - [ ] Push notifications funcionando - [ ] 0 pedidos perdidos ### Fase 5 - Monetizacion - [ ] Suscripciones activas - [ ] Tokens comprables - [ ] Retencion > 80% mes 2 --- ## Riesgos y Mitigaciones | Riesgo | Probabilidad | Impacto | Mitigacion | |--------|--------------|---------|------------| | Bloqueo WhatsApp API | Media | Alto | Usar API oficial, seguir guidelines | | Costos LLM elevados | Media | Medio | OpenRouter, modelos economicos, cache | | Integracion terminal compleja | Media | Medio | Priorizar una terminal primero | | Adopcion usuario mayor | Alta | Alto | UX extremadamente simple, WhatsApp-first | | Competencia | Media | Medio | Diferenciacion por IA y simplicidad | --- ## Equipo Sugerido | Rol | Cantidad | Enfoque | |-----|----------|---------| | Backend Developer | 2 | NestJS, integraciones, MCP | | Frontend Developer | 1 | React web + React Native | | DevOps | 0.5 | CI/CD, infraestructura | | Product/PM | 0.5 | Prioridades, testing | **Total:** 4 FTEs --- **Version:** 1.0.0 **Fecha:** 2026-01-04