Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Developed by Vulpex Software SAS. App web instalable (PWA) para que cada empleada registre los trabajos que realiza (servicio, precio, cliente, método de pago, foto de evidencia), y la dueña pueda ver todo en tiempo real desde donde esté, comparando lo registrado contra lo que la administradora reporta en el cierre de caja diario. Por qué esto ayuda a tu problema concretoREADME 전문 보기 ↗
Developed by Vulpex Software SAS.
App web instalable (PWA) para que cada empleada registre los trabajos que realiza (servicio, precio, cliente, método de pago, foto de evidencia), y la dueña pueda ver todo en tiempo real desde donde esté, comparando lo registrado contra lo que la administradora reporta en el cierre de caja diario.
Sí. Cada persona que usa la app es un usuario real en Supabase Authentication
(con su correo/usuario y contraseña, cifrada — nadie, ni tú, ve las contraseñas),
y a cada uno le corresponde una fila en la tabla profiles con su rol. La
sesión es individual: cada quien ve solo lo que su rol permite, y todo lo que hace
queda ligado a su usuario en la auditoría.
| Rol | Qué puede hacer |
|---|---|
cliente | Se registra sola desde la app, solicita citas y ve el estado de sus citas |
personal | Marca su jornada (entrada/almuerzo/salida), registra sus trabajos, agenda y ve sus citas |
admin | Gestiona al personal: ve la asistencia de todas, agenda y asigna citas, hace el cierre de caja |
superadmin | La dueña: control total — panel con alertas, anular registros, usuarios, precios, todo |
Cuando alguien crea su cuenta, la base de datos le asigna automáticamente el rol
cliente. Desde Usuarios (superadmin) se le cambia el rol y, si es personal,
se marcan sus especialidades. Ya no hay que copiar ningún UUID a mano.
Cada profesional (personal) puede tener una o varias especialidades como
etiqueta — por ejemplo una chica con dos estudios lleva Manicurista y
Estilista a la vez. Importante: la especialidad NO limita qué se le asigna.
A cualquier profesional activa se le puede asignar cualquier servicio o cita, sin
importar cómo esté etiquetada. La etiqueta es solo informativa/organizativa.
personal entra a Mi jornada y marca con un botón: Entrada,
Salgo a almorzar, Vuelvo del almuerzo y Salida.admin y la superadmin ven la asistencia de todo el personal por día en la
pantalla Asistencia (entrada, almuerzo, regreso y salida de cada una).supabase/schema.sql.
Esto crea las tablas, los roles, las políticas de seguridad, los triggers que
bloquean la edición/borrado de registros, y el bucket de fotos.Project URL y anon public key..env.example a .env y pega ahí esos dos valores.Sigue supabase/crear_superadmin.sql. En resumen:
[email protected]Super123# ← contraseña temporal, cámbiala después del primer ingresoUPDATE de ese archivo en el SQL Editor para volver ese perfil
superadmin.Superadmin (sin el correo) y la
contraseña — la app le agrega sola el dominio interno.Desde el Superadmin ya puedes dar de alta al resto del personal:
[email protected] y esa persona entrará escribiendo solo nombre.La app ya trae la opción de que las clientas creen su propia cuenta (botón "Crea tu cuenta" en el login) y soliciten una cita eligiendo el servicio, la fecha y la hora. Esas solicitudes llegan a la pantalla Citas del personal como "Sin asignar", y el admin/dueña le asigna la profesional con un clic. Si prefieres no ofrecer esto todavía, simplemente no compartas el enlace de registro con las clientas (o podemos ocultar el botón). Consúltalo con el negocio y me dices.
Nota Supabase: si quieres que las clientas entren sin tener que confirmar el correo, ve a Authentication → Providers → Email y desactiva "Confirm email". Las cuentas del personal creadas con "Auto Confirm" no dependen de esto.
En el SQL Editor de Supabase ejecuta supabase/seed_servicios.sql:
carga de una vez todo el catálogo real del negocio (Manicure, Sistemas/Extensiones,
Mantenimientos, Retiros y Reparaciones, Pedicura, Pestañas, Retoque de Pestañas,
Depilación, Cejas y un ítem "Adicional" de monto libre) con los precios actuales.
De ahí en adelante no vuelvas a tocar SQL para cambiar precios: entra a la app como dueña, ve a la pantalla Servicios, y edita el precio de cualquier servicio o agrega uno nuevo directamente desde ahí. El seed solo se necesita la primera vez (o si algún día quieres recargar todo el catálogo de una sola vez).
La pantalla Citas permite al personal (empleada, administradora o dueña) agendar una cita con el mismo formato que ya usaban por WhatsApp: manicurista, servicio, fecha, hora, clienta, abono y obsequio.
Además, si una clienta solicita su cita desde la app, aparece aquí como "Sin asignar" y la administradora/dueña le asigna la manicurista con un clic antes de confirmarla.
Al guardar una cita aparece un botón "Enviar por WhatsApp": abre WhatsApp (app o web) con el mensaje ya redactado, listo para mandarlo al celular de la clienta (si registraste su teléfono) o para elegir el grupo del equipo donde pegarlo. No requiere ninguna cuenta ni configuración adicional — funciona igual que cuando ustedes escriben el mensaje a mano, solo que la app lo arma por ustedes y además queda guardado como registro con su abono protegido.
Esto no es una automatización real (la app no envía ni recibe mensajes por sí sola). Si más adelante quieren que el sistema mande recordatorios automáticos o reciba confirmaciones de las clientas sin que nadie toque un botón, existe la opción de conectar la API oficial de WhatsApp Business Platform (Meta). Eso implica que ustedes creen y verifiquen una cuenta de Meta Business (puede tardar días en aprobarse) y asignen un número de teléfono exclusivo para esto — son pasos que solo ustedes pueden hacer porque son su cuenta y su número. Avísame cuando quieran dar ese paso y conecto esa parte.
npm install
npm run dev
Abre la URL que muestra la terminal (por defecto http://localhost:5173).
Esta app tiene dos partes: el frontend (lo que se ve, archivos estáticos que
genera npm run build) y el backend (base de datos + usuarios + fotos, que ya
vive en Supabase). El frontend pesa muy poco (~120 KB), así que cualquier
hosting gratuito lo mueve sin problema. Opciones:
| Opción | Cómo es | Recomendado para |
|---|---|---|
| Vercel | Conectas el proyecto y en 1 minuto queda publicado con HTTPS y dominio gratis. Redepliega solo al actualizar. | La más fácil — mi recomendación. |
| Netlify | Prácticamente igual de simple que Vercel. | Alternativa equivalente. |
| Cloudflare Pages | Gratis, muy rápido. | Si ya usan Cloudflare. |
| Firebase Hosting | Sí, Firebase puede publicarla y NO le queda grande (solo sirve los archivos). | Si prefieren el ecosistema de Google. |
Sobre tu pregunta de Firebase: sí sirve, y no es "muy pesado" — al contrario, Firebase Hosting solo alojaría los archivos del frontend; los datos seguirían en Supabase. Lo que no conviene es rehacer todo el backend en Firebase (Firestore): este sistema hace cuadres de caja, comparaciones y auditoría, que son mucho más sólidos en una base de datos SQL como la de Supabase que en Firestore. Mi consejo: backend en Supabase + frontend en Vercel (o Firebase Hosting si lo prefieren).
Pasos (Vercel, resumido):
npm run build
Sube el proyecto a Vercel (o conecta el repositorio de Git) y pon las variables
VITE_SUPABASE_URL y VITE_SUPABASE_ANON_KEY en su panel. Una vez publicado, cada
persona entra a la URL desde el navegador del celular y elige "Agregar a pantalla
de inicio" — queda instalada como una app normal (PWA), sin pasar por Google Play.
Este es un MVP funcional, no un producto terminado. Antes de depender de él para decisiones de dinero, conviene:
Developed by Vulpex Software SAS.