RoXxer Inventory
App de escritorio para Windows que gestiona inventario con importación inteligente de Excel/CSV, historial auditado automático y dashboard en tiempo real. Sin internet, sin servidores.
En acción
Sobre el proyecto
RoXxerInventory nació de una necesidad real: las soluciones de inventario básicas registran datos, pero no los rastrean. La mayoría sobrescriben sin avisar, fallan silenciosamente al importar y no dejan rastro de quién cambió qué.
El enfoque fue diferente desde el principio: trazabilidad automática, importación con resolución consciente de conflictos y un flujo que guía al usuario en lugar de fallar.
Características
Gestión de productos
CRUD completo con edición directa en grilla. Sin formularios extra.
Importación inteligente
Lee Excel (.xlsx) y CSV con detección automática de formato decimal y resolución de SKUs duplicados.
Historial auditado
Cada cambio de stock genera automáticamente un movimiento registrado con fecha, motivo y delta.
Dashboard en tiempo real
Valor total, unidades, alertas de mínimo y gráfica de distribución por categoría. Todo en un vistazo.
Reportes a Excel
Valorización, stock crítico e historial de rotación — exportados con formato profesional.
100% Offline
SQLite almacenado en Documents del usuario. Sin cuentas, sin nube, sin fricción.
Capturas de pantalla
Clic en cualquier imagen para ampliar.
Stack técnico
Cada herramienta elegida por una razón concreta.
C# / .NET 10 + WPF + XAML
UI 100% nativa para Windows con data binding declarativo. Sin overhead de Electron ni navegador.
SQLite (sqlite-net-pcl)
Base de datos local sin servidor. Se guarda en Documents del usuario, sobrevive reinstalaciones y es compatible con backups del SO.
ClosedXML + ScottPlot.WPF
ClosedXML para lectura/escritura de .xlsx con formato profesional. ScottPlot para gráficas interactivas del dashboard.
Material Design Themes (MD3)
Sistema de diseño con tema Deep Purple + Lime. Interfaz moderna con componentes MD3 nativos en WPF.
Retos y soluciones
Los problemas reales que sí importan.
Formatos numéricos mixtos en CSV
Problema
Archivos CSV exportados desde distintos sistemas usan punto o coma como separador decimal, causando errores de parseo silenciosos.
Solución
ParseDecimalFlexible intenta múltiples estrategias en secuencia (cultura invariante → cultura actual → intercambio de separadores) antes de fallar. Cero errores con cualquier archivo del usuario.
Conflictos de SKU al importar
Problema
Importar un catálogo con SKUs existentes podía destruir datos si se sobreescribía, o generar inconsistencias si se ignoraban.
Solución
El sistema separa el lote en productos nuevos y conflictivos, muestra un diálogo con contexto claro (stock actual vs. nuevo) y aplica la decisión de forma transaccional. Si falla un producto, no se guarda ninguno del lote.
Auditoría automática sin formularios
Problema
Para que el historial sea útil debe registrarse en cada operación sin que el usuario llene un formulario extra.
Solución
El sistema intercepta los cambios de stock en todos los puntos de entrada (edición inline, importación, ajustes) y calcula automáticamente el delta, tipo y motivo. Un flag _guardandoEdicion evita doble registro en el ciclo de binding de WPF.
Pruébalo tú mismo
Archivos de muestra para ver cómo funciona la importación y los reportes generados por la app.
Descargar aplicación (.exe)
Windows x64Ejecutable para Windows. Requiere .NET 10 Runtime instalado.
RoxxerInventory.exeInventario de prueba
Catálogo de productos de ejemplo para importar
Inventario_Prueba.xlsxReporte de valoración
Ejemplo de reporte de valorización exportado
Reporte_Valoracion.xlsxReporte de movimientos
Historial de entradas, salidas y ajustes
Reporte_Movimientos.xlsxReporte de faltantes
Productos por debajo del stock mínimo
Reporte_Faltantes.xlsxCódigo fuente
Repositorio completo en GitHub. Requiere .NET 10 Runtime para compilar.
github.com/RoXxer98/RoxxerInventoryLo que demuestra
- Dominio de C# moderno y desarrollo desktop con WPF
- Integración de SQLite con transacciones y auditoría
- Procesamiento robusto de Excel/CSV con manejo de casos borde
- Decisiones de arquitectura en proyectos reales (repository pattern)
- UX consciente: diálogos contextuales en lugar de fallos silenciosos
Roadmap
- Búsqueda y filtros avanzados en la grilla
- Múltiples bodegas con transferencias entre ellas
- Autenticación básica (admin / consulta)
- Exportación de reportes a PDF
- Versión multilenguaje (ES / EN)