Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Portal para comisionistas de servicios de valuación. Se despliega en tasa.xgplataform.com.
Estado: base de datos, migraciones por CLI y acceso por código listos. Faltan las pantallas por rol, Notion, correos y el despliegue en Vercel (este README se completa con ellos).
npm install
npm run dev
Abre http://localhost:3100 (3100 y no 3000, para no chocar con Pulso). Necesita .env.local
lleno (ver .env.example). Desde el celular, en la misma red Wi-Fi, entra por la IP de la
computadora (http://192.168.x.x:3100).
En el proyecto, en Authentication:
Sign In / Providers → Email: habilitado, con "Confirm email" activo. "Allow new users
to sign up" se queda encendido: quien decide si alguien entra es correo_en_padron(),
no esta casilla; si se apaga, nadie nuevo puede recibir su primer código.
Emails → Templates → Magic Link: el correo debe mostrar el código, no una liga. Cambia el cuerpo por algo como:
<h2>Tu código para entrar a Tasa</h2>
<p style="font-size:28px;letter-spacing:6px"><strong>{{ .Token }}</strong></p>
<p>Vence en una hora. Si pediste más de uno, solo sirve el más reciente.</p>
Emails → SMTP Settings: apunta a Resend (host smtp.resend.com, puerto 465, usuario
resend, contraseña = una API key de Resend), remitente @xgplataform.com.
URL Configuration:
| Ahora (pruebas) | Al lanzar | |
|---|---|---|
| Site URL | http://localhost:3100 | https://tasa.xgplataform.com |
| Redirect URLs | http://localhost:3100/** | https://tasa.xgplataform.com/** (y quita la de localhost) |
El acceso es por código, no por liga, así que estas URLs casi no se usan; Supabase las pide y las pone en los correos. Si algún día se agrega una liga, ya estarán bien.
npm install
npm test
Corre las migraciones, la semilla y supabase/verificaciones.sql en PGlite (un Postgres que
vive dentro de Node). No toca Supabase ni necesita internet después de instalar.
npm run humo
Entra a tasa.xgplataform.com y abre todas las rutas de app/ (una ruta nueva sin expectativa hace
fallar la prueba). Solo lectura: no llena formularios ni escribe nada. Necesita SUPABASE_SECRET_KEY
en .env.local (sin ella, se salta). Entra a dos organizaciones:
npm run demo
Qué hace cada corrida:
supabase/produccion/demo.sql).xchel+demo-admin, -finanzas, -equipo, -ana, -beto y -carla @arqosuv.com.Qué no toca:
pruebas/demo.test.ts: dos corridas seguidas dejan XG idéntico.Bloqueos (0043):
Para entrar a mano, usa uno de esos correos: el código llega a tu propio buzón por el alias.
Usa Microsoft Edge (channel: "msedge" en playwright.config.ts), el que ya trae Windows.
En esta PC la descarga del Chromium de Playwright se traba a medias, así que no hace falta
correr npx playwright install. En una computadora sin Edge, quita esa línea e instala Chromium.
Tasa usa un solo proyecto de Supabase (plan gratuito). Hoy es de pruebas, con semilla;
antes de lanzar se resetea y queda como producción, sin semilla, en ese mismo proyecto.
TASA_MODO en .env.local dice en qué etapa está.
Una sola vez por computadora:
npx supabase login
Luego copia .env.example como .env.local y llénalo (el archivo dice dónde está cada dato).
| Comando | Qué hace | Modo |
|---|---|---|
npm run db:push | Empuja las migraciones pendientes. La CLI pide confirmar | cualquiera |
npm run db:semilla | Carga la semilla de prueba (una sola vez) y la comprueba | solo pruebas |
npm run db:verificar | Corre las verificaciones; no dejan rastro | solo pruebas |
npm run db:reset-produccion | Borra todo, aplica migraciones sin semilla, pasa a producción | solo pruebas |
Cada comando vuelve a amarrar el proyecto antes de actuar. Las migraciones aplicadas quedan
registradas en el proyecto: db:push solo aplica las que falten.
npm run db:reset-produccion
tasa). Si no coincide, no hace nada.TASA_MODO a produccion en .env.local. Desde ese momento la semilla, las
verificaciones y este mismo reset se niegan a correr: ya hay datos reales.insert into personas (nombre, correo, rol)
values ('<tu nombre>', '<tu correo>', 'super_admin');
Si ya habías entrado durante las pruebas, tu usuario de autenticación sigue existiendo y se
amarra solo la próxima vez que entres.El reset no toca los usuarios de autenticación ni los archivos de Storage. Los usuarios de
prueba (@tasa.test) se pueden borrar desde Authentication → Users.
En el SQL Editor:
select table_name from information_schema.tables
where table_schema = 'public' order by 1;
Deben aparecer 17 tablas: ajustes, alertas, bitacora, cierres, comisiones, comisionistas,
cotizaciones, cuentas_receptoras, historial_estatus, mapeo_estatus, marcas,
niveles, niveles_mensuales, pagos, personas, servicios, solicitudes.
En este orden. Lo marcado como por decidir se pregunta antes de construir.
Panel de administración: pagos por confirmar primero, alertas de Notion, cotizar y emitir, alta de comisionistas, cuentas receptoras, mapeo de estatus y cierre mensual.
Aceptación de términos del comisionista
Solicitud pública por liga del comisionista (después del panel; antes de la tarjeta digital, que la reutilizará)
/s/<slug>. Slug inexistente o comisionista inactivo: "Este enlace no está
disponible", sin formulario.enlace, ligada al comisionista, estatus "Solicitada";
acuse al cliente (sin montos) y aviso al comisionista.security definer con
validación; anon sigue sin permisos sobre tablas.origen hoy acepta portal, tarjeta, referido y admin: hace falta una migración que agregue
enlace.Ya hecho de las reglas de niveles (0023): tasa de bienvenida, arranque y Élite con vencimiento.
| Variable | Dónde | Para qué |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | Vercel | Proyecto de Supabase |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Vercel | Llave pública; el RLS decide qué se ve |
SUPABASE_SERVICE_ROLE_KEY | Vercel (solo servidor) | Únicamente para /api/cron |
CRON_SECRET | Vercel y pg_cron | Protege /api/cron |
NOTION_TOKEN | Vercel | Integración de Notion. Sin ella, se usa el adaptador simulado |
NOTION_DB_TRAMITES | Vercel | Base de trámites (0bcd465f-fd85-4665-8fd7-77212ce0328b) |
RESEND_API_KEY | Vercel | Correos de cambio de estatus |
CORREO_REMITENTE | Vercel | p. ej. Tasa <[email protected]> |
El dominio xgplataform.com ya está verificado en Resend (lo usa Pulso). Si Tasa manda desde una
dirección @xgplataform.com, no hace falta ningún registro DNS nuevo: solo una API key nueva
para Tasa. Además, en Supabase → Authentication → SMTP, apunta el proyecto de Tasa a Resend para
que los códigos de acceso no salgan por el correo de fábrica.
Control de dispositivos (después del panel)
dispositivos: persona, id de dispositivo (cookie firmada de larga duración),
tipo (teléfono/computadora), navegador y sistema, primera vez, último acceso, ciudad
aproximada (sin guardar la IP completa) y estado (activo, pendiente, revocado).x-vercel-ip-city):
no hace falta un servicio externo ni guardar la IP. En la computadora local no existe.Notion (cron cada 15 min + botón "actualizar"), correos de cambio de estatus y PDF de la cotización.
Alta de comisionistas por solicitud — construida (0024): /alta/<org> pública,
RFC obligatorio y CSF, bandeja de aprobación para admin_org, correos por Resend y aviso de
privacidad en /privacidad. Ver docs/paso-a-produccion.md §4b.
Después, despliegue en tasa.xgplataform.com y paso a producción con
npm run db:reset-produccion.
Referidos (después del paso a producción). Vínculo de 12 meses desde el primer trabajo
pagado del referido, editable por vínculo con motivo; el referidor cobra solo si tuvo un
trabajo pagado en los últimos 3 meses; a los 6 meses sin trabajos pierde sus referidos
(aviso a los 4). Escalón 2–5%, un solo nivel, antifraude, tope 30%. Reglas, esquema y lo
por decidir en docs/referidos-y-herramientas.md.
Herramientas y membresías. Consulta catastral, estimación rápida y OV express; cupos
mensuales por nivel y por membresía (Básica $490, Pro $990), adicionales con cargo,
bonificación de la membresía desde Aliado. Primero como pedido que atiende el equipo; las
automáticas después, con su propio plan. Ver docs/referidos-y-herramientas.md.