Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
Translation pending
Gestión de negocios con agenda y POS unificados vía WhatsApp
Translation pending
AI summary · README
BusinessJavaScript · PLpgSQLGitHub @asbitpyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Sistema de gestión con WhatsApp para pequeños negocios paraguayos — agenda para negocios de servicio (clínicas, nutricionistas) y POS/ inventario para retail (tiendas de ropa y afines), unificados en un solo sistema. Un producto de AS BIT. Empezá por acá si es la primera vez que abrís este proyecto: docs/AS_ADMIN_checklist_maestro.md — es el estado real de qué está hecho, qué falta, y por dónde seguir. Todo lo demás en este README es para orientarte en la estructura de carpetas.Read the full README ↗
Sistema de gestión con WhatsApp para pequeños negocios paraguayos — agenda para negocios de servicio (clínicas, nutricionistas) y POS/ inventario para retail (tiendas de ropa y afines), unificados en un solo sistema. Un producto de AS BIT.
Empezá por acá si es la primera vez que abrís este proyecto:
docs/AS_ADMIN_checklist_maestro.md — es el estado real de qué está
hecho, qué falta, y por dónde seguir. Todo lo demás en este README es
para orientarte en la estructura de carpetas.
as-admin/
├── docs/ → arquitectura, checklist maestro, árbol de conversación del bot
├── database/ → TODAS las migraciones SQL, en un solo orden numérico (001 → 008)
├── backend/ → bot de WhatsApp (Node.js) — el cerebro conversacional
└── panel/ → panel del dueño (React + Vite) — agenda, ventas, catálogo
Por qué la base de datos está separada de backend/panel: backend
y panel son dos procesos distintos (uno corre en un servidor, el otro
en el navegador del dueño), pero los dos leen y escriben la misma
base de datos en Supabase. Tenerla en una sola carpeta con un solo
orden numérico evita que se pisen migraciones o que alguien corra un
mismo número dos veces con contenido distinto.
database/ (001 al 008 — ver el README de backend/ o panel/
para el detalle de qué hace cada una)database/seed_demo.sql. Carga un negocio híbrido con turnos de hoy,
facturación de la semana, catálogo con variantes y una conversación
derivada, así el panel se ve con vida desde el primer login en vez de
vacío. Se puede correr y borrar las veces que haga falta.backend/README.md — conecta con Meta/WhatsApp
y con Claude para el botpanel/README.md — lo usa el dueño desde el
celular; incluye agenda (si el negocio es de servicio) y POS/catálogo
(si es retail)Ambos proyectos son independientes entre sí — se pueden levantar en cualquier orden — pero los dos necesitan la base de datos ya creada.
docs/AS_ADMIN_arquitectura_unificada_v3.md)Un negocio no es "de servicio" o "de retail" de forma fija — tiene un
array modulos_activos en la tabla negocios que determina qué ve en
el panel y qué le ofrece el bot. Un negocio puede tener agenda,
pos/inventario, o ambos a la vez (ej. una nutricionista que agenda
consultas y también vende suplementos). Nunca se hardcodea "si es
clínica, hacer X" — siempre se chequea ese array.
numeric(12,0)).stock directamente — siempre a través de
movimientos_inventario o de la función fn_descontar_stock(), para
no perder el historial.fn_crear_venta()
del catálogo, y que dos turnos no se pisen lo garantiza la restricción
turnos_sin_solape, no un if en el código del bot.database/003_panel_auth_rls.sql.