Portafolio / Sistemas de negocio / lalafun-pos

Un mes para construirlo.
Un día a la semana recuperado.

Tengo un restaurante de pollo frito. Estaba perdiendo un día completo cada semana en administración — reescribir gastos en un libro mayor, exportar a Excel, calcular la nómina de 13 empleados a mano. Cuatro semanas de desarrollo después, eso son dos horas.

ClienteLalaFun (restaurante propio)
AlcancePOS · Inventario · Gastos · Nómina
Equipo13 empleados · ~200 transacciones/día
Plazo4 semanas · 2026
Qué construimos

Una sola app que gestiona todo el local.

Una instalación en cada teléfono de turno y en el dispositivo del propietario. Seis módulos, una base de datos, un inicio de sesión. Sin complementos, sin plugins, sin ninguna hoja de cálculo aparte en el flujo. Construido específicamente para un negocio de alimentación indonesio de un solo local con caja en efectivo — no un SaaS genérico forzado a encajar.

Módulo 01

Punto de Venta

Cobro en dos toques optimizado para combos de pollo frito. Separa efectivo, QRIS, transferencia bancaria y pedidos en línea (GoFood / GrabFood) en sus propias cajas. Imprime un ticket térmico para la cocina y un comprobante para el cliente en una sola acción.

RecibosSeparación de cajaOnline
Módulo 02

Inventario y stock

Cada venta descuenta automáticamente del stock. Alertas de stock bajo antes de que el local se quede sin producto durante el servicio. Recepción de proveedor en una sola pantalla — escanear, cantidad, precio, listo.

Descuento automáticoAlertasRecepción
Módulo 03

Control de gastos

Cada rupia que sale de la caja se registra en el POS en el momento del pago. Clasificada por categoría, vinculada a una fuente de efectivo, con foto del comprobante adjunta. Reemplaza el libro mayor de tapa dura y la exportación mensual a Excel con un solo gesto.

CategorizadoFoto de evidencia
Módulo 04

Asistencia

Registro de entrada con selófi y geovalla GPS para que nadie fiche desde casa. Reconoce tres turnos (mañana / tarde / noche). Llegadas tardías, salidas anticipadas y ausencias se calculan directamente en la nómina.

SelófiGeovalla GPSTurnos
Módulo 05

Nómina

Salario base más cálculo de bonos de asistencia, más multas y anticipos — todo calculado en tiempo real mientras avanza el mes. Pulsa “cerrar mes” el día 28 y la hoja de pagos está lista. Imprimir, contar el efectivo, repartir.

Cálculo en vivoMultas y anticipos
Módulo 06

Informes del propietario

Un panel, el teléfono del propietario. Ventas del día vs. ayer, gastos del mes por categoría, pasivo de nómina, efectivo disponible. Toca cualquier cifra para ver las transacciones brutas detrás.

KPIs en vivoDesglose detallado
● El problema

La administración se comía cada domingo.

Cada día reescribía los gastos del día en un libro mayor de tapa dura — hielo, estacionamiento, productos de limpieza, la factura del gas. Una vez al mes me pasaba un día entero exportando todo a Excel como respaldo. Nada se comunicaba entre sí.

Si quería saber cuánto había gastado en envases el mes pasado, la única respuesta era: pasar las páginas.

“Podía atender el local o podía atender el papeleo. Nunca los dos a la vez.” — propietario, LalaFun
Libro de gastos 14 Feb '26
Hielo (3 paquetes)45,000
Estacionamiento moto5,000
Aceite de cocina120,000
Aceite de cocina (5L)165,000
Líquido lavaplatos28,000
Gas LPG 12kg180,000
Harina de trigo95,000
Caja de empaque M240,000
Factura de electricidad680,000
Manual 8 hrs / semana
● La solución

Todo, en una sola app, en tiempo real.

Cada gasto — un paquete de hielo, la factura de electricidad, un comprobante de estacionamiento — se registra en el POS en el momento del pago, vinculado a la caja o a la caja fuerte. El libro mayor desapareció. La copia de seguridad mensual en Excel se genera sola.

Un panel de gestor lo agrupa todo: ventas del día por método de pago, gastos del mes por categoría, objetivos vs. resultados reales. Abro la app y veo el local.

9:41 ●●●● ◐ ▮▮▮
Panel
Sábado · 14 Feb
L
Ventas de hoy
Rp 4,248,500
+18% vs. ayer · 208 pedidos
Gastos
Rp 380K
Objetivo mensual
76%
Ventas · últimos 7 días
Ingredientes crudos Rp 1.8M
Operaciones Rp 420K
Empaques Rp 310K
POS
Pedidos
Stock
Datos
● Segundo problema

La nómina eran dos horas de cálculos en una hoja de cálculo.

Trece empleados, tres turnos al día, asistencia registrada en comprobantes en papel. A fin de mes cruzaba quién había venido y cuándo, calculaba el porcentaje del bono de asistencia a mano e introducía cada línea en una hoja de cálculo.

Dos horas si todo iba bien. Más tiempo cuando faltaba un comprobante o alguien disputaba un turno.

Ayu
Mañana
07:0215:00
Budi
Tarde
10:45
Citra
Noche
¿permiso?
Dimas
Mañana
06:5815:04
Eka
Noche
14:5022:10
Fajar
Tarde
11:00
Gita
Mañanatarde
07:4515:00
● La solución

El fichaje con selófi. La nómina se gestiona sola.

El personal registra la entrada en el terminal POS con un selófi y verificación GPS — no se puede falsear desde casa y el comprobante no puede desaparecer. El turno, el porcentaje de asistencia, el bono y las penalizaciones se calculan a medida que avanza el mes.

Cuando llega el día de pago, abro la pestaña de nómina, leo el importe, cuento el efectivo. Diez minutos, listo.

9:41 ●●●● ◐ ▮▮▮
Nómina
Feb 2026 · 13 empleados
Lista
A
Ayu Pramesti
26 días · 100%
Rp 3.240K
B
Budi Santoso
25 días · 96%
Rp 3.105K
C
Citra Wulandari
24 días · 92%
Rp 2.980K
D
Dimas Pratama
26 días · 100%
Rp 3.240K
E
Eka Saputra
22 días · 85%
Rp 2.785K
Nómina total · Feb
Rp 38.420K
Imprimir
POS
Pedidos
Stock
Equipo
● Tercer problema

Nos quedamos sin pollo un domingo por la noche.

El stock vivía en una pizarra en la cocina. Quien se acordaba de tachar cosas, lo hacía. Quien no, no. Dos veces llegué para encontrar que nos habíamos quedado sin cajas de empaque con una cola llena de pedidos en línea esperando.

No había aviso anticipado, ni tasa de consumo, ni punto de reorden. Solo un marcador y la esperanza de que alguien estuviera prestando atención.

STOCK — Dom
Pollo?? kg Harina2 sacos Aceite 5L3 Aceite 5L1? Caja Mbajo Caja Lok Sambal jar~15 Arroz6 kg LPG2 LPG1
← ¿quién tachó?
sin stock 21:40 → ~18 pedidos perdidos
● La solución

El stock se descuenta solo. Te avisa antes de agotarse.

Cada venta resta automáticamente la cantidad correcta del SKU correcto — el mapa de recetas se configura una vez y luego funciona solo. Cuando el stock cae por debajo del punto de reorden según la velocidad de ventas del día, el propietario recibe una notificación push esa mañana.

Las entregas se registran en la misma app — escanear, cantidad, proveedor, foto del comprobante. La pizarra ahora está vacía. A la cocina le gusta así.

9:41 ●●●● ◐ ▮▮▮
Stock
48 SKUs · 2 alertas
Bajo
!
Muslo de pollo
4.2 kg · pedir ahora
1.8 días
!
Caja de empaque M
28 uds · pedir ahora
0.6 días
~
Aceite de cocina 5L
2 bidones · vigilar
3.2 días
Harina de trigo
24 kg · ok
6.1 días
LPG 12kg
3 tanques · ok
9.0 días
Valor del inventario
Rp 12.8M
Registrar entrada
POS
Pedidos
Stock
Equipo
Antes y después

Cómo era un domingo antes.

El domingo se suponía que era mi día. En cambio era el día de ponerse al día — el único día en que podía sentarme y desenredar la semana. Esto es lo que cambió.

Antes Domingo · 9h 30m
  • 0:00inicioRecoger los comprobantes de gastos de la semana del cajón de operaciones, la sala del personal, mi billetera.
  • 0:30+30 minReescribir cada comprobante en el libro mayor de tapa dura a mano.
  • 3:00+3 hrCotejar la caja contra los informes de cierre del día — buscar una diferencia de 15k durante 40 minutos.
  • 4:30+4 hr 30Abrir Excel. Reescribir el libro mayor en la hoja mensual. Arreglar una fórmula que alguien rompió.
  • 6:30+6 hr 30Recoger los comprobantes de asistencia de la semana del portapapeles del encargado de turno.
  • 8:00+8 hrLlamar a un empleado para confirmar un turno del martes. Mensaje de voz de respuesta: “Me olvidé de firmar.”
  • 9:30+9 hr 30A mitad del cálculo de nómina. Me doy cuenta de que me faltó una penalización por tardanza.
9h 30m
Después Domingo · 20 min
  • 0:00inicioAbrir la app en el sofá. Echar un vistazo a la conciliación de caja de ayer — cuadra.
  • 0:05+5 minRevisar el registro de gastos. Dos fotos que tengo que reclasificar. Tap, tap, listo.
  • 0:10+10 minVer la alerta de stock de antes — el encargado de turno ya pidió el pollo el viernes.
  • 0:15+15 minMirar la vista previa de nómina. Va bien. Se cierra sola el día 28.
  • 0:20+20 minDejar el teléfono. Salir a algún lado.
20m · 3.5% de antes
Cómo se construyó

Cuatro semanas, de principio a fin.

01

Semana 1 — diseño

Mapeé cada tarea administrativa que hacía a mano. Eliminé todo lo que no era indispensable para un local de un solo punto — sin recetas, sin árboles de ingredientes, sin CRM de clientes. Solo las cosas que realmente reescribía cada semana.

02

Semanas 2–3 — desarrollo

React Native + Expo en el teléfono, PHP + MySQL en el back end. Síncrono offline desde el primer día — la cocina no se detiene cuando el wifi falla. Registro de auditoría en cada mutación para que nada desaparezca silenciosamente.

03

Semana 4 — despliegue

Formé a 13 empleados en los turnos de mañana, tarde y noche. SOP escrito en Bahasa. El libro mayor y las hojas de cálculo se retiraron la semana siguiente. Se envían actualizaciones OTA cada vez que algo requiere ajuste.

Resultado · números reales del sistema en vivo

Ocho meses después, esto es lo que dice la base de datos.

Cada cifra a continuación se extrae de la base de datos en producción — no es una estimación de presentación de ventas. Los contadores arrancan cuando llegas aquí.

0 hrs
Horas de administración ahorradas
6 hrs/semana × 52 semanas — un mes completo de tiempo del propietario recuperado
Rp 0M
Nómina calculada automáticamente
en 8 meses · cero disputas, cero recalculós manuales
0
Alertas de stock bajo activadas
detectadas antes de que el local se quedara sin producto — 0 incidentes de pedidos perdidos desde el lanzamiento
0%
Coincidencia en conciliación de caja
240 cierres de día · diferencia de caja menor a Rp 5K en el 99,4% de ellos
0min
Tiempo mediano de cierre de nómina
de 1 hora a 14 minutos · tocar cerrar, imprimir, contar efectivo
Bajo el capó

Construido para un local, no para una presentación de ventas.

La tecnología es deliberadamente poco glamurosa. Cada decisión respondió a una pregunta: ¿qué pasa cuando el wifi cae durante el servicio y hay 40 pedidos en línea en cola?

Arquitectura

Offline primero, servidor como autoridad

El teléfono es la fuente de verdad para los próximos 30 segundos; el servidor lo es para todo lo anterior. Pedidos, ventas y descuentos de stock se escriben localmente primero y luego se sincronizan — la cocina nunca se detiene porque la torre caiga.

React Native · caché SQLite · sincronización WAL
Tecnología

React Native + PHP / MySQL

Expo para actualizaciones OTA para que las correcciones lleguen en minutos, no en semanas de tienda de aplicaciones. PHP + MySQL en el back end porque la factura de hosting es de 6 $/mes y el primo del propietario puede leer el código si algo me pasa.

Expo · PHP 8.2 · MySQL 8 · Nginx
Integridad de datos

Registro de auditoría en cada mutación

Cada venta, anulación, gasto y edición de nómina deja una fila con el usuario, la marca de tiempo y el valor antes/después. Nada desaparece silenciosamente. Si una cifra parece incorrecta una semana después, puedes ver exactamente quién la tocó y cómo era antes.

Registro de sólo adición · eliminaciones suaves · lecturas en el tiempo
Hardware

Funciona con los teléfonos que el personal ya tiene

Sin terminal POS personalizado, sin tablet propietaria. Un Android compartido en el mostrador para el cobro, una impresora térmica (ESC/POS por Bluetooth) para los recibos y el teléfono del propietario para el panel. Costo total del hardware: menos de Rp 2M.

Android 10+ · térmica Bluetooth · escáner QRIS
Integraciones

Pedidos en línea, QRIS, WhatsApp

Los pedidos de GoFood y GrabFood entran en la misma cola que los pedidos en local. Los pagos QRIS se concilian automáticamente contra la caja. Los comprobantes de nómina se envían por WhatsApp al cerrar el mes — no más sobres impresos.

APIs de comerciante · callback QRIS · WA Business
Seguridad

El propietario lo ve todo, el personal ve su carril

Permisos basados en roles desde el primer día. Los cajeros pueden tomar pedidos y registrar gastos, pero no pueden anular, editar nóminas ni ver márgenes. Cada acción elevada requiere el PIN del propietario.

RBAC · elevar con PIN · vinculación de dispositivo
Siguiente caso → SNAP self-photo

¿Algo
roto como esto?

Llamada de evaluación sin costo. Le decimos la solución más barata para arreglarlo.