Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Sistema de Gestión de Seguridad
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
RMS + CAD (Computer-Aided Dispatch) policial. Monorepo con tres entregables, todos conectados directo a Supabase (Postgres + Auth + Storage + Realtime); no hay servidor API intermedio. Guía de trabajo para contribuir (comandos, arquitectura y convenciones): ver CLAUDE.md. Diseño completo y roadmap: Arquitectura_Sistema_Central_Policial_SaaS.md. Paso 1 — Crear el proyecto Supabase (gratis) 1. Crear cuenta en supabase.com y un proyecto nuevo (plan gratuito). 2. En el dashboard: SQL Editor → pegar y ejecutar, en este orden, el contenido de cada archivo de supabase/migrations/ (`README 전문 보기 ↗
RMS + CAD (Computer-Aided Dispatch) policial. Monorepo con tres entregables, todos conectados directo a Supabase (Postgres + Auth + Storage + Realtime); no hay servidor API intermedio.
| Componente | Carpeta | Stack | Despliegue |
|---|---|---|---|
| Web (despacho/registros) | frontend/ | Next.js 14 (App Router, TS) | Vercel (proyecto scp, Root = frontend; push a main = deploy) |
| Móvil (oficial en campo) | mobile/ | Expo SDK 54 / RN 0.81 | EAS (APK Android) |
| Backend | supabase/ | Postgres (migraciones 0001–0041) + Edge Functions (Deno) | Supabase (ref rdyjjfbehjfggpldmmur) |
Guía de trabajo para contribuir (comandos, arquitectura y convenciones): ver
CLAUDE.md. Diseño completo y roadmap:Arquitectura_Sistema_Central_Policial_SaaS.md.
sistema-central-policial/
├── supabase/
│ ├── migrations/ 0001…0041 — se corren MANUALMENTE en orden en el SQL Editor
│ │ (core, bitácora, WORM, RLS, casos, personal, órdenes, fotos,
│ │ evidencias, asuntos internos, CAD/barandilla, foliador, equipo,
│ │ admin, incidentes, tareas, transmisiones, bodycam, cierre/historial CAD…)
│ ├── functions/ Edge Functions (Deno): crear_usuario, copiloto, enviar_push,
│ │ indexar-ia, buscar-ia
│ └── seed.sql Datos de prueba (opcional)
├── frontend/ Next.js 14 (App Router) — web de despacho/registros
│ ├── app/ rutas + components/ (AppShell, ListaMaestra, VinculosPanel…)
│ ├── lib/ supabaseClient, types, config, geo (LocationIQ), turn (WebRTC)
│ └── .env.example
└── mobile/ Expo / React Native — app del oficial en campo
├── src/screens/ · src/lib/ · src/components/ · modules/bodycamhd (módulo nativo Android)
└── app.json · eas.json
supabase/migrations/ (0001 … 0041). Las migraciones se aplican manualmente (no se auto-corren). Al agregar esquema, crear el siguiente archivo numerado y correrlo.trg_crear_perfil_nuevo_usuario le genera automáticamente un perfil con rol oficial en usuarios_perfil. Para hacerlo administrador, editar esa fila manualmente desde Table Editor la primera vez.Project URL y la anon public key.Importante sobre el plan gratuito: el proyecto se pausa automáticamente tras 7 días sin uso — hay que reactivarlo desde el dashboard antes de una demo si estuvo inactivo.
cd frontend
cp .env.example .env.local
# editar .env.local con la URL y anon key del paso 1
npm install
npm run dev # servidor de desarrollo en el puerto 3100
Abrir http://localhost:3100, iniciar sesión con el usuario creado en el paso 1, y
probar cualquier módulo (p. ej. Personas): agregar un registro, cancelarlo (nota que
desaparece de la vista normal pero sigue en la tabla con estatus "cancelado") y crear
un vínculo. Verificación real = npm run build (atrapa errores que tsc no ve,
como useSearchParams sin <Suspense>).
App móvil (
mobile/):npx tsc --noEmitpara typecheck ynpx eas-cli build --profile preview --platform androidpara el APK. Las dependencias nativas (WebRTC, push, bodycam) no funcionan en Expo Go — requieren un build de EAS.
Desde el Table Editor de Supabase, abrir la tabla bitacora después de usar el frontend. Deberías ver un registro por cada alta, modificación, cancelación y consulta, con usuario_id (resuelto automáticamente por Supabase Auth), ip_address y computadora_id.
Sobre computadora_id: en esta demo se genera un identificador provisional en el navegador (ver lib/deviceId.ts), marcado explícitamente como no confiable para fines legales. El reemplazo por un catálogo de dispositivos registrados por TI (la opción recomendada en el documento de arquitectura) es un paso pendiente antes de producción.
Sobre ip_address: la función de bitácora la lee de los headers de la petición HTTP (request.headers expuesto por PostgREST). Esto hay que confirmarlo con el proyecto Supabase real — la disponibilidad exacta de headers puede variar; si ip_address llega vacío en las pruebas, es la primera cosa a ajustar en 0002_bitacora.sql.
Cuando llegue el momento de instalar en el servidor de una agencia (en vez de usar Supabase Cloud), el mismo esquema SQL y el mismo frontend se despliegan contra una instancia de Supabase auto-hospedado (Docker Compose, open source): ver la sección 2 del documento de arquitectura. No hace falta reescribir nada — solo cambia dónde vive la infraestructura.
/incidentes): informe de incidente levantado a partir de un reporte de CAD (hereda su ubicación), con estado, narrativa, mapa, fotos, vínculos y novedades (append-only). Es la base que consumirá la app móvil del policía.mobile/: rediseño "Consola de Operaciones" con Inicio (8 indicadores), Perfil (Mi elemento / Mi unidad / Mi bodycam / accesos / Recordatorios de turno), consulta rápida, Mis incidentes, Tareas asignadas (con respuestas), informe de incidente / accidente / abordamiento con fotos, mapa (Leaflet en WebView), estatus de unidad, Enviar Alerta (pánico) y push de despachos/tareas./bitacora) para supervisor/administrador: consulta con filtros (acción, módulo) de todo el registro de auditoría, con resolución de nombre de usuario./equipo): inventario de armas, radios, bodycams, patrullas y motos, asignable a personal, con fotos.AAAA + II + NNNNNN (año + iniciales del módulo + consecutivo de 6 dígitos, reinicio anual). Se administra en /admin (solo administrador): iniciales por módulo y ajuste de consecutivos./admin): gestión de los foliadores y de usuarios y roles (/admin/usuarios) — el administrador asigna rol (oficial/supervisor/investigador/asuntos_internos/administrador) y activa/desactiva usuarios, con guard anti-autobloqueo.request.headers expone IP y el header de dispositivo; resolver computadora_id con un catálogo de dispositivos registrados por TI.asuntos_internosadministradorapp/components/VinculosPanel.tsx).videos + custodia); señalización por Realtime, TURN Metered; el smartphone se valida/vincula como bodycam tipo Smartphone.enviar_push.indexar-ia / buscar-ia / copiloto.