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
SGS — Gestión de Seguridad Privada
Translation pending
BusinessTypeScript · PLpgSQLGitHub @jorgeroncOnlineOwner 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
Sistema de Gestión de Seguridad
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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/ (`Read the full 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.