Some checks failed
Build / Build Backend (push) Has been cancelled
Build / Build Mobile (TypeScript Check) (push) Has been cancelled
Lint / Lint Backend (push) Has been cancelled
Lint / Lint Mobile (push) Has been cancelled
Test / Backend E2E Tests (push) Has been cancelled
Test / Mobile Unit Tests (push) Has been cancelled
Build / Build Docker Image (push) Has been cancelled
- Add exports module with PDF/CSV/Excel generation - Add reports module for inventory analytics - Add POS integrations module - Add database migrations for exports, movements and integrations - Add GitHub Actions CI/CD workflow with Docker support - Add mobile export and reports screens with tests - Update epic documentation with traceability - Add deployment and security guides Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
286 lines
9.2 KiB
Markdown
286 lines
9.2 KiB
Markdown
# MII-007: Retroalimentacion
|
|
|
|
---
|
|
id: MII-007
|
|
type: Epic
|
|
status: Completado
|
|
priority: P1
|
|
phase: 2
|
|
story_points: 13
|
|
created_date: 2026-01-10
|
|
updated_date: 2026-01-13
|
|
simco_version: "4.0.0"
|
|
---
|
|
|
|
## Metadata
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **ID** | MII-007 |
|
|
| **Nombre** | Retroalimentacion |
|
|
| **Fase** | 2 - Retroalimentacion |
|
|
| **Prioridad** | P1 |
|
|
| **Story Points** | 13 |
|
|
| **Estado** | Completado |
|
|
|
|
---
|
|
|
|
## 1. Descripcion
|
|
|
|
Implementar el sistema de retroalimentacion que permite a los usuarios corregir errores de deteccion, etiquetar productos desconocidos, y contribuir a la mejora del modelo de IA.
|
|
|
|
### Objetivo
|
|
|
|
Permitir a los usuarios mejorar la precision del sistema corrigiendo errores y etiquetando productos, creando un ciclo de mejora continua.
|
|
|
|
---
|
|
|
|
## 2. Requerimientos Relacionados
|
|
|
|
| RF | Descripcion | Prioridad |
|
|
|----|-------------|-----------|
|
|
| FR-060 | Correccion de SKU (cambiar producto identificado) | P1 |
|
|
| FR-061 | Correccion de cantidad (ajuste manual) | P1 |
|
|
| FR-062 | Etiquetado de desconocidos (foto, marca, presentacion) | P1 |
|
|
| FR-063 | Registro de Ground Truth (correcciones trazables) | P0 |
|
|
|
|
---
|
|
|
|
## 3. Criterios de Aceptacion
|
|
|
|
### AC-001: Corregir SKU
|
|
```gherkin
|
|
DADO que veo un item mal identificado
|
|
CUANDO selecciono "Corregir"
|
|
ENTONCES puedo buscar el producto correcto
|
|
Y al seleccionarlo, se actualiza el item
|
|
Y la correccion queda registrada como ground truth
|
|
```
|
|
|
|
### AC-002: Corregir Cantidad
|
|
```gherkin
|
|
DADO que veo una cantidad incorrecta
|
|
CUANDO ajusto el numero manualmente
|
|
ENTONCES la cantidad se actualiza
|
|
Y el cambio queda registrado
|
|
Y se muestra la cantidad original vs corregida
|
|
```
|
|
|
|
### AC-003: Etiquetar Desconocido
|
|
```gherkin
|
|
DADO que hay un producto "Desconocido"
|
|
CUANDO selecciono "Etiquetar"
|
|
ENTONCES puedo:
|
|
- Tomar foto close-up
|
|
- Seleccionar marca de una lista
|
|
- Escribir presentacion
|
|
Y el producto se crea/asocia
|
|
Y contribuye al entrenamiento del modelo
|
|
```
|
|
|
|
### AC-004: Confirmar Item Correcto
|
|
```gherkin
|
|
DADO que veo un item con duda
|
|
CUANDO confirmo que es correcto
|
|
ENTONCES su status cambia a CONFIRMED
|
|
Y se registra como ground truth positivo
|
|
```
|
|
|
|
### AC-005: Trazabilidad
|
|
```gherkin
|
|
DADO que hice correcciones
|
|
CUANDO reviso el historial de un item
|
|
ENTONCES puedo ver:
|
|
- Valor original detectado
|
|
- Valor corregido
|
|
- Quien corrigio
|
|
- Cuando se corrigio
|
|
```
|
|
|
|
---
|
|
|
|
## 4. Tareas Tecnicas
|
|
|
|
| ID | Tarea | Estimacion | Estado |
|
|
|----|-------|------------|--------|
|
|
| T-001 | Crear modal de correccion de SKU | 2 SP | Completado |
|
|
| T-002 | Implementar busqueda de productos | 2 SP | Completado |
|
|
| T-003 | Crear input de correccion de cantidad | 1 SP | Completado |
|
|
| T-004 | Implementar flujo de etiquetado | 3 SP | Completado |
|
|
| T-005 | Crear formulario nuevo producto | 2 SP | Completado |
|
|
| T-006 | Implementar registro ground truth | 2 SP | Completado |
|
|
| T-007 | Crear endpoints de correcciones | 1 SP | Completado |
|
|
|
|
---
|
|
|
|
## 5. Modelo de Datos
|
|
|
|
### Tabla: corrections
|
|
```sql
|
|
CREATE TABLE corrections (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
item_id UUID REFERENCES inventory_items(id),
|
|
session_id UUID REFERENCES inventory_sessions(id),
|
|
user_id UUID REFERENCES users(id),
|
|
correction_type VARCHAR(20), -- 'SKU', 'QUANTITY', 'LABEL'
|
|
original_value JSONB,
|
|
corrected_value JSONB,
|
|
confidence_before DECIMAL(5,2),
|
|
evidence_url VARCHAR(500),
|
|
created_at TIMESTAMP DEFAULT NOW()
|
|
);
|
|
```
|
|
|
|
### Tabla: ground_truth
|
|
```sql
|
|
CREATE TABLE ground_truth (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
product_id UUID REFERENCES products(id),
|
|
image_url VARCHAR(500),
|
|
bounding_box JSONB,
|
|
source_type VARCHAR(20), -- 'CORRECTION', 'VALIDATION', 'UPLOAD'
|
|
source_id UUID,
|
|
user_id UUID REFERENCES users(id),
|
|
status VARCHAR(20) DEFAULT 'PENDING', -- 'PENDING', 'APPROVED', 'REJECTED'
|
|
reviewed_by UUID REFERENCES users(id),
|
|
reviewed_at TIMESTAMP,
|
|
created_at TIMESTAMP DEFAULT NOW()
|
|
);
|
|
```
|
|
|
|
### Tabla: product_submissions
|
|
```sql
|
|
CREATE TABLE product_submissions (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
submitted_by UUID REFERENCES users(id),
|
|
name VARCHAR(200),
|
|
brand VARCHAR(100),
|
|
category VARCHAR(100),
|
|
presentation VARCHAR(100),
|
|
image_url VARCHAR(500),
|
|
status VARCHAR(20) DEFAULT 'PENDING', -- 'PENDING', 'APPROVED', 'REJECTED', 'MERGED'
|
|
merged_to UUID REFERENCES products(id),
|
|
reviewed_by UUID REFERENCES users(id),
|
|
reviewed_at TIMESTAMP,
|
|
created_at TIMESTAMP DEFAULT NOW()
|
|
);
|
|
```
|
|
|
|
---
|
|
|
|
## 6. Endpoints API
|
|
|
|
| Metodo | Endpoint | Descripcion | Auth |
|
|
|--------|----------|-------------|------|
|
|
| PATCH | /inventory/items/:id/correct-sku | Corregir SKU | JWT |
|
|
| PATCH | /inventory/items/:id/correct-quantity | Corregir cantidad | JWT |
|
|
| POST | /inventory/items/:id/confirm | Confirmar correcto | JWT |
|
|
| POST | /products/submit | Enviar nuevo producto | JWT |
|
|
| GET | /products/search | Buscar productos | JWT |
|
|
| POST | /ground-truth | Registrar ground truth | JWT |
|
|
| GET | /inventory/items/:id/history | Historial correcciones | JWT |
|
|
|
|
---
|
|
|
|
## 7. Pantallas Mobile
|
|
|
|
| Pantalla | Componentes |
|
|
|----------|-------------|
|
|
| **CorrectSKUModal** | Buscador, lista resultados, confirmar |
|
|
| **CorrectQuantityModal** | Input numerico, original vs nuevo |
|
|
| **LabelProductScreen** | Camara, form producto, submit |
|
|
| **ProductSearchScreen** | Buscador, filtros, resultados |
|
|
| **ConfirmItemModal** | Vista item, boton confirmar |
|
|
|
|
---
|
|
|
|
## 8. Flujo de Etiquetado
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ FLUJO DE ETIQUETADO │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ │
|
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
│ │ Producto │──▶│ Tomar │──▶│ Llenar │──▶│ Enviar │ │
|
|
│ │Desconocido│ │ Foto │ │ Form │ │ Producto │ │
|
|
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ ┌──────────┐ │
|
|
│ │ Moderador│ │
|
|
│ │ Revisa │ │
|
|
│ └────┬─────┘ │
|
|
│ ┌───────────────┼───────────┐ │
|
|
│ ▼ ▼ ▼ │
|
|
│ ┌─────────┐ ┌─────────┐ ┌─────────┐│
|
|
│ │Aprobado │ │Rechazado│ │ Merged ││
|
|
│ │(nuevo) │ │ │ │(existia)││
|
|
│ └─────────┘ └─────────┘ └─────────┘│
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 9. Metricas de Mejora
|
|
|
|
| Metrica | Descripcion |
|
|
|---------|-------------|
|
|
| Correction Rate | % de items corregidos por sesion |
|
|
| Product Submissions | Nuevos productos enviados |
|
|
| Approval Rate | % de submissions aprobados |
|
|
| Model Improvement | Cambio en precision tras reentrenamiento |
|
|
|
|
---
|
|
|
|
## 10. Dependencias
|
|
|
|
### Entrada (Requiere)
|
|
- MII-005: Procesamiento IA
|
|
- MII-006: Reportes de Inventario
|
|
|
|
### Salida (Bloquea)
|
|
- Pipeline de reentrenamiento del modelo (futuro)
|
|
|
|
---
|
|
|
|
## 11. Incentivos (Opcional)
|
|
|
|
| Accion | Recompensa |
|
|
|--------|------------|
|
|
| Corregir 10 items | Badge "Contribuidor" |
|
|
| Producto aprobado | +0.1 creditos |
|
|
| 100 correcciones | Badge "Experto" |
|
|
|
|
---
|
|
|
|
## 12. Riesgos
|
|
|
|
| Riesgo | Probabilidad | Impacto | Mitigacion |
|
|
|--------|--------------|---------|------------|
|
|
| Correcciones falsas | Media | Alto | Moderacion, reputation |
|
|
| Spam de productos | Media | Medio | Rate limit, moderacion |
|
|
| Confusion UX | Media | Medio | Tutorial, tooltips |
|
|
|
|
---
|
|
|
|
## 13. Notas de Implementacion
|
|
|
|
- Guardar siempre el valor original antes de corregir
|
|
- Implementar busqueda fuzzy para productos
|
|
- Considerar autocompletado de marcas/categorias
|
|
- La foto de etiquetado debe tener buena resolucion
|
|
- Validar consentimiento para usar datos en entrenamiento
|
|
|
|
---
|
|
|
|
## 14. Referencias
|
|
|
|
- [REQUERIMIENTOS-FUNCIONALES.md](../00-vision-general/REQUERIMIENTOS-FUNCIONALES.md) - Seccion 5.7
|
|
- [ARQUITECTURA-TECNICA.md](../00-vision-general/ARQUITECTURA-TECNICA.md)
|
|
|
|
---
|
|
|
|
**Ultima Actualizacion:** 2026-01-10
|