Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
CRM inmobiliario de MVD Prime Real Estate
Translation pending
BusinessGitHub @nvaz96222-pngOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗CRM inmobiliario construido con Next.js 14 (App Router), Tailwind CSS y Supabase.
@supabase/supabase-js + @supabase/ssr)npm install
npm run dev
Las credenciales viven en .env.local:
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
app/
layout.js # layout raíz (fuente + metadata, lang es)
page.js # redirige a /dashboard
login/page.js # Módulo 1 — pantalla de login
(app)/
layout.js # layout protegido (sidebar + guard de sesión)
dashboard/page.js # placeholder (Módulo 5)
components/
Sidebar.js # navegación + datos del usuario + logout
lib/supabase/
client.js # cliente browser
server.js # cliente server (cookies)
middleware.js # refresco de sesión + protección de rutas
getPerfil.js # carga el perfil desde `usuarios` (defensivo)
middleware.js # entrada del middleware
Para que los módulos que leen/escriben datos funcionen:
supabase/rls_fix.sql (ver abajo).supabase/storage_setup.sql
para crear el bucket propiedades y sus políticas (necesario para subir fotos).usuariosAl conectar contra Supabase, todas las tablas devuelven:
code 42P17 — infinite recursion detected in policy for relation "usuarios"
La política RLS de usuarios se consulta a sí misma (patrón típico: "para saber
si el usuario es admin, hago SELECT sobre usuarios"), lo que genera recursión.
Como las demás tablas (propiedades, leads, contactos, etc.) también
verifican el rol consultando usuarios, ninguna tabla se puede leer.
El login NO está afectado (Supabase Auth es independiente), pero ningún módulo que lea datos funcionará hasta resolver esto.
El fix completo y autocontenido está en supabase/rls_fix.sql.
Resumen: el vínculo Auth ↔ usuarios es la columna auth_id (= auth.uid()),
mientras que usuarios.id es el ID interno al que apuntan leads.agente_id,
propiedades.agente_id, interacciones.usuario_id, etc. El fix crea dos
funciones SECURITY DEFINER (mi_rol() y mi_usuario_id()) que leen sin
disparar RLS, y reemplaza las políticas recursivas de usuarios. Arreglando
solo usuarios (la raíz), el resto de las tablas vuelve a leerse.