尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证ZaHub: sistema para pizzerías con app de clientes (Expo/React Native) y panel de administración (React + Vite). Pedidos, menú, personalización de pizzas y seguimiento de estados. Demo interactiva sin backend.
翻译准备中
正在加载完整 README。
查看完整 README ↗El algoritmo del antojo perfecto — sistema para una pizzería: app para clientes y panel de administración.
| App cliente | Panel admin |
|---|---|
ZaHub nació como dos proyectos separados (ZaHub-Cliente y ZaHub-Admin) que comparten el mismo backend en Supabase. Aquí viven juntos:
| Módulo | Para quién | Tecnología | Funciones |
|---|---|---|---|
cliente/ | Clientes | Expo + React Native + NativeWind (iOS, Android y web) | Promociones, menú, Crea tu Za (tamaño, masa, borde e ingredientes), carrito, confirmación de pedido y seguimiento de pedidos |
admin/ | Equipo (admin, cajero, cocina) | React 19 + Vite + Tailwind 4 | Dashboard, pedidos con cambio de estado e historial, catálogo de pizzas, ingredientes, usuarios y roles, tema claro/oscuro |
👉 https://cabrales16.github.io/ZaHub/
No necesita backend: los datos viven en tu navegador y puedes restaurarlos con «Restaurar datos». Las dos apps comparten los mismos datos, así que puedes ver el ciclo completo:
PENDIENTE. Pásalo a HORNEANDO, EN_CAMINO… y revisa su historial.| Perfil | Correo | Contraseña |
|---|---|---|
| 📱 Cliente | [email protected] | demo1234 |
| 🧑🍳 Administrador | [email protected] | demo1234 |
| 💵 Cajero | [email protected] | demo1234 |
| 🔥 Cocina | [email protected] | demo1234 |
Cada pantalla de inicio de sesión tiene botones de acceso rápido. También puedes registrarte como cliente con tu propio correo.
| Inicio | Menú | Detalle |
|---|---|---|
| Crea tu Za | Carrito | Mis pedidos |
| Pedidos (admin) | Detalle de pedido |
|---|---|
| Pizzas | Usuarios |
ZaHub/
├── admin/ # Panel web (Vite + React + Tailwind)
├── cliente/ # App móvil/web (Expo Router + NativeWind)
├── shared/mock/ # Backend simulado compartido por las dos apps (demo)
├── landing/ # Página de entrada de la demo
├── docs/ # Capturas
└── .github/workflows/deploy-demo.yml
Las dos apps hablan con Supabase a través de supabase-js. En modo demo ese cliente se sustituye por shared/mock/mockSupabase.js, que implementa el subconjunto de la API que usan (consultas con filtros, orden y relaciones anidadas, inserciones, actualizaciones, borrados y autenticación) sobre localStorage.
VITE_DEMO_MODE=true (admin) o EXPO_PUBLIC_DEMO_MODE=true (cliente); sin esas variables se usa Supabase como siempre.zahub-demo-db-v1) pero cada una guarda su propia sesión.productos) se deriva de pizzas_base: lo que se edita en el panel se refleja al instante en la app.HashRouter (#/admin/...) y la app cliente se exporta como sitio estático, para que funcione en GitHub Pages sin redirecciones.Requisitos: Node.js 20+.
# Panel admin
cd admin
npm install
npm run dev:demo # demo sin backend → http://localhost:5173/ZaHub/admin/
npm run dev # contra Supabase (necesita .env)
# App cliente
cd cliente
npm install
npm run web:demo # demo sin backend, en el navegador
npm start # contra Supabase (Expo Go / emulador)
Para que admin y cliente compartan datos en local deben servirse desde el mismo origen (como en Pages). En desarrollo cada servidor usa un puerto distinto, así que cada app tendrá su propia copia de los datos.
admin/.env.example a admin/.env y cliente/.env.example a cliente/.env, con la URL y la anon key de tu proyecto.usuarios_app, pizzas_base, ingredientes, promociones, productos, carrito_items, carrito_item_ingredientes, pedidos, pedido_items, pedido_item_ingredientes e historial_estado_pedido.El workflow deploy-demo.yml compila las dos apps en modo demo, arma el sitio (landing/ + admin/ + cliente/) y lo publica con el pipeline de Jekyll de GitHub Pages en cada push a main.
main (o lanza el workflow desde Actions).Las rutas base (
/ZaHub/admin/y/ZaHub/cliente/) asumen que el repositorio se llamaZaHub; si usas otro nombre cámbialas enadmin/vite.config.jsycliente/scripts/demo.js. Jekyll ignora las carpetas que empiezan por_;landing/_config.ymlincluye_expo/, donde Expo deja su JavaScript.
Seguridad
usuarios_app no se podía cargar, el panel asumía rol ADMIN: ahora no concede acceso. Además bloquea a los usuarios desactivados..env del cliente estaba versionado: ahora se leen de variables de entorno (hay .env.example) y .env está en .gitignore.Errores corregidos
console.log): ahora crea la línea de carrito (o suma la cantidad)./(tabs)/orders, una pantalla que no existía: se creó «Mis pedidos» con el estado de cada pedido.Alert.alert no funciona en web, así que los avisos y la confirmación del pedido nunca aparecían: se añadió un reemplazo que usa confirm/alert en web y el Alert nativo en móvil.App.jsx (una plantilla sin usar) y se dejó el lint sin errores.productos y el panel editaba pizzas_base; en la demo ambos están conectados.Proyecto con fines educativos.