尚未偵測到更新。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.