Resumen
Proyecto privado — Código fuente bajo acceso restringido.
El Chilateño App es una aplicación móvil privada de gestión comercial y administración interna (back-office) desarrollada para una distribuidora de gas GLP en Perú. A diferencia de la landing page pública, esta aplicación está diseñada exclusivamente para uso del dueño y el personal administrativo (jefes de ventas, vendedores), facilitando la gestión integral del negocio de forma privada y segura.
Permite registrar ventas y compras, controlar el inventario de balones en tiempo real, generar reportes financieros con gráficos interactivos, exportar reportes en PDF, administrar permisos de usuarios según su rol y operar de manera fluida incluso sin conexión a internet (offline-first).
El backend está construido sobre Supabase (PostgreSQL + Auth + Realtime + RLS), y la aplicación está desarrollada con Flutter (móvil multiplataforma). Para asegurar la consistencia absoluta de los datos, la lógica crítica de negocio (descuento automático de stock, cálculo de totales, márgenes de ganancia/costo y la bitácora de auditoría) se delegó por completo a triggers de Postgres a nivel de servidor, evitando vulnerabilidades o discrepancias en la interfaz del cliente.
Módulos
- Ventas: Registro de ventas con descuento automático de stock en tiempo real mediante triggers de Postgres.
- Compras: Registro de compras de abastecimiento de balones que recalculan costos y stock automáticamente.
- Inventario: Alta y edición de productos (balones por kilogramos y marcas) con alertas de stock mínimo.
- Reportes: Dashboard financiero interactivo con gráficos (fl_chart) y exportación de comprobantes o balances en PDF.
- Seguridad & Roles: Gestión de cuentas privadas con permisos jerárquicos aprobados por el administrador y protegidos mediante RLS.
- Historial / Auditoría: Registro inmutable de transacciones y operaciones para control interno del dueño.
- Sincronización Offline: Soporte para operar sin señal, encolando operaciones locales que se sincronizan de forma segura al detectar red.
Roles y Seguridad
| Rol | Acceso |
|---|
| admin | Acceso total: inventario, compras, usuarios, reportes, ventas. |
| jefe_ventas | Ventas y reportes. |
| vendedor | Solo registrar ventas. |
| pendiente | Sin acceso hasta que un admin habilite la cuenta. |
La seguridad y privacidad se implementan mediante Row Level Security (RLS) directamente en Supabase PostgreSQL.
Stack Técnico
Frontend (Flutter)
+-- Flutter 3.44.x (stable) / Dart 3.12.x
+-- flutter_riverpod # Gestión de estado reactiva
+-- go_router # Navegación declarativa
+-- fl_chart # Gráficos interactivos
+-- pdf + printing # Comprobantes y reportes PDF
Backend (Supabase)
+-- PostgreSQL + RLS # Base de datos con seguridad por fila
+-- Auth # Autenticación de usuarios
+-- Realtime # Actualizaciones en tiempo real
+-- Triggers # Lógica de negocio en servidor
DevOps
+-- GitHub Actions CI # Análisis estático + tests en cada push
+-- --dart-define # Secretos seguros (nunca hardcodeados)
Capturas
Retos Técnicos
El mayor desafío consistió en diseñar una arquitectura robusta de seguridad para uso administrativo. Dado que la aplicación maneja datos sensibles de facturación e inventario, implementamos políticas estrictas de Row Level Security (RLS) en la base de datos Supabase, validando las credenciales de cada usuario en cada consulta. Además, para soportar las operaciones en zonas con cobertura de red inestable sin riesgo de corrupción de datos, estructuramos un sistema de sincronización offline con cola de peticiones locales que sincroniza el inventario de forma automática al restablecerse la conexión.
Resultados
Aplicación privada en producción real utilizada activamente por el dueño y administradores de la distribuidora El Chilateño. Ha optimizado el control de inventario y la contabilidad interna de ventas, previniendo pérdidas de stock y automatizando la generación de balances diarios en formato PDF.
Conclusión
Este proyecto demuestra la capacidad de entregar software de producción real: desde la arquitectura con lógica de negocio en el servidor hasta CI/CD con GitHub Actions. Cada decisión técnica fue tomada con el objetivo de robustez y seguridad en un entorno comercial real.
Summary
Private project — Source code under restricted access.
El Chilateño App is a private mobile commercial management and back-office application developed for an LPG gas distributor in Peru. Unlike the public landing page, this application is designed exclusively for the owner and administrative staff (sales managers, sellers), facilitating private and secure business management.
It allows registering sales and purchases, controlling cylinder inventory in real-time, generating financial reports with interactive charts, exporting reports to PDF, managing user permissions by role, and working seamlessly even without an internet connection.
Built with Flutter and Supabase (PostgreSQL + Auth + Realtime + RLS). To ensure data integrity, critical business logic (stock deduction, total calculation, cost/profit, and audit logging) lives entirely in Postgres triggers on the server side instead of the client application.
Modules
- Sales: Sale registration with automatic real-time stock deduction via Postgres triggers.
- Purchases: Cylinder purchase registration that automatically updates cost and stock.
- Inventory: Product management (cylinders by size and brand) with minimum stock alerts.
- Reports: Financial dashboard with interactive charts (fl_chart) and PDF export for balances.
- Security & Roles: Private account management with hierarchical permissions approved by the administrator, secured by RLS.
- History: Immutable audit logs of all commercial transactions for the owner’s control.
- Offline Sync: Connectivity detection and queued synchronization for areas with unstable network.
Roles & Security
| Role | Access |
|---|
| admin | Full access: inventory, purchases, users, reports, sales. |
| sales_manager | Sales and reports. |
| seller | Only register sales. |
| pending | No access until an admin enables the account. |
Security and privacy are implemented with Row Level Security (RLS) directly in Supabase PostgreSQL.
Tech Stack
Frontend (Flutter)
+-- Flutter 3.44.x (stable) / Dart 3.12.x
+-- flutter_riverpod # Reactive state management
+-- go_router # Declarative navigation
+-- fl_chart # Interactive charts
+-- pdf + printing # Receipts and PDF reports
Backend (Supabase)
+-- PostgreSQL + RLS # Database with row-level security
+-- Auth # User authentication
+-- Realtime # Real-time updates
+-- Triggers # Server-side business logic
DevOps
+-- GitHub Actions CI # Static analysis + tests on every push
+-- --dart-define # Secure secrets (never hardcoded)
Captures
Technical Challenges
The primary challenge was building a highly secure administrative tool. Since the application handles billing, costs, and inventory data, we implemented strict Row Level Security (RLS) policies directly in Supabase PostgreSQL, validating roles and permissions on every query. To support offline operations without data corruption, we implemented a local queue system that automatically syncs local transactions back to the database as soon as network connectivity is restored.
Results
Private production application used daily by the owner and managers of the El Chilateño distributor. It has streamlined inventory control and internal sales auditing, preventing stock losses and automating daily PDF report generation.
Conclusion
This project demonstrates the ability to deliver real production software: from architecture with server-side business logic to CI/CD with GitHub Actions. Every technical decision was made with robustness and security in mind for a real commercial environment.