← Volver a Proyectos
BodeApp

Proyecto Destacado

BodeApp

Gestión Inteligente para Bodegas

Sobre el Proyecto

BodeApp es una aplicación Android nativa diseñada para digitalizar la gestión de pequeñas y medianas bodegas. Permite a los dueños de negocios controlar su inventario en tiempo real, registrar ventas y compras detalladas, y obtener reportes financieros automáticos (utilidad neta, margen de ganancia) con la capacidad de exportar datos en formatos profesionales como PDF y Excel.

🎖️

Rol: Desarrollador Principal: Diseño de la arquitectura MVVM + Clean Architecture, implementación de la base de datos Room y generación de reportes PDF/Excel.

✨ Características Principales

Gestión de Inventario Dinámico

Control de stock automático que se actualiza con cada venta y compra registrada.

Registro Multimodal de Pagos

Soporte para Efectivo, Yape, Plin, Tarjeta y Transferencia, permitiendo un arqueo de caja preciso.

Dashboard de Reportes

Visualización de utilidad neta, productos más vendidos y estadísticas por periodos (Día, Semana, Mes).

Exportación Profesional

PDF con facturas y reportes de cierre de caja listos para imprimir, y Excel para análisis y contabilidad.

UX/UI Moderna

Diseño basado en Material Design 3 con modo oscuro/claro y navegación intuitiva.

🛠️ Stack Tecnológico

KotlinJetpack ComposeMVVMClean ArchitectureRoom (SQLite)StateFlow & FlowJetpack NavigationPdfDocumentCSV/UTF-8ViewModelProvider.FactoryMaterial Design 3

🔥 Retos Técnicos y Soluciones

⚡ Reto

Sincronización de stock: asegurar que el inventario se reduzca solo si la venta se confirma correctamente.

✅ Solución

Implementación de lógica transaccional en Room para garantizar la atomicidad de las operaciones de venta.

⚡ Reto

Compatibilidad de Excel: codificación incorrecta de caracteres especiales (S/, tildes) en dispositivos móviles.

✅ Solución

Implementación de Byte Order Mark (BOM) en los archivos CSV para compatibilidad total con Microsoft Excel.

⚡ Reto

Persistencia de tipos complejos: mapear Enums de métodos de pago a tipos compatibles con SQLite.

✅ Solución

Uso de TypeConverters de Room para transformar los Enums a tipos primitivos y viceversa de forma transparente.