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.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
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)查看完整 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