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