Desarrollo de un Sistema de Gestión de Inventarios en Python
Este laboratorio tiene como objetivo guiarte en el desarrollo de un sistema de gestión de inventarios utilizando el lenguaje de programación Python. A través de esta actividad, aprenderás a implementar funcionalidades clave en un proyecto práctico que puedes utilizar como base para futuros desarrollos.
Objetivos
Diseño de la estructura de datos: Aprenderás a diseñar y crear una estructura de datos para almacenar la información de los productos, incluyendo atributos como nombre, descripción, precio, y cantidad disponible.
Agregar productos: Implementarás la funcionalidad para agregar nuevos productos al inventario.
Búsqueda y filtrado: Aprenderás a implementar funciones de búsqueda y filtrado para encontrar productos específicos basados en diferentes criterios.
Actualización de inventario: Desarrollarás funciones para manejar la compra y venta de productos, permitiendo ajustar la cantidad disponible en el inventario.
Generación de informes: Crearás funciones para generar informes sobre el estado del inventario, tales como productos disponibles, productos más vendidos, y productos con bajo stock.
Entregables
- Código fuente del proyecto: Estructurado y organizado de manera coherente.
- Documentación del proyecto: Incluyendo instrucciones de instalación, uso, y una breve explicación del diseño de la solución (Esto se sugiere generar en el Readme.md del proyecto).
- Pruebas unitarias: Implementación de pruebas para verificar que las funcionalidades clave del sistema funcionan correctamente.
Instrucciones
1. Crear la Estructura de Datos
Diseña una clase Producto que contenga los atributos básicos como nombre, descripción, precio, y cantidad disponible. Implementa un método str para imprimir la información del producto de manera legible.
Solución
class Producto:
def __init__(self, nombre, descripcion, precio, cantidad):
self.nombre = nombre
self.descripcion = descripcion
self.precio = precio
self.cantidad = cantidad
def __str__(self):
return f"Producto: {self.nombre}, Precio: {self.precio}, Cantidad: {self.cantidad}"
2. Agregar Productos
Implementa una función que permita agregar nuevos productos a una lista que actúe como el inventario.
Solución
= []
inventario
def agregar_producto(producto):
inventario.append(producto)print(f"{producto.nombre} ha sido añadido al inventario.")
3. Búsqueda y Filtrado
Crea funciones para buscar productos por nombre, categoría o rango de precios.
Solución
def buscar_producto_por_nombre(nombre):
return [p for p in inventario if nombre.lower() in p.nombre.lower()]
def buscar_producto_por_precio(min_precio, max_precio):
return [p for p in inventario if min_precio <= p.precio <= max_precio]
4. Actualización de Inventario
Implementa funciones para aumentar o disminuir la cantidad de productos en el inventario, simulando la compra o venta de productos.
Solución
def actualizar_cantidad(nombre, cantidad):
for producto in inventario:
if producto.nombre == nombre:
+= cantidad
producto.cantidad print(f"Cantidad actualizada: {producto.nombre} ahora tiene {producto.cantidad} unidades.")
return
print("Producto no encontrado.")
5. Generación de Informes
Crea funciones para generar informes del estado del inventario.
Solución
def generar_informe_productos_disponibles():
return [p for p in inventario if p.cantidad > 0]
def generar_informe_productos_bajo_stock(limite):
return [p for p in inventario if p.cantidad <= limite]
6. Pruebas Unitarias
Escribe pruebas para cada una de las funciones clave utilizando unittest.
Solución
import unittest
class TestInventario(unittest.TestCase):
def test_agregar_producto(self):
= Producto("Test", "Descripcion", 10.0, 5)
producto
agregar_producto(producto)self.assertIn(producto, inventario)
7. Documentación y GitHub Classroom
Documenta el código fuente, incluyendo instrucciones sobre cómo ejecutar el programa y las pruebas.
Configura tu repositorio de GitHub Classroom y sube todo el código y documentación.
Evaluación
Funcionalidad (40%): El sistema implementa correctamente las funcionalidades solicitadas.
Calidad del Código (30%): El código es claro, bien estructurado, y sigue buenas prácticas de programación.
Pruebas (20%): Las pruebas cubren las funcionalidades clave y se ejecutan correctamente.
Documentación (10%): La documentación es clara y proporciona una guía adecuada para el usuario.
¡Buena suerte!
Asignación
https://classroom.github.com/a/OVCpAmrV
Aprenderás a desarrollar un proyecto de utilizando el lenguaje de programación Python.
Un sistema de gestión de inventarios es una herramienta que permite realizar un seguimiento y control de los productos o artículos almacenados en un negocio o empresa.
Aprenderás a utilizar diferentes conceptos y técnicas de programación para implementar las funcionalidades clave de este sistema.
Algunas de las funcionalidades que implementaremos incluyen:
Aprenderás a crear una estructura de datos para almacenar la información de los productos, como su nombre, descripción, precio, cantidad disponible, etc. También aprenderás a agregar nuevos productos al sistema.
Te enseñaré cómo implementar funciones de búsqueda y filtrado para encontrar productos específicos en base a diferentes criterios, como el nombre, la categoría o el precio.
Aprenderás a manejar las actualizaciones de inventario, como la compra o venta de productos. Implementaremos funciones que permitan aumentar o disminuir la cantidad disponible de un producto y mantener un registro de estas transacciones.
Te mostraré cómo generar informes sobre el estado del inventario, como la lista de productos disponibles, los productos más vendidos, los productos con bajo stock, etc. Utilizaremos técnicas de manipulación de datos y generación de informes para presentar esta información de manera clara y concisa. :::