Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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