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
Clientes, procesos judiciales, cobros, documentos con firma electrónica y contenido para redes — con inteligencia artificial.
Translation pending
BusinessJavaScript · PLpgSQLGitHub @felipeabogadocr-collabOnlineOwner 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.
Cortés Ramírez Abogados — App de gestión App interna del despacho para gestión de clientes, documentos (con firma), contabilidad, vigilancia judicial, calendario de contenido y un asistente de IA. Construida con Vite + React, Supabase (base de datos + autenticación real) y funciones serverless de Vercel (proxy seguro hacia la API gratuita de Google Gemini, y creación de usuarios). Instalable como PWA en celular/tablet. 1. Crear el proyecto en Supabase (plan gratuito)Read the full README ↗
App interna del despacho para gestión de clientes, documentos (con firma), contabilidad, vigilancia judicial, calendario de contenido y un asistente de IA. Construida con Vite + React, Supabase (base de datos + autenticación real) y funciones serverless de Vercel (proxy seguro hacia la API gratuita de Google Gemini, y creación de usuarios). Instalable como PWA en celular/tablet.
supabase/schema.sql.
Esto crea las tablas clientes, documentos, casos, chats, app_settings,
perfiles (usuarios) y auditoria, con Row Level Security habilitado — solo
sesiones autenticadas pueden leer/escribir los datos del despacho.Project URL → VITE_SUPABASE_URLanon public key → VITE_SUPABASE_ANON_KEYservice_role key (la secreta, no la anon) → SUPABASE_SERVICE_ROLE_KEYGEMINI_API_KEY (solo se usa en el servidor, nunca en el navegador).npm install
cp .env.example .env.local # y completa las 4 variables de arriba
npm run dev
Nota: en desarrollo local npm run dev (Vite) no ejecuta las funciones serverless de
/api. Para probar el asistente de IA o la creación de usuarios localmente usa
vercel dev (requiere el CLI de Vercel y haber hecho vercel link al proyecto) o
despliega directo a Vercel.
npm run build, output: dist).VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYGEMINI_API_KEY/api/assistant (asistente de IA) y /api/usuarios/crear (alta de usuarios).La app es multi-despacho (multi-tenant): una misma base de datos puede tener varios despachos distintos, cada uno viendo solo sus propios datos. Para entrar por primera vez, en la pantalla de login hay un link "Crea tu despacho" — pide el nombre del despacho, tu nombre, correo y contraseña, y te deja como Administrador de ese despacho. Desde ahí creas a los demás usuarios en "Usuarios y permisos" (quedan en el mismo despacho) y decides qué secciones ve cada uno. El login es real: las contraseñas las gestiona Supabase Auth, nunca se guardan en texto plano.
Abre la URL publicada desde el navegador del celular/tablet y usa "Agregar a pantalla de inicio" (Android/Chrome) o "Compartir → Agregar a inicio" (iOS/Safari).
despachos es el "tenant". Cada tabla de
datos (clientes, casos, chats, app_settings, perfiles, auditoria) tiene una
columna despacho_id, y las políticas de Row Level Security usan las funciones
mi_despacho_id() y soy_administrador() para que un despacho nunca pueda leer ni
escribir los datos de otro. src/lib/storage.js filtra automáticamente por el
despacho del usuario que inició sesión (setDespachoActual, llamado desde App.jsx
al cargar el perfil).perfiles guarda nombre, rol,
permisos, despacho y preferencias de notificación de cada usuario, ligada al usuario
real de auth.users. Crear el primer usuario de un despacho nuevo pasa por
api/despachos/crear.js (siempre disponible, sin necesitar sesión — es el registro de
un cliente nuevo del producto); crear usuarios adicionales dentro de un despacho ya
existente pasa por api/usuarios/crear.js, y solo lo puede hacer un Administrador
autenticado de ese mismo despacho. Ambas son las únicas piezas que usan la llave
service_role.anon.
Pendiente conocido: la tabla documentos se dejó con acceso anónimo a propósito
(no filtrado por despacho), porque el link de firma (#firmar + código) lo abren los
clientes sin iniciar sesión. Es un pendiente para una fase futura: mover la firma a
enlaces de un solo uso en vez de una tabla legible completa.auditoria registra quién hizo qué y cuándo (por ahora:
crear/eliminar cliente, registrar pago, crear usuario, cambiar permisos). Solo un
Administrador puede leerla, desde "Usuarios y permisos" → "Auditoría".src/lib/storage.js reemplaza el window.storage del prototipo original de
Claude.ai por llamadas a Supabase, manteniendo la misma interfaz
(storageGet/storageSet) para no reescribir la lógica de negocio del resto de la
app (clientes, documentos, casos, calendario de contenido, etc. — todo lo que no es
autenticación sigue viviendo así).api/assistant.js recibe las mismas peticiones "estilo Anthropic" que el frontend ya
armaba (system/tools/messages con texto, imagen, PDF y uso de herramientas) y las
traduce al formato de la API de Gemini (function calling incluido), usando
en el servidor.GEMINI_API_KEY