El Problema que Todos Entienden
Con la creciente ola de creación de negocios una de los modelos de negocios que más progresado son los desarrollos de soluciones informáticas para gestionar el inventario de esos negocios. Con está premisa en la cabeza me di a la tarea de crear una solución informática completamente libre y al alcance de todos. Para ayudar a estos emprendedores a organizar sus stocks y mejorar la compra de productos inteligentes.
Imagina que trabajas tienes un negocio o eres administrador de un negocio. Tu día a día es una lucha contra hojas de cálculo de Excel, listas desactualizadas y la constante preocupación de quedarte sin un producto crítico. Sabes que necesitas una mejor forma, pero las soluciones de software de gestión de inventario (ERP) son caras, complejas y excesivas para lo que realmente necesitas. ¿Y si pudieras diseñar tu propia herramienta, a tu medida y sin gastar un kilo?
El Mapa del Tesoro
Antes de escribir una sola línea de código, hicimos lo más importante: planificar. No se puede construir una casa sin un plano, y no se puede construir un buen software sin una arquitectura clara. Nos sentamos y nos preguntamos:
¿Qué necesitamos realmente el para organizarnos y general ganancias? Y esto fue lo que surgió.
1. Ver el inventario: Una lista clara de todos los productos que hay en existencia.
2. Añadir y quitar productos: Poder actualizar el stock fácilmente.
3. Alertas: Que el sistema nos avise cuando algo se está agotando.
4. Seguridad: Autenticación de usuarios con permisos definidos para que no cualquiera pueda modificar los datos.
5. Flexibilidad: Que podamos cambiar las reglas (¿cuándo es "stock bajo"?).
Con estas 5 necesidades, dibujamos un mapa mental. Nuestra aplicación tendría "módulos" o "pantallas" separadas para cada función:
• Un panel principal (Dashboard)
• Una lista de productos (Inventario)
• Una pantalla de alertas
• Una sección para administrar usuarios.
Este mapa nos evitó perdernos y nos dio una guía clara para todo el desarrollo.

El Cerebro
Con el plano listo, el siguiente paso fue decidir cómo se guardarían los datos. Para los productos, usamos una herramienta muy poderosa llamada Pandas (el Excel con esteroides que vive dentro de tu programa). Nos permite leer y escribir archivos de Excel con facilidad y realizar búsquedas complejas en fracciones de segundos. Para los usuarios y contraseñas, necesitamos algo más seguro. Aquí elegimos SQLite (una pequeña base de datos que viene incluida con Python perfecta para almacenar información sensible de forma segura y local) El truco maestro fue crear un archivo utils.py(el MC invisible dentro del escenario) que actúa como un "cerebro auxiliar", asegurándose de que, tanto si ejecutamos el código desde nuestro ordenador como si lo hacemos desde un archivo .exe, la aplicación siempre sepa dónde encontrar sus datos.
Una aplicación puede ser la más funcional del mundo, pero si es fea o difícil de usar, nadie la querrá. Para la interfaz, usamos Tkinter (librería gráfica estándar de Python. Es como el esqueleto de una casa: sólida y confiable.) Para darle un toque moderno y atractivo sin complicarnos demasiado, usamos una librería llamada ttkbootstrap. Es como ponerle una capa de pintura moderna a nuestro esqueleto de Tkinter, con la que podemos crear interfaces con el aspecto de aplicaciones actuales con muy poco esfuerzo. La estructura fue clave: una ventana principal (main.py) que actúa como el "esqueleto", y cada módulo (Dashboard, Inventario, etc.) es un "panel" que se puede intercambiar fácilmente.
Añadiendo Inteligencia Una aplicación que solo muestra datos es útil, pero una que piensa por ti es increíble. Por eso, añadimos dos módulos clave: 1. Alertas de Stock: En lugar de esperar a que alguien revise una lista enorme, este módulo muestra únicamente los productos que están por debajo del nivel mínimo. Es como tener un asistente personal que te grita: "¡Oye, que te estás quedando sin el producto A!"
2. Configuración: Nos dimos cuenta de que las reglas cambian. ¿Y si en invierno se vende más y el límite de stock bajo debería ser 100 en lugar de 50? El módulo de configuración permite al administrador ajustar estas reglas sin que un programador tenga que modificar el código.
Para una herramienta de negocio, la seguridad es innegociable. Implementamos un sistema de usuarios con roles de administrador y estándar. Para proteger las contraseñas, usamos una técnica llamada "hashing" con una librería llamada bcrypt. Imagina que no guardamos la contraseña, sino una "huella digital" irreversible de ella. Así, aunque alguien acceda a la base de datos, no podrá leer las contraseñas reales.
Pero, ¿qué pasa si el administrador comete un error? Para ello, creamos un historial de cambios. Cada vez que se agrega, elimina o modifica un producto, la aplicación anota quién lo hizo, cuándo y qué cambió. Es como tener una cámara de seguridad grabando todo lo que ocurre, lo que proporciona tranquilidad y una forma de investigar problemas.
El Milagro Final
De Código a un Programa que Cualquiera Puede Usar La última barrera era compartir la aplicación. ¿Cómo hacemos para que alguien sin conocimientos técnicos pueda usarla? Aquí entra en juego una herramienta llamada PyInstaller. Esta herramienta toma todo nuestro código, todas las librerías que usamos y las "empaqueta" en un único archivo .exe. El truco fue nuestro archivo utils.py, que también le dice al programa cómo crear la carpeta data en el ordenador del usuario la primera vez que se ejecuta. El resultado es un programa profesional, de un solo clic, que cualquiera puede ejecutar y usar en su PC.
Pero esta historia no termina con un .exe. Creemos firmemente en el poder del conocimiento compartido y en el espíritu del código abierto. Por eso, estoy orgulloso de anunciar que el código completo de este sistema de gestión está disponible de forma gratuita para todos en GitHub.
Puedes explorarlo para aprender cómo funciona, usarlo como base para tu propio proyecto o, si te sientes valiente, incluso contribuir y mejorarlo.
➡️ Explora el código fuente en GitHub
Esta historia demuestra que, con una planificación clara y las herramientas adecuadas, no necesitas ser un gigante tecnológico para crear software que marque la diferencia. Solo necesitas curiosidad, la voluntad de empezar y la paciencia para resolver los problemas que surgen en el camino.