Frontend moderno desarrollado con React, Vite y Bun para la API de gestión de bebidas.
URL de Producción: https://escabi-frontend.vercel.app
Note
El proyecto está configurado en Vercel. Cada push a main desplegará automáticamente.
- React 18 - Biblioteca de UI
- Vite - Build tool ultrarrápido
- Bun - Runtime y package manager
- React Router - Navegación
- Axios - Cliente HTTP
- Tailwind CSS - Estilos
- Framer Motion - Animaciones
- Lucide React - Iconos
- React Hot Toast - Notificaciones
# Instalar Bun (si no lo tienes)
curl -fsSL https://bun.sh/install | bash
# Clonar el repositorio
git clone <tu-repo>
cd escabi-frontend
# Instalar dependencias
bun installCrear archivo .env en la raíz:
VITE_API_URL=# Iniciar servidor de desarrollo
bun run dev
# Abrir en http://localhost:3000# Construir para producción
bun run build
# Vista previa del build
bun run previewsrc/
├── components/
│ ├── Admin/ # Panel de administración
│ │ ├── AdminNav.jsx
│ │ ├── AdminRoute.jsx
│ │ └── ProductForm.jsx
│ ├── Auth/ # Login y Register
│ ├── Products/ # Productos y filtros
│ ├── Cart/ # Carrito de compras
│ ├── Layout/ # Header y Footer
│ ├── UI/ # Componentes base
│ └── MaintenanceScreen.jsx # Pantalla de mantenimiento
├── context/
│ ├── AuthContext.jsx # Estado de autenticación
│ └── CartContext.jsx # Estado del carrito
├── pages/
│ ├── Admin/
│ │ ├── AdminDashboard.jsx
│ │ ├── ProductManagement.jsx
│ │ ├── ComboManagement.jsx
│ │ ├── OrderManagement.jsx
│ │ ├── UserManagement.jsx
│ │ ├── PaymentSettings.jsx
│ │ ├── ShippingSettings.jsx
│ │ ├── PricingSettings.jsx
│ │ └── SystemSettings.jsx # Modo mantenimiento
│ ├── Home.jsx # Landing page
│ ├── Products.jsx # Catálogo
│ ├── MyOrders.jsx # Historial de pedidos
│ ├── PaymentSuccess.jsx
│ ├── PaymentFailure.jsx
│ └── PaymentPending.jsx
├── services/
│ └── api.js # Cliente API con interceptores
├── App.jsx
├── main.jsx
└── index.css
- ✅ Registro de usuarios
- ✅ Login con JWT
- ✅ Verificación de edad automática (18+)
- ✅ Refresh token automático
- ✅ Logout
- ✅ Catálogo completo
- ✅ Filtrado por categoría
- ✅ Búsqueda en tiempo real
- ✅ Información detallada
- ✅ Gestión de stock
- ✅ Precios dinámicos por zona
- ✅ Creación de combos de productos
- ✅ Descuentos especiales
- ✅ Gestión de stock automática
- ✅ Carrusel de combos en home
- ✅ Agregar combos al carrito
- ✅ Agregar productos y combos
- ✅ Animaciones de cantidad con Framer Motion
- ✅ Input manual de cantidades
- ✅ Ver total con envío
- ✅ Eliminar items
- ✅ Crear pedido
- ✅ Historial de compras
- ✅ Estados de pedido en tiempo real
- ✅ Detalles completos
- ✅ Integración con Mercado Pago
- ✅ Notificaciones por email
- ✅ Números de orden únicos
- ✅ Dashboard con estadísticas
- ✅ Gestión de productos
- ✅ Gestión de combos
- ✅ Gestión de pedidos
- ✅ Gestión de usuarios y roles
- ✅ Configuración de pagos (Mercado Pago)
- ✅ Configuración de envíos (zonas y precios)
- ✅ Configuración de precios dinámicos
- ✅ Modo mantenimiento 🚧
- ✅ Configuración de redes sociales
- ✅ Activación/desactivación desde el panel admin
- ✅ Mensaje personalizable para usuarios
- ✅ Detección automática en tiempo real (polling cada 30s)
- ✅ Bypass automático para administradores
- ✅ Pantalla de mantenimiento profesional
- ✅ Manejo de errores 503
<Button variant="primary" size="md">
Click me
</Button><Input
label="Email"
type="email"
placeholder="tu@email.com"
/><Alert
type="success"
message="Operación exitosa"
/>const { user, login, logout, verifyAge } = useAuth();const { cart, addToCart, removeFromCart } = useCart();El sistema incluye un modo mantenimiento completo que permite bloquear el acceso al sitio para realizar actualizaciones.
-
Acceder al Panel Admin:
/admin/system-settings -
Activar el Toggle:
- Activar "Modo Mantenimiento"
- Escribir un mensaje personalizado para los usuarios
- Guardar cambios
-
Verificar:
- Los usuarios verán la pantalla de mantenimiento en máximo 30 segundos
- Los administradores mantienen acceso completo
- Polling automático: Verifica el estado cada 30 segundos
- Detección de errores 503: Activa automáticamente la pantalla de mantenimiento
- Bypass para admins: Los administradores siempre tienen acceso
- Mensaje personalizable: Configura el mensaje que verán los usuarios
- Pantalla profesional: Diseño moderno con opción de recargar
Como administrador, no verás la pantalla de mantenimiento. Para probarla:
- Activa el modo mantenimiento
- Abre una ventana de incógnito o cierra sesión
- Intenta acceder a la página principal
- Deberías ver la pantalla de mantenimiento 🚧
- Ve a
/admin/system-settings - Desactiva el toggle
- Guarda cambios
- El sitio estará disponible para todos en 30 segundos
-
Conectar con GitHub:
- Ve a vercel.com
- Haz clic en "Add New Project"
- Importa tu repositorio de GitHub
- Vercel detectará automáticamente que es un proyecto Vite
-
Configurar Variables de Entorno:
VITE_API_URL= -
Deploy:
- Haz clic en "Deploy"
- Vercel construirá y desplegará automáticamente
- Cada push a
maindesplegará automáticamente
# Instalar Vercel CLI
npm i -g vercel
# Login en Vercel
vercel login
# Deploy
vercel
# Deploy a producción
vercel --prod-
Dominio Personalizado (Opcional):
- Ve a Project Settings → Domains
- Agrega tu dominio personalizado
-
Variables de Entorno:
- Ve a Project Settings → Environment Variables
- Agrega
VITE_API_URLcon la URL de tu API
-
Build Settings:
- Framework Preset:
Vite - Build Command:
bun run build - Output Directory:
dist - Install Command:
bun install
- Framework Preset:
# Build
bun run build
# Arrastrar carpeta dist/ a netlify.com/dropO usar Netlify CLI:
npm install -g netlify-cli
netlify deploy --prodbun run dev- Servidor de desarrollobun run build- Build de producciónbun run preview- Preview del build
- Fork el proyecto
- Crear rama feature (
git checkout -b feature/amazing) - Commit cambios (
git commit -m 'Add feature') - Push a la rama (
git push origin feature/amazing) - Abrir Pull Request
MIT
Hecho con ❤️ y ☕ en Argentina 🇦🇷