Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
원격 기술지원으로 현장 모바일과 사무실 콘솔을 실시간 영상통화 연결, 포인터·그리기·정지·사진·녹화·메모·AI 보고서 제공
El soporte técnico remoto que ve lo que tú ves. Videollamada en vivo entre el celular de campo y la consola de oficina: puntero, dibujo, congelado, fotos, grabación, notas y reporte con IA.
비즈니스HTML · PLpgSQLGitHub @josepinedo07온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Soporte remoto por video (WebRTC): enlace/QR, puntero, dibujo, congelar, foto, grabacion, compartir pantalla
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
En vivo: (dominio propio, comprado vía Vercel; www redirige al apex con 308). El alias fieldlens-nu.vercel.app sigue funcionando. GitHub Pages también sirve la videollamada, pero sin el reporte IA porque no corre funciones serverless. Soporte visual remoto: el teléfono del técnico de campo se convierte en los ojos del técnico de oficina. El de oficina abre la consola, genera un enlace / QR y lo comparte. El de campo lo abre en su teléfono, permite la cámara y quedan conectados. Desde la consola el de oficina puede:README 전문 보기 ↗
En vivo: https://fokoremote.com (dominio propio, comprado vía Vercel;
www redirige al apex con 308). El alias fieldlens-nu.vercel.app sigue
funcionando. GitHub Pages https://josepinedo07.github.io/foko/ también sirve
la videollamada, pero sin el reporte IA porque no corre funciones serverless.
Soporte visual remoto: el teléfono del técnico de campo se convierte en los ojos del técnico de oficina.
El de oficina abre la consola, genera un enlace / QR y lo comparte. El de campo lo abre en su teléfono, permite la cámara y quedan conectados. Desde la consola el de oficina puede:
El de campo puede voltear la cámara, encender la linterna, silenciar el micrófono y tocar la pantalla para señalar de vuelta. Antes de conectar pasa por un chequeo de sistemas (cámara / micrófono / red). No necesita cuenta — solo abre el enlace.
La consola de oficina sí requiere cuenta: cada empresa tiene su propio login, su logo/nombre (aparece en la consola, la invitación y el reporte) y puede tener varios técnicos de oficina (dueño + compañeros con un código de invitación).
Ver BRAND.md (wordmark, favicon, tipografía de marca) y
DESIGN.md (sistema de tokens, componentes y reglas de
movimiento) — instrumento de precisión, no app de consumo: oscuro por
defecto, un solo color de acento (que siempre significa "mira aquí"),
tipografía mono para telemetría.
js/rtc-config.js.RTCPeerConnection.getStats() — nada simulado.python3 server.py
getUserMedia solo funciona sobre HTTPS (o localhost), así que hace falta TLS:
python3 server.py --https
La primera vez genera un certificado autofirmado (.cert/, necesita openssl).
El servidor imprime la URL para el teléfono, p. ej. https://192.168.0.102:8443/.
En el teléfono el navegador avisará que el sitio "no es seguro" → Avanzado →
continuar (es tu propio certificado). A partir de ahí la cámara funciona.
La videollamada + anotaciones son 100% estáticas (sirven en cualquier host con
HTTPS: GitHub Pages, Netlify, Vercel…). El asistente de notas IA necesita la
función serverless api/report.js, que solo corre en un host con funciones
(Vercel o Netlify Functions), no en GitHub Pages.
GEMINI_API_KEY — tu clave de Google AI Studio (queda solo en el servidor).SUPABASE_URL — la URL del proyecto de Supabase (ver abajo).SUPABASE_SERVICE_ROLE_KEY — la service role key del mismo proyecto
(Settings → API en el dashboard de Supabase). Nunca va en el frontend.REPORT_MODEL (opcional) — por defecto gemini-3.5-flash-lite.git push si conectas el repo de Git
(ahora mismo el deploy en producción se hace a mano con vercel deploy --prod).En la consola: ⚙ Ajustes → activar "Asistente de notas IA". Ya no hace falta ningún código de acceso manual — el reporte usa la sesión real de la cuenta (ver siguiente sección).
Nota sobre dominios en Vercel: el proyecto vive bajo el slug antiguo
fieldlens(renombrarlo requiere entrar a la cuenta). El alias público que funciona hoy esfieldlens-nu.vercel.app. Se creó tambiénfoko-jpc-hambeo.vercel.app, pero Vercel le aplica su pantalla de login ("Vercel Authentication") aunque el dominio principal esté sin protección — hay que desactivarla también para ese alias en Project Settings → Deployment Protection, o pedir un dominio propio.
El login, las empresas y el logo sí funcionan en cualquier host estático
(Netlify Drop, GitHub Pages, Cloudflare Pages) — hablan directo con Supabase
desde el navegador, no necesitan api/. Lo único que exige un host con
funciones serverless (Vercel/Netlify Functions) es /api/report, porque ahí
vive la API key de Gemini. server.py no se usa en producción en ningún caso.
La P2P directa suele fallar detrás de VPN o CGNAT. El proyecto trae unos TURN
públicos de prueba en js/rtc-config.js; si van lentos,
saca una clave gratis en https://dashboard.metered.ca/ y reemplázalos.
Cada empresa es una fila en companies; cada usuario (técnico de oficina) es
una fila en profiles que apunta a una empresa, con rol owner (la creó)
o member (se unió con el código de invitación). Todo con Row Level Security:
un usuario solo puede leer/escribir su propia empresa. El logo vive en un
bucket de Storage público de solo lectura (logos).
supabase/schema.sql
— se puede volver a correr entero, todo usa if not exists / or replace.supabase/schema.sql.js/supabase-client.js (ya están puestas las de
este proyecto; para uno nuevo, reemplázalas ahí — son públicas por
diseño, RLS es lo que protege los datos).SUPABASE_SERVICE_ROLE_KEY (ver arriba).login.html para el paso de "revisa tu correo".login.html →
"Unirme con código".index.html Selector de rol
login.html Iniciar sesión / crear empresa / unirme con código
remote-expert.html Consola del técnico de oficina (requiere sesión)
field-tech.html Vista móvil del técnico de campo (viewer + systems check)
css/tokens.css Tokens de diseño — única fuente de verdad de color/tipo/espacio
css/design-system.css Componentes (viewer, HUD, toolkit, tray, systems check, toast…)
js/webrtc-manager.js Conexión WebRTC (PeerJS): cámara, mic, pantalla
js/ar-canvas.js Capa de anotación sincronizada
js/ui.js Toast, HUD con estadísticas reales, systems check
js/notes-assistant.js Transcripción por voz + llamada al reporte
js/rtc-config.js Servidores ICE (STUN / TURN)
js/supabase-client.js Cliente de Supabase (auth + empresa)
js/logo.js Wordmark reutilizable (<Logo>)
api/report.js Función serverless: valida sesión, genera el reporte con Gemini
supabase/schema.sql Esquema de base de datos (tablas, RLS, RPCs, storage)
brand/ Assets de marca (favicons, wordmark) — ver BRAND.md
server.py Servidor estático para desarrollo local
DESIGN.md Sistema de diseño de producto
BRAND.md Identidad de marca
Ya hay cuentas reales por empresa (Supabase Auth + RLS) — eso ya no es el parche que era. Lo que falta para cobrar de verdad: medir uso por empresa (cuántos reportes/minutos), un plan/límite, y Stripe para el checkout y la suscripción. No está incluido.