Proyecto final de POO
Creador de inventario
Brayan Camilo Gutierrez Castañeda
Juan Fernando Castañeda Agudelo
Algoritmos y programación orientada a objetos
1. Descripción del problema:
Muchas pequeños negocios enfrentan dificultades para gestionar eficientemente su inventario. La
falta de una herramienta organizada y automatizada para registrar, monitorear y controlar los
productos puede llevar a errores como el exceso o la falta de existencias, dificultades en el rastreo
de productos y problemas al realizar auditorías. Sin un sistema adecuado, estas empresas también
pueden enfrentarse a la falta de registros históricos, lo que complica el análisis de ventas y el
control de productos.
Solución: Para abordar estos problemas, se ha desarrollado un sistema de inventario basado en
Python con una interfaz gráfica simple y accesible. Este sistema permite registrar productos,
realizar búsquedas, actualizar cantidades, y generar y almacenar códigos QR únicos para cada
producto, facilitando el acceso rápido a la información desde dispositivos móviles. Además,
permite exportar el inventario a un archivo CSV, lo que facilita su revisión y análisis en aplicaciones
externas como Excel. Esta solución integral está diseñada para simplificar el manejo de inventario,
aumentar la eficiencia y minimizar errores comunes, ofreciendo una herramienta fácil de usar para
empresas que buscan organizar y optimizar su gestión de productos.
2. Análisis del Problema
2.1. Definición de los Requisitos Funcionales
Requisitos funcionales:
Nombre Agregar producto
Resumen Permitir al usuario agregar un nuevo producto al inventario..
Entradas Nombre, descripción, categoría, cantidad.
Resultados Producto agregado al inventario y generación de un código QR.
Nombre R2- Buscar producto
Resumen Permitir al usuario buscar un producto existente en el inventario.
Entradas Nombre del producto.
Resultados Información del producto encontrado o mensaje de error.
Nombre R3-Actualizar cantidad
Resumen Permitir al usuario modificar la cantidad de un producto existente.
Entradas Nombre del producto, nueva cantidad.
Resultados Cantidad actualizada o mensaje de error si la cantidad es negativa.
Nombre
R4-Eliminar producto
Resumen Permitir al usuario eliminar un producto del inventario
Entradas Nombre del producto.
Resultados Producto eliminado o mensaje de error si no se encuentra.
Nombre R5-Exportar inventario
Resumen Generar un archivo CSV con la información de todos los productos.
Entradas Nombre del archivo CSV
Resultados Archivo CSV creado con los detalles del inventario.
Nombre R6-Mostrar información de producto
Resumen Permitir al usuario ver los detalles de un producto al seleccionarlo.
Entradas Nombre del producto seleccionado.
Resultados Ventana emergente con detalles del producto y su código QR.
Nombre: R7 - Validación de campos obligatorios al agregar productos
Resumen: Verificar que todos los campos obligatorios (nombre, descripción, categoría y
cantidad) contengan datos antes de agregar un producto al inventario.
Entradas: Nombre, descripción, categoría, cantidad.
Resultados: Mensaje de error si algún campo está vacío; en caso contrario, se agrega el
producto.
Nombre: R8 - Manejo de errores en la exportación a CSV
Resumen: Informar al usuario si ocurre algún problema al intentar exportar el inventario
a un archivo CSV, como falta de permisos o errores en la escritura del archivo.
Entradas: Nombre del archivo CSV.
Resultados: Archivo CSV creado si la exportación es exitosa, o mensaje de error si ocurre
algún problema durante la exportación
Nombre: R9 - Visualización de inventario en la interfaz gráfica
Resumen: Mostrar una lista de los productos existentes en la interfaz gráfica,
permitiendo su selección y visualización rápida.
Entradas: Productos del inventario.
Resultados: Lista actualizada de productos en la interfaz gráfica; cada producto aparece
en la lista de productos con su nombre.
Descomposición
Agregar producto:
Validar los campos de entrada.
Llamar a la función para generar el código QR.
Agregar el producto a la lista de productos.
Buscar producto:
Iterar a través de la lista de productos.
Comparar el nombre del producto buscado con los nombres de los productos en el
inventario.
Devolver el producto si se encuentra, o un mensaje de error si no.
Actualizar cantidad:
Buscar el producto por nombre.
Validar la cantidad a actualizar.
Modificar la cantidad del producto.
Eliminar producto:
Buscar el producto por nombre.
Eliminar el producto de la lista si existe.
Mostrar un mensaje de error si no se encuentra.
Exportar a CSV:
Abrir un archivo CSV para escritura.
Escribir encabezados en el archivo.
Iterar sobre la lista de productos y escribir sus detalles en el archivo.
Mostrar información:
Obtener el producto seleccionado.
Mostrar una ventana emergente con los detalles del producto.
Cargar y mostrar la imagen del código QR en la ventana emergente
Modelo del mundo del problema
Modelo de la interfaz
Repositorio github