El inventario perdido

En este post se describe las características que debe de tener la solución de El inventario perdido que se describe aquí. Lo siguiente te brindará una idea más clara de como obtener un resultado óptimo
Objetivo del ejercicio
Desarrollar una interfaz gráfica que permita a Don Artemio gestionar su inventario de herramientas, usando arreglos (o listas) para almacenar los datos y operaciones básicas para consultar y modificar la información.
Requisitos técnicos
Diseño de interfaz
- Debe permitir registrar nuevas herramientas (nombre, categoría, cantidad).
- Debe mostrar una tabla/listado del inventario actual.
- Incluir campo de búsqueda por nombre o por categoría.
- Incluir botones para actualizar cantidades y mostrar resúmenes.
Manejo de datos
- Usar arreglos de objetos o estructuras para almacenar cada herramienta.
- Implementar funciones para buscar, filtrar, agregar y actualizar datos.
Extras opcionales (para alumnos avanzados)
- Validar que no se repitan nombres al agregar nuevas herramientas.
- Mostrar alertas si la cantidad llega a 0 (herramienta agotada).
- Guardar y cargar el inventario desde un archivo local o memoria temporal.
Recomendaciones para la solución
Cada herramienta debe contener
- Nombre (único)
- Categoría (por ejemplo: manual, eléctrica, seguridad)
- Cantidad en existencia (entero positivo)
Visualizar el inventario completo
- Mostrar todos los registros en una tabla o lista.
- Posibilidad de ordenar por nombre o por categoría.
Buscar herramientas
- Permitir buscar por nombre exacto o por categoría (filtro dinámico).
Actualizar cantidad
- Seleccionar una herramienta y modificar su cantidad (agregar o restar, sin permitir negativos).
Generar resumen del inventario
- Mostrar el número total de herramientas registradas.
- Mostrar cuántas herramientas hay por cada categoría.
- Alertar si alguna herramienta tiene cantidad = 0 (producto agotado).
La solución debe preferentemente:
- Hacer uso de arreglos o listas de objetos es obligatorio para la gestión de datos.
- Debe diseñarse una interfaz gráfica interactiva (puede ser web con HTML/CSS/JS, o app con Python + Tkinter, etc.).
- Toda interacción debe ser mediante la interfaz; no se permiten entradas por consola.
- El código debe estar bien estructurado, comentado y permitir fácil mantenimiento.
Criterios a evaluar
| Criterio | Puntos |
|---|---|
| Funcionalidad completa | 40 |
| Claridad y usabilidad de la interfaz | 20 |
| Lógica en el manejo de arreglos | 15 |
| Eficiencia en búsquedas y actualizaciones | 10 |
| Diseño visual atractivo y accesible | 10 |
| Comentarios y buenas prácticas | 5 |
Extra (bono creativo)
- Opción para exportar el inventario como archivo
.jsono.csv. - Interfaz responsiva o accesible desde móvil/tableta.
- Animaciones o alertas visuales al realizar acciones.
Esperando que puedas divertirte con la solución de este ejercicio.