尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 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".