ELO 329 Programación Orientada a Objetos
"Programa de Inventario de Productos"

Danilo Avila C.
Felipe Cordero V.
Miguel Torres M.
Luis Vidal F.




Descripción del problema

En cualquier empresa que se maneje una gran cantidad de productos es fundamental tener un control sobre el inventario existente, para esta tarea es que resulta bastante útil la creacion de softwares para realizar el control de inventario.
En este proyecto mediante uso del lenguaje de programación Java se creó una aplicación de inventario con interfaz gráfica la que permite de manera fácil buscar, actualizar y crear reportes sobre el inventario de una empresa.




Análisis del problema

Los requisitos básicos serían los siguientes:

-Almacenar el nombre del producto, la cantidad, el precio, un ID numérico y la categoría. -Buscar productos por precio, ID o nombre. -Actualizar la base de datos cuando un producto se ha acabado o es eliminado del sistema

Casos de uso

Caso 1: Usuario agrega productos
Actores (Usuario) Sistema (Software)
Usuario inicia programa
Software inicia por defecto programa en pestaña para agregar Stock
Usuario llena los campos pero por equivocación no escribe entero en valor de venta
Software verifica que todos los campos tengan datos y que estos sean validos, como se ingreso un dato no valido a Stock programa avisa a usuario de su error por medio de un cuadro de diálogo
Usuario corrige los datos y nuevamente da click en aceptar
Software verifica que los campos tengan datos y que sean validos, se agregan datos de inventario a ventana de stock y de venta, en caso de que se este agregando un producto que ya se encuentra en inventario software simplemente aumenta stock del producto en vez de agregar uno nuevo
Usuario hace click en generar reporte
Software copia todos los productos de la pestaña stock a un archivo csv (output.csv)

Caso 2: Usuario vende productos
Actores (Usuario) Sistema (Software)
Usuario hace click en pestaña Venta
Software cambia de ventana mostrando una lista con todos los prodcutos y su stock disponible
Usuario ingresa cantidad a vender de los productos deseados y da click en Vender.
Software actualiza el inventario descontando productos vendidos, en caso de que por error el usuario haya cambiado un nombre de un producto en la pestaña venta, el software lo corrige con el nombre que este tiene en la pestaña Stock

Caso 3: Usuario genera reporte
Actores (Usuario) Sistema (Software)
Usuario hace click en pestaña Reporte
Software cambia a la ventana de reporte la cual tiene el boton Generar
Usuario da click en generar.
Software copia todo lo de stock a un archivo output.csv de la siguiente forma: "Nombre,ID,Stock,Valor de Venta"




Diagramas de clase

A continuación esta el diagrama con las clases ocupadas, se uso un modelo bastante simple donde la clase ProyectoFinal se comunica con CSVUtils para escribir en un documento .cvs y se uso la clase llamada de java defaultTableModel para generar la tabla de stock

Pantalla inicial




Pruebas

Al ejecutar el programa se abre la siguiente ventana, se llenan los campos respectivos y se da click en aceptar

Pantalla inicial

Una vez que se da click en aceptar el producto se agrega en las pestañas de venta y Stock

Pantalla inicial

Si se siguen agregando productos puede eventualmente hacerse un reporte desde la pestaña Reporte, al hacer click en generar reporte se crea el archivo output.csv y se guardan los datos

Pantalla inicial

Desde la pestaña de ventas se puede seleccionar unidades a vender y al dar click en vender el stock vendido se descuenta de la pestaña Ventas y Stock

Pantalla inicial
Pantalla inicial




Errores y mejoras no abordadas

-Avisar al usuario cuando se ingreso un producto al stock de forma corrrecta

-Ingresar una barra de buscador en la pestaña de stock y ventas

-Una mejora posible es que el reporte se genere de forma automatica cada cierto tiempo

-Guardar la cantidad de plata vendida por producto




Compatibilidad

El programa fue desarrollado simplemente en un editor de texto y compilado mediante la terminal de linux, se tiene un archivo make por lo que para compilar y correr se deben usar los comando $make$ y $make run$. El programa puede ser descargado desde aquí