ESPECIFICACIONES DEL PROGRAMA - migueltovarb/ISWElectiva110202-7 GitHub Wiki

REQUISITOS FUNCIONALES

REQUISITO NOMBRE
RF001 REGISTRO DE PRODUCTOS: El sistema debe permitir registrar productos ingresando los campos: nombre, código único, categoría, cantidad y precio.
RF002 VALIDACIÓN DE CÓDIGO ÚNICO: El sistema debe validar que el código único no se repita, mostrando un mensaje de error si ya existe y una confirmación.
RF003 MENÚ DESPLEGABLE DE CATEGORÍA: El sistema debe presentar el campo "Categoría" como un menú desplegable con opciones predefinidas (ej.: "Materias Primas", "Productos Terminados", "Herramientas y Equipos", "Consumibles", "Repuestos", "Productos Perecederos", "Productos No Perecederos").
RF004 REGISTRO AUTOMATICO DE FECHA Y USUARIO: Al registrar un producto, el sistema debe asignar automáticamente la fecha y el usuario que realiza el registro.
RF005 ACTUALIZACIÓN DE STOCK: El sistema debe permitir modificar el stock de un producto (aumentar o disminuir la cantidad) y registrar la fecha y el usuario de la modificación.
RF006 GENERACIÓN DE ALERTAS POR STOCK BAJO: El sistema debe generar notificaciones cuando el stock de un producto caiga por debajo de un umbral mínimo configurable, mostrando alertas en la interfaz y enviando correos electrónicos.
RF007 REGISTRO DE USUARIOS: El sistema debe permitir a los usuarios potenciales registrarse ingresando datos obligatorios (nombre, correo electrónico y contraseña) y validando la unicidad del correo.
RF008 VISUALIZACIÓN DE MOVIMIENTOS: El sistema debe permitir consultar los movimientos de inventario (entradas y salidas) filtrando por fecha, producto y tipo de operación, y mostrar detalles como cantidad, fecha y usuario responsable.
RF009 BUSQUEDA Y FILTRADO DE PRODUCTOS: El sistema debe permitir buscar productos por nombre, código o categoría, mostrando resultados en tiempo real sin recargar la página y permitiendo filtrar por criterios adicionales.
RF010 GENERACIÓN DE REPORTES DE INVENTARIO: El sistema debe generar reportes de productos en formatos PDF y Excel, incluyendo datos como nombre, cantidad, categoría y precio, y permitir filtrarlos por fecha, categoría y nivel de stock.
RF011 REGISTRO DE DEVOLUCIONES DE PRODUCTOS: El sistema debe registrar devoluciones de productos ingresando producto, cantidad y motivo, indicando si el producto se reincorpora al stock o se descarta, y generando un historial de devoluciones con fecha y usuario responsable.
RF012 CONTROL DE ACCESO POR ROLES: El sistema debe permitir asignar roles (por ejemplo, "Administrador" y "Empleado") y restringir las acciones según el rol asignado, registrando un log de acciones críticas.
RF013 GESTION DE USUARIOS Y PERMISOS: El sistema debe permitir la creación, edición y eliminación de usuarios, así como la asignación y modificación de roles, garantizando que solo usuarios autorizados puedan gestionar estas operaciones.
RF014 EDICIÓN DE PRODUCTOS: El sistema debe permitir editar productos existentes (modificar nombre, código, categoría, cantidad, precio, imagen), validando la no duplicación de código y mostrando un mensaje de confirmación tras la actualización mediante un botón "Actualizar Producto".
RF015 ELIMINACIÓN DE PRODUCTOS: El sistema debe permitir la eliminación de productos, solicitando confirmación antes de proceder, bloqueando la eliminación si existen transacciones asociadas, y ofreciendo una opción de "deshacer" durante un tiempo limitado.
RF016 GESTION DE TRANSFERENCIAS DE INVENTARIO: El sistema debe permitir registrar transferencias de productos entre almacenes, generando un historial con detalles (fecha, hora, producto, cantidad, almacén de origen y destino, usuario), validando que la cantidad transferida no exceda el stock disponible, y permitiendo la edición o cancelación de transferencias en caso de error.
RF017 GENERACIÓN DE ORDENES DE COMPRAS AUTOMATICAS: El sistema debe generar automáticamente órdenes de compra cuando el stock de un producto alcance un nivel mínimo, permitiendo revisar y ajustar la orden antes de su envío, y registrando la acción en un historial.

REQUISITOS NO FUNCIONALES

REQUISITO NOMBRE
RNF001 RENDIMIENTO EN BÚSQUEDA: La búsqueda de productos y la generación de reportes deben completarse en menos de 2 segundos en condiciones normales de operación. Esto garantiza una respuesta ágil al usuario y eficiencia en las operaciones diarias.
RNF002 DISPONIBILIDAD: El sistema debe estar operativo al menos el 99.5% del tiempo, incluso en horarios de alta demanda. Esto asegura la continuidad de las actividades de inventario y evita retrasos en la operación.
RNF003 SEGURIDAD Y AUTENTICACIÓN: Se implementará un sistema seguro de autenticación (p. ej., sesiones cifradas) para proteger el acceso a datos sensibles. La plataforma debe protegerse contra inyección SQL y uso indebido de sesiones, manteniendo la integridad de la información.
RNF004 USABILIDAD: La interfaz debe ser lo suficientemente intuitiva para que un usuario sin conocimientos técnicos realice tareas básicas (registro de productos, actualización de stock, etc.) en menos de 3 minutos. Mensajes de error claros y retroalimentación inmediata ayudan a reducir la curva de aprendizaje.
RNF005 MANTENIBILIDAD Y ESCALABILIDAD: El diseño y la arquitectura deben permitir actualizaciones y nuevas funcionalidades con interrupciones mínimas. La plataforma debe poder manejar un incremento del 30% en el número de productos y transacciones sin un rediseño mayor ni pérdida significativa de rendimiento.
                                                         |                           |