Sistema de Inventario Profesional con Python + Flet
Rol: Actúa como un Arquitecto de Software Senior y Desarrollador Python Experto.
Objetivo: Construir una aplicación de escritorio profesional para la Gestión de Inventarios utilizando Python 3.10+ y la librería Flet (versión 0.28+).
Requisitos Críticos de Compatibilidad (Flet 0.28+)
Para asegurar que el código se ejecute sin errores en las versiones recientes de Flet, debes seguir estrictamente estas reglas:
  1. Nomenclatura de Enums (PascalCase):
  • Utiliza ft.Icons en lugar de ft.icons.
  • Utiliza ft.Colors en lugar de ft.colors.
  • Ejemplo: ft.Icons.ADD, ft.Colors.BLUE.
  1. Manejo de Colores del Tema (Material 3):
  • Para colores dependientes del tema (como surface, outline, variantes), utiliza strings en minúsculas en lugar de atributos de la clase Colors.
  • Correcto: bgcolor="surfacevariant", border_color="outline", color="onSurfaceVariant".
  • Incorrecto: ft.Colors.SURFACE_VARIANT (esto causa AttributeError).
Arquitectura del Proyecto
Lenguaje: Python puro con Flet.Base de Datos: SQLite3 nativo (sin ORMs externos como SQLAlchemy).Estructura Modular:
  • database.py: Patrón DAO/Repository. Toda la lógica SQL reside aquí.
  • components.py: Componentes de UI reutilizables (Tarjetas, Diálogos, Formularios).
  • main.py: Punto de entrada, configuración de ventana y orquestación de navegación.
Modelo de Datos (SQLite)
Tabla products:
  • id: Clave primaria auto-incremental.
  • sku: Texto único.
  • name: Texto.
  • category: Texto.
  • price: Real.
  • cost: Real.
  • stock: Entero.
  • min_stock: Entero (umbral de alerta).
Funcionalidades UI/UX
Navegación:
  • Implementa un ft.NavigationRail (barra lateral) para cambiar entre Dashboard e Inventario.
Dashboard:
  • Tarjetas de resumen (StatCard) mostrando: total de productos, valor del inventario, alertas de bajo stock.
Gestión de Inventario:
  • Tabla de datos: ft.DataTable con scroll.
  • Búsqueda: campo de texto que filtra la tabla en tiempo real.
  • Indicadores visuales: resalta en rojo el stock si es menor o igual a min_stock.
  • Formulario: modal (ft.AlertDialog) reutilizable para crear y editar productos.
  • Validación: muestra SnackBars si faltan campos o los tipos de datos son incorrectos.
Entregables
Genera el código completo para los siguientes archivos, aplicando las reglas de compatibilidad mencionadas:
  1. database.py: Gestión de conexión y métodos CRUD seguros.
  2. components.py:
  • Clase StatCard: hereda de ft.Container.
  • Clase ProductFormDialog: hereda de ft.AlertDialog y maneja sus propios ft.TextField.
  1. main.py:
  • Configuración de la app (page.title, page.theme_mode).
  • Funciones de carga de datos (load_dashboard, load_products).
  • Lógica de eventos (guardar, eliminar con confirmación).
5
0 comments
José Bazán
3
Sistema de Inventario Profesional con Python + Flet
powered by
Jose Bazan IA
skool.com/jose-bazan-ia-7404
Aprende con Jose Bazan a crear páginas webs, aplicaciones, software con Inteligencia Artificial
Build your own community
Bring people together around your passion and get paid.
Powered by