Volver al portafolio
SaaS DongoProyect

MiniMark — SaaS de gestión para almacenes

Caja, stock, fiado y contabilidad para almacenes de barrio, desde el celular

Descripción del proyecto

MiniMark es un SaaS multi-tenant para almacenes y micro-comercios de barrio,

construido íntegramente en Django. Cada negocio tiene su caja con lector de código de barras,

control de stock determinista, libro de fiado y un **chat de ingreso de mercadería en lenguaje

natural** — el diferenciador que hace que mantener el sistema cueste menos que mantener el cuaderno.

Cómo funciona

  • PWA instalable: corre en celular, iPhone y PC con un solo código y se actualiza sola.
  • Multi-tenant real: cada negocio vive en su propio schema de PostgreSQL con subdominio propio;

solo el catálogo de referencia EAN→producto es compartido.

  • El LLM propone; el código dispone: toda la aritmética de stock, ventas y fiado ocurre en

Python con Decimal. La IA nunca toca plata ni stock sin confirmación.

  • Dos flujos de dinero separados: la caja del comerciante y el cobro de la mensualidad SaaS

son subsistemas independientes que nunca se mezclan.

01 El problema

El problema

Los almacenes de barrio llevan todo en un cuaderno: ventas, deudas de clientes (fiado),

lo que hay que reponer. Las apps POS existentes no resuelven eso — lo empeoran:

  • Exigen mantener un catálogo al día, tecleando producto por producto.
  • Están pensadas para cadenas, con jerga contable ("SKU", "valoración de inventario").
  • El comerciante mayor, con poca familiaridad digital, las abandona a la semana.

El cuaderno gana porque mantenerlo no cuesta nada. Cualquier sistema que exija más

mantención que el cuaderno, pierde.

02 La solución

La solución

Una PWA que le gana al cuaderno en su propio terreno: costo de mantención cero.

  • Chat de ingreso: el comerciante escribe "llegaron 3 cajas de coca de litro a 12 lucas"

y el sistema propone el ingreso. Normalización determinista primero, Ollama local después,

LLM API solo para el residuo difícil. Confirmación humana antes de tocar stock.

  • Caja con escaneo: BarcodeDetector API con fallback ZXing; catálogo cacheado en

IndexedDB para que la venta sea instantánea.

  • Los tres números siempre visibles: ganaste hoy · se está acabando · lleva tiempo parado

en lenguaje llano, legible a distancia de mostrador.

  • Sesión de dispositivo persistente: el POS no pide login en cada venta.
  • UX para comerciantes mayores: tipografía grande, botones grandes, una acción por pantalla.
03 Características clave
04 Stack tecnológico
Ollama PWA django-tenants Python Django PostgreSQL Docker Celery JavaScript Gunicorn Redis Cloudflare