Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
Reservas 24/7, recordatorios automáticos, pagos y control de caja para peluquerías, barberías, spas y clínicas.
Translation pending
BusinessTypeScript · PythonGitHub @PierreCodexOnlineOwner 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
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 ↗Frontend Next.js. El backend Laravel vive en un repo aparte, backend-sass.
mi-saas/
├── web/ Next.js 16 + MUI 7 (base: plantilla Modernize) + el BFF
└── docs/ Ficha de cada vista + el JSON que espera de la API
📖 docs/README.md — índice de vistas, convenciones de la
API y el contrato JSON de cada pantalla.
📄 docs/api-contract.md — el contrato con
backend-sass. Se edita aquí y solo aquí.
# terminal 1 — backend (repo backend-sass)
php artisan serve # http://localhost:8000
# terminal 2 — frontend
cd web && npm install && npm run dev # http://localhost:3000
web/src| Carpeta | Qué va aquí |
|---|---|
app/ | Solo rutas. Cada page.tsx compone; no lleva lógica de negocio. |
features/ | Un módulo de negocio por carpeta: components/, hooks/, services/, types.ts. |
components/ | UI reutilizable de la plantilla (shared/, forms/, container/). |
layout/ | Sidebar, header, customizer, breadcrumb. El menú vive en layout/vertical/sidebar/MenuItems.ts. |
lib/ | Infraestructura: cliente axios, query client, tipos de la API. |
context/ | Contextos globales (customizer del tema). |
utils/ | Theme de MUI e i18n. |
config/ | Lectura de variables de entorno. |
| Módulo | Ruta | Estado |
|---|---|---|
| Dashboard | / | ✅ construido (KPIs, ventas 7 días, citas de hoy) |
| Clientes | /clientes | ✅ listado paginado |
| Citas | /citas | ⬜ ruta creada, pendiente |
| Calendario | /calendario | ⬜ pendiente |
| Servicios | /servicios | ⬜ pendiente |
| Categorías | /categorias | ⬜ pendiente |
| Empleados | /empleados | ⬜ pendiente |
| Locales | /locales | ⬜ pendiente |
| Caja | /caja | ⬜ pendiente |
| Inventario | /inventario | ⬜ pendiente |
| Reportes | /reportes | ⬜ pendiente |
| Mi Plan | /mi-plan | ⬜ pendiente (banner de prueba ✅) |
/whatsapp | ⬜ pendiente | |
| Configuración | /configuracion, /configuracion/perfil | ⬜ pendiente |
| Soporte | /soporte | ⬜ pendiente |
Los módulos pendientes renderizan components/shared/ModuloPendiente.tsx: la ruta
navega y el menú funciona, pero la pantalla está sin construir.
web/src/features/facturas/ con types.ts, services/facturas.api.ts, hooks/useFacturas.ts, components/.web/src/app/(dashboard)/facturas/page.tsx que solo importa y compone.layout/vertical/sidebar/MenuItems.ts (y en layout/horizontal/navbar/Menudata.ts si usas ese layout).Usa features/clientes/ como plantilla: está completo de punta a punta (servicio → hook con React Query → tabla paginada → página).
La demo completa de Modernize está en mi-modernize-app/packages/typescript/main/src/app/components/.
Cuando necesites una vista nueva (kanban, chat, perfil, e-commerce, gráficas), copia el
componente desde ahí a web/src/features/<modulo>/components/, ajusta los imports
(@/app/components/... → @/components/...) y cambia el mock por tu servicio real.
Sanctum por tokens, detrás de un BFF. El navegador habla con /api/* —el
proxy que corre dentro de Next— y es el proxy quien llama a Laravel con el
Authorization: Bearer. El token vive en una cookie httpOnly que el JS del
navegador no ve.
| Archivo | Qué hace |
|---|---|
web/src/lib/api/client.ts | axios con baseURL: "/api", sin nada de sesión |
web/src/app/api/[...path]/route.ts | el proxy: pone Bearer y X-Tenant |
web/src/app/api/auth/{login,logout}/route.ts | lo único que escribe y borra la cookie |
web/src/lib/auth/sesion.ts | las cookies y la URL del upstream |
web/src/features/auth/services/auth.api.ts | los endpoints, desde el cliente |
Lo que se le pide a Laravel está en docs/api-contract.md § "Base y transporte".