📑 Especificación de Requerimientos e Historias de Usuario - MercariX POS

ESPECIFICACIÓN DE REQUERIMIENTOS Y HISTORIAS DE USUARIO (SRS)

Sistema POS, Inventario, Fiados, Arqueo de Caja & Notificaciones WhatsApp
Requerimientos Funcionales Requerimientos No Funcionales Historias de Usuario (Agile) Criterios de Aceptación
Proyecto: MercariX POS & Control de Inventario
Metodología de Desarrollo: Scrum / Desarrollo Ágil de Software
Versión de Documento: 1.0.0 Pro
Fecha de Emisión: Agosto 2026
Estado: Aprobado y Verificado en Producción
Documentación oficial de ingeniería de requisitos y casos de uso del sistema.

1. Tabla de Contenido

  1. Tabla de Contenido
  2. Introducción y Alcance del Sistema
  3. Matriz de Requerimientos Funcionales (RF)
  4. Matriz de Requerimientos No Funcionales (RNF)
  5. Historias de Usuario (Agile User Stories & Criterios de Aceptación)
  6. Matriz de Trazabilidad Requerimientos vs. Historias de Usuario

2. Introducción y Alcance del Sistema

El presente documento especifica los requerimientos funcionales, requerimientos no funcionales y el backlog de historias de usuario con sus respectivos criterios de aceptación para el sistema de ventas e inventario MercariX POS.

3. Matriz de Requerimientos Funcionales (RF)

Código Nombre del Requerimiento Descripción Funcional Prioridad
RF-01 Autenticación y Roles El sistema debe autenticar usuarios (email/password) y restringir vistas según el rol (Administrador o Auxiliar de Caja). Alta
RF-02 Apertura de Caja El sistema debe exigir registrar un monto base inicial en efectivo antes de permitir procesar cualquier venta. Alta
RF-03 Lector de Código de Barras La terminal POS debe capturar códigos de barras en un campo con autofocus y agregar ítems al carrito instantáneamente. Alta
RF-04 Multi-Método de Pago Permitir cobros en Efectivo (con devuelta), Nequi 📲 (con # de referencia) y FIAR (Crédito). Alta
RF-05 Categorización de Inventario Clasificar productos en categorías: Comestibles, Pastas, Accesorios, Belleza, Aseo, Fotografía, Papelería, Electrónica. Media
RF-06 Autogeneración de Barcodes Generar código EAN/Code128 único de 12 dígitos (770...) y permitir visualizar/imprimir la etiqueta de código de barras. Alta
RF-07 Control de Cupo de Fiados Validar que las ventas a crédito no superen el cupo de endeudamiento configurado para el cliente. Alta
RF-08 Abonos y Alerta "Al Día" Permitir abonar a la deuda de un cliente. Si el saldo restante llega a $0 COP, desplegar el modal "¡El usuario está al día!". Alta
RF-09 Cierre y Arqueo de Caja Calcular el efectivo esperado, comparar con el contado en cajón, determinar diferencia/faltante e imprimir comprobante. Alta
RF-10 WhatsApp Notificaciones (Día 30) Generar mensajes de cobro personalizados vía WhatsApp e integrar un Cron Job para el día 30 de cada mes. Media
RF-11 Dashboard de Ganancias Netas Calcular utilidad neta real como (Precio Venta - Precio Costo) * Cantidad y alertar productos en stock crítico. Alta
RF-12 Comprobante de Venta Impreso Generar e imprimir el recibo de venta detallando ítems, método de pago y referencia Nequi si aplica. Alta

4. Matriz de Requerimientos No Funcionales (RNF)

Código Atributo Descripción Técnica del Requerimiento
RNF-01 Rendimiento Las respuestas de las APIs REST en PHP no deben superar los 200ms de latencia en peticiones locales.
RNF-02 Seguridad Las contraseñas de usuario deben encriptarse mediante algoritmos de hash seguros (Bcrypt / PASSWORD_DEFAULT).
RNF-03 Usabilidad La interfaz debe utilizar diseño oscuro moderno (Dark Mode), tipografía limpia y contraste accesible.
RNF-04 Disponibilidad El sistema debe funcionar de manera autónoma en servidor local WampServer sin dependencia obligatoria de internet externa.
RNF-05 Compatibilidad Garantizar renderizado correcto en navegadores modernos: Google Chrome, Microsoft Edge, Mozilla Firefox y Brave.
RNF-06 Impresión PDF Los módulos de recibos, arqueos de caja y manuales deben contar con reglas CSS @media print para salida limpia a PDF.

5. Historias de Usuario (Agile Backlog & Criterios de Aceptación)

HU-01: Apertura y Control de Turno de Caja Prioridad Alta

Como cajero o administrador del negocio,
Quiero registrar el monto inicial en efectivo al iniciar mi turno de trabajo,
Para que el sistema controle el dinero recaudado y me permita procesar ventas de forma segura.

Criterios de Aceptación (Given / When / Then):
- Dado que la caja se encuentra cerrada, cuando intento agregar productos en la terminal POS, entonces el sistema muestra un bloqueo requiriendo la Apertura de Caja.
- Dado que abro caja con $100.000 COP, cuando confirmo el formulario, entonces la barra superior cambia a estado verde 🔓 Caja Abierta ($100.000).
HU-02: Escaneo Rápido de Código de Barras en POS Prioridad Alta

Como cajero de MercariX POS,
Quiero escanear códigos de barras con la pistola lectora,
Para que los productos se agreguen automáticamente al carrito sin buscarlos manualmente.

Criterios de Aceptación:
- Dado que el cursor está en el buscador POS, cuando escaneo el código 770123456789, entonces el producto se agrega al carrito y el campo se limpia para la siguiente lectura.
HU-03: Cobro de Venta por Nequi 📲 Prioridad Alta

Como cliente o cajero,
Quiero seleccionar Nequi como método de pago e ingresar el número de comprobante,
Para que la venta quede registrada como dinero electrónico y no genere descuadres en el efectivo físico.

Criterios de Aceptación:
- Dado que tengo un total a cobrar de $24.000 COP, cuando presiono el botón 📲 Nequi e ingreso la referencia M12345678, entonces la factura se procesa con éxito y el recibo impreso detalla "Ref. Nequi: M12345678".
HU-04: Venta a Crédito (FIAR) con Control de Cupo Prioridad Alta

Como cliente frecuente de MercariX POS,
Quiero llevar mercancía fiada a mi cuenta registrada,
Para que pueda pagarla o abonarla posteriormente según mi cupo aprobado.

Criterios de Aceptación:
- Dado que no he seleccionado cliente en el carrito, cuando presiono FIAR, entonces el sistema exige seleccionar cliente.
- Dado que la compra supera el cupo de crédito disponible del cliente, cuando intento procesar la venta, entonces la API rechaza la transacción indicando el exceso de cupo.
HU-05: Autogeneración de Código de Barras en Inventario Prioridad Alta

Como administrador de inventario,
Quiero autogenerar un código de barras único para un nuevo producto,
Para que el producto tenga su etiqueta EAN/Code128 lista para imprimir y etiquetar.

Criterios de Aceptación:
- Dado que estoy creando un producto, cuando presiono ⚡ Autogenerar, entonces se genera un código único de 12 dígitos iniciando por 770....
HU-06: Registro de Abonos y Celebración "Al Día" Prioridad Alta

Como cobrador de cartera,
Quiero registrar los abonos de los clientes fiados,
Para que su deuda se reduzca y el sistema me alerte cuando quede en cero.

Criterios de Aceptación:
- Dado que un cliente debe $45.000 COP, cuando me abona $45.000 COP, entonces la deuda queda en $0 COP y se dispara automáticamente la pantalla verde festiva "¡El usuario [Nombre] está al día!".
HU-07: Cierre y Auditoría de Arqueo de Caja Prioridad Alta

Como cajero al terminar mi turno,
Quiero realizar el arqueo de caja registrando el dinero contado,
Para que el sistema audite la concordancia entre las ventas realizadas y el dinero en cajón.

Criterios de Aceptación:
- Dado que el efectivo esperado es de $250.000 COP y cuento $250.000 COP en caja, cuando confirmo el cierre, entonces el reporte indica "ARQUEO PERFECTO (Sin diferencias)" y permite imprimir el informe.
HU-08: Notificaciones de WhatsApp Automáticas los Días 30 Prioridad Media

Como administrador del negocio,
Quiero enviar recordatorios automáticos de cobro por WhatsApp a los deudores los días 30 de cada mes,
Para que los clientes reciban su mensaje de corte mensual y realicen sus abonos a tiempo.

Criterios de Aceptación:
- Dado que un cliente tiene deuda activa, cuando se ejecuta la rutina del día 30 (o se presiona 📱 Enviar Mensaje), entonces se abre la API de WhatsApp con el mensaje personalizado formateado en su número telefónico.

6. Matriz de Trazabilidad (Requerimientos vs. Historias de Usuario)

Requerimiento Funcional Historia de Usuario Asociada Módulo de Código Implementado
RF-01 (Autenticación) HU-01 (Control de Turno) backend/api/auth.php, AuthContext.jsx
RF-02 (Apertura de Caja) HU-01 (Control de Turno) backend/api/cash_session.php, CashSessionModal.jsx
RF-03 (Lector Barcode) HU-02 (Escaneo Rápido) frontend/src/pages/PosTerminal.jsx
RF-04 (Multi-Método Pago) HU-03 (Nequi), HU-04 (Fiado) backend/api/sales.php, PosTerminal.jsx
RF-06 (Autogenerador Barcodes) HU-05 (Autogeneración Barcodes) backend/api/products.php, BarcodeVisualizer.jsx
RF-08 (Abonos & Alerta Al Día) HU-06 (Abonos & Celebración) backend/api/credit.php, UpToDateAlert.jsx
RF-09 (Cierre & Arqueo) HU-07 (Arqueo Auditoría) backend/api/cash_session.php, CashSessionModal.jsx
RF-10 (WhatsApp Día 30) HU-08 (Recordatorios WhatsApp) backend/api/whatsapp.php, CreditManager.jsx

Firma Analista de Requerimientos / Product Owner

Firma Cliente / Gerencia MercariX POS