- Backend NestJS con módulos de autenticación, inventario, créditos - Frontend React con dashboard y componentes UI - Base de datos PostgreSQL con migraciones - Tests E2E configurados - Configuración de Docker y deployment Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
401 lines
9.9 KiB
Markdown
401 lines
9.9 KiB
Markdown
# MiInventario - Requerimientos Funcionales
|
|
|
|
---
|
|
id: RF-MII-001
|
|
type: Requirements
|
|
status: Published
|
|
version: "1.0.0"
|
|
created_date: 2026-01-10
|
|
updated_date: 2026-01-10
|
|
simco_version: "4.0.0"
|
|
total_requirements: 52
|
|
implemented: 0
|
|
---
|
|
|
|
## Metadata
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **ID** | RF-MII-001 |
|
|
| **Tipo** | Requirements |
|
|
| **Total RF** | 52 |
|
|
| **Implementados** | 0 |
|
|
| **Version** | 1.0.0 |
|
|
|
|
---
|
|
|
|
## Indice de Requerimientos
|
|
|
|
| Seccion | RF | Descripcion | Epica |
|
|
|---------|-----|-------------|-------|
|
|
| 5.1 | FR-001 a FR-004 | Autenticacion y cuenta | MII-002 |
|
|
| 5.2 | FR-010 a FR-011 | Gestion de tiendas | MII-003 |
|
|
| 5.3 | FR-020 a FR-022 | Captura de video | MII-004 |
|
|
| 5.4 | FR-030 a FR-033 | Envio y procesamiento | MII-004, MII-005 |
|
|
| 5.5 | FR-040 a FR-043 | Reconocimiento IA | MII-005 |
|
|
| 5.6 | FR-050 a FR-052 | Reportes inventario | MII-006 |
|
|
| 5.7 | FR-060 a FR-063 | Retroalimentacion | MII-007 |
|
|
| 5.8 | FR-070 a FR-071 | Validacion aleatoria | MII-008 |
|
|
| 5.9 | FR-080 a FR-084 | Modelo de creditos | MII-009 |
|
|
| 5.10 | FR-090 a FR-092 | Paquetes recarga | MII-010 |
|
|
| 5.11 | FR-100 a FR-105 | Pagos | MII-011, MII-012, MII-013 |
|
|
| 5.12 | FR-110 a FR-116 | Referidos | MII-014 |
|
|
| 5.13 | FR-120 a FR-124 | Administracion | MII-015 |
|
|
|
|
---
|
|
|
|
## 5.1 Autenticacion y Cuenta
|
|
|
|
### FR-001: Registro
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-002
|
|
|
|
Alta con telefono o correo electronico, OTP recomendado para Mexico.
|
|
|
|
**Criterios de Aceptacion:**
|
|
```gherkin
|
|
DADO que soy un usuario nuevo
|
|
CUANDO ingreso mi telefono/email y verifico con OTP
|
|
ENTONCES mi cuenta se crea exitosamente
|
|
Y puedo acceder a la aplicacion
|
|
```
|
|
|
|
### FR-002: Inicio de Sesion
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-002
|
|
|
|
Persistencia segura con refresh tokens.
|
|
|
|
### FR-003: Perfil
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-002
|
|
|
|
Nombre, negocio, ubicacion opcional, giro.
|
|
|
|
### FR-004: Consentimientos
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-002
|
|
|
|
Terminos, privacidad y consentimiento explicito para usar material (video/fotos) con fines de mejora del modelo (opt-in/opt-out granular).
|
|
|
|
---
|
|
|
|
## 5.2 Gestion de Negocio/Tienda
|
|
|
|
### FR-010: Multi-Tiendas
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-003
|
|
|
|
Un usuario puede tener 1..N tiendas (multi-tenant ligero).
|
|
|
|
### FR-011: Usuarios por Tienda
|
|
**Prioridad:** P2 | **Estado:** Pendiente | **Epica:** MII-003
|
|
|
|
Opcional MVP: Dueno puede invitar operadores con roles (Owner/Operator).
|
|
|
|
---
|
|
|
|
## 5.3 Captura de Video y Guia UX
|
|
|
|
### FR-020: Captura Guiada
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-004
|
|
|
|
- Duracion sugerida 30-60s
|
|
- Indicaciones: distancia, iluminacion, movimiento lateral lento
|
|
- Validacion local: resolucion minima, estabilidad, luz
|
|
|
|
### FR-021: Preprocesado Movil
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-004
|
|
|
|
Compresion/bitrate, estabilizacion opcional, extraccion de keyframes.
|
|
|
|
### FR-022: Evidencia Adicional
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-004
|
|
|
|
Captura de foto close-up cuando el sistema marque duda.
|
|
|
|
---
|
|
|
|
## 5.4 Envio y Procesamiento
|
|
|
|
### FR-030: Carga de Video
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-004
|
|
|
|
Upload resiliente (reintentos, resume).
|
|
|
|
### FR-031: Job Asincrono
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-005
|
|
|
|
Analisis como tarea con estados: PENDING / PROCESSING / DONE / FAILED.
|
|
|
|
### FR-032: Notificacion
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-005
|
|
|
|
Push o polling para "resultado listo".
|
|
|
|
### FR-033: Almacenamiento
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-005
|
|
|
|
Guardar video y artefactos por ventana configurable (7-30 dias) y borrado automatico.
|
|
|
|
---
|
|
|
|
## 5.5 Reconocimiento y Conteo (IA)
|
|
|
|
### FR-040: Deteccion
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-005
|
|
|
|
Detectar instancias por frame con bounding boxes/segmentacion.
|
|
|
|
### FR-041: Identificacion SKU
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-005
|
|
|
|
- Opcion A: detector multiclase (YOLO/derivados)
|
|
- Opcion B: pipeline 2 etapas (deteccion + embeddings)
|
|
|
|
### FR-042: Consolidacion Multi-frame
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-005
|
|
|
|
Evitar doble conteo con tracking/matching espacial-temporal.
|
|
|
|
### FR-043: Umbrales de Confianza
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-005
|
|
|
|
- Si conf < threshold: marcar como "Duda"
|
|
- Si no hay match: "Desconocido"
|
|
|
|
---
|
|
|
|
## 5.6 Reporte de Inventario
|
|
|
|
### FR-050: Resultado por Sesion
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-006
|
|
|
|
Lista por SKU: nombre, presentacion, cantidad, confianza, evidencias.
|
|
|
|
### FR-051: Exportacion
|
|
**Prioridad:** P2 | **Estado:** Pendiente | **Epica:** MII-006
|
|
|
|
PDF/CSV y/o compartir via WhatsApp.
|
|
|
|
### FR-052: Historial
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-006
|
|
|
|
Navegar sesiones por fecha, tienda, totales y variaciones.
|
|
|
|
---
|
|
|
|
## 5.7 Retroalimentacion
|
|
|
|
### FR-060: Correccion de SKU
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-007
|
|
|
|
Usuario puede cambiar producto identificado.
|
|
|
|
### FR-061: Correccion de Cantidad
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-007
|
|
|
|
Ajuste manual del conteo.
|
|
|
|
### FR-062: Etiquetado de Desconocidos
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-007
|
|
|
|
Subir foto close-up, seleccionar marca/presentacion.
|
|
|
|
### FR-063: Registro de Ground Truth
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-007
|
|
|
|
Toda correccion guardada como evento trazable.
|
|
|
|
---
|
|
|
|
## 5.8 Validacion Aleatoria
|
|
|
|
### FR-070: Micro-auditorias
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-008
|
|
|
|
En X% de sesiones, solicitar confirmacion de 1-3 items.
|
|
|
|
### FR-071: Reglas de Activacion
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-008
|
|
|
|
Mayor frecuencia cuando: baja calidad, baja confianza, usuario nuevo.
|
|
|
|
---
|
|
|
|
## 5.9 Modelo de Creditos/Tokens
|
|
|
|
### FR-080: Cartera de Creditos
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-009
|
|
|
|
Saldo por usuario/tienda.
|
|
|
|
### FR-081: Consumo
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-009
|
|
|
|
Cada sesion consume creditos segun regla configurable.
|
|
|
|
### FR-082: Motor de Costos (COGS IA)
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-009
|
|
|
|
Registrar por sesion: proveedor, frames, costo.
|
|
|
|
### FR-083: Regla de Precio
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-009
|
|
|
|
Precio usuario = 2 x COGS IA.
|
|
|
|
### FR-084: Transparencia
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-009
|
|
|
|
Mostrar creditos consumidos y equivalencia en MXN.
|
|
|
|
---
|
|
|
|
## 5.10 Paquetes de Recarga
|
|
|
|
### FR-090: Paquetes Predefinidos
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-010
|
|
|
|
MXN $50 / $100 / $200 / $500.
|
|
|
|
### FR-091: Equivalencia Dinamica
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-010
|
|
|
|
Calculada por motor de costos.
|
|
|
|
### FR-092: Promociones
|
|
**Prioridad:** P2 | **Estado:** Pendiente | **Epica:** MII-010
|
|
|
|
Bonos temporales (+10% creditos).
|
|
|
|
---
|
|
|
|
## 5.11 Pagos
|
|
|
|
### FR-100: Tarjeta con Stripe
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-011
|
|
|
|
Pago inmediato, PCI delegado.
|
|
|
|
### FR-101: Efectivo en OXXO
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-012
|
|
|
|
Generacion de voucher, confirmacion asincrona.
|
|
|
|
### FR-102: Efectivo en 7-Eleven
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-013
|
|
|
|
Integracion con agregador.
|
|
|
|
### FR-103: Confirmacion de Pago
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-011/12/13
|
|
|
|
Webhooks para acreditar automaticamente.
|
|
|
|
### FR-104: Reconciliacion
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-011/12/13
|
|
|
|
Estados: CREATED / PENDING / PAID / EXPIRED / CANCELED.
|
|
|
|
### FR-105: Expiracion de Referencia
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-012/13
|
|
|
|
Configurable (24-72h).
|
|
|
|
---
|
|
|
|
## 5.12 Referidos Multinivel
|
|
|
|
### FR-110: Codigo de Referido
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-014
|
|
|
|
Cada usuario tiene codigo unico.
|
|
|
|
### FR-111: Registro Atribuido
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-014
|
|
|
|
Nuevo usuario con referido crea relacion.
|
|
|
|
### FR-112: Condicion de Recompensa
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-014
|
|
|
|
Referido realiza compra + primer inventario.
|
|
|
|
### FR-113: Recompensa Break-even
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-014
|
|
|
|
1 credito por referido activado.
|
|
|
|
### FR-114: Multinivel Configurable
|
|
**Prioridad:** P2 | **Estado:** Pendiente | **Epica:** MII-014
|
|
|
|
Parametros: niveles, porcentajes, limites.
|
|
|
|
### FR-115: Anti-fraude
|
|
**Prioridad:** P0 | **Estado:** Pendiente | **Epica:** MII-014
|
|
|
|
Deteccion duplicados, topes, holds.
|
|
|
|
### FR-116: Panel de Referidos
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-014
|
|
|
|
Ver invitaciones, referidos, creditos ganados.
|
|
|
|
---
|
|
|
|
## 5.13 Administracion SaaS
|
|
|
|
### FR-120: Configuracion de Costos
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-015
|
|
|
|
Gestionar proveedores IA y costos.
|
|
|
|
### FR-121: Gestion de Paquetes
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-015
|
|
|
|
Montos, bonos, equivalencias.
|
|
|
|
### FR-122: Gestion de Referidos
|
|
**Prioridad:** P2 | **Estado:** Pendiente | **Epica:** MII-015
|
|
|
|
Niveles, rewards, topes.
|
|
|
|
### FR-123: Revision de Productos
|
|
**Prioridad:** P2 | **Estado:** Pendiente | **Epica:** MII-015
|
|
|
|
Moderar altas de nuevos SKUs.
|
|
|
|
### FR-124: Metricas
|
|
**Prioridad:** P1 | **Estado:** Pendiente | **Epica:** MII-015
|
|
|
|
Consumo, COGS, margen, tasa de error.
|
|
|
|
---
|
|
|
|
## Resumen
|
|
|
|
| Categoria | Cantidad | Cubiertos |
|
|
|-----------|----------|-----------|
|
|
| Autenticacion | 4 | 100% |
|
|
| Tiendas | 2 | 100% |
|
|
| Video | 3 | 100% |
|
|
| Procesamiento | 4 | 100% |
|
|
| IA | 4 | 100% |
|
|
| Reportes | 3 | 100% |
|
|
| Retroalimentacion | 4 | 100% |
|
|
| Validacion | 2 | 100% |
|
|
| Creditos | 5 | 100% |
|
|
| Paquetes | 3 | 100% |
|
|
| Pagos | 6 | 100% |
|
|
| Referidos | 7 | 100% |
|
|
| Admin | 5 | 100% |
|
|
| **TOTAL** | **52** | **100%** |
|
|
|
|
---
|
|
|
|
## Referencias
|
|
|
|
- [Documento Original](./REQUERIMIENTOS-ORIGINALES.md)
|
|
- [Vision del Proyecto](./VISION-PROYECTO.md)
|
|
- [Epicas](../01-epicas/_MAP.md)
|
|
|
|
---
|
|
|
|
**Ultima Actualizacion:** 2026-01-10
|