Este proyecto ha sido migrado de MongoDB a Firebase como backend principal, aprovechando Firebase Authentication para la gestión de usuarios y Firestore como base de datos NoSQL.
- 🛍️ Catálogo de productos que permite a los usuarios explorar artículos disponibles
- 🛒 Carrito de compras para seleccionar y gestionar compras
- 💳 Pasarela de pago integrada con MercadoPago
- 🔐 Autenticación de usuarios con Firebase Authentication
- 👤 Gestión de perfiles de usuario
- 📱 Diseño responsivo con TailwindCSS
- React (con Vite)
- Firebase SDK (Authentication, Firestore)
- React Router DOM para el enrutado
- TailwindCSS para estilos
- Axios para llamadas a APIs externas
- useContext y useReducer para manejo de estado
- Firebase Authentication - Gestión de usuarios
- Firestore - Base de datos NoSQL
- Firebase Storage - Almacenamiento de archivos
- MercadoPago - Pasarela de pagos
Crea un archivo .env basado en .env.example:
# Firebase Configuration
VITE_FIREBASE_API_KEY=tu_firebase_api_key
VITE_FIREBASE_AUTH_DOMAIN=tu_proyecto.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=tu_proyectoid
VITE_FIREBASE_STORAGE_BUCKET=tu_proyecto.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=123456789
VITE_FIREBASE_APP_ID=1:123456789:web:abcdef123456
VITE_FIREBASE_MEASUREMENT_ID=G-ABCDEF123
# Currency Configuration
VITE_CURRENCY=CLP
VITE_LOCALE=es-CL
VITE_MINIMUM_FRACTION_DIGITS=0
VITE_MAXIMUM_FRACTION_DIGITS=0
# MercadoPago Configuration
VITE_MP_PUBLIC_KEY=tu_mercadopago_public_key- Crea un proyecto en Firebase Console
- Habilita Authentication con el proveedor de Email/Password
- Crea una base de datos Firestore en modo de prueba
- Obtén la configuración del proyecto en Project Settings > General > Your apps
El proyecto utiliza las siguientes colecciones:
firestore/
├── users/ # Información adicional de usuarios
│ ├── {uid}/
│ │ ├── nombre
│ │ ├── apellido
│ │ ├── pais
│ │ ├── telefono
│ │ ├── email
│ │ ├── createdAt
│ │ └── updatedAt
│
└── products/ # Catálogo de productos
├── {productId}/
│ ├── title
│ ├── description
│ ├── price
│ ├── category
│ ├── imageUrl
│ ├── featured (boolean)
│ ├── createdAt
│ └── updatedAt
# Instalar dependencias
npm install
# Ejecutar en modo desarrollo
npm run dev
# Construir para producción
npm run build
# Preview de la build
npm run preview- ✅ Login con Firebase Authentication
- ✅ Registro con almacenamiento adicional en Firestore
- ✅ Actualización de perfil con sincronización Auth/Firestore
- ✅ Logout y gestión de sesiones
- ✅ Observador de estado de autenticación
- ✅ Obtener todos los productos desde Firestore
- ✅ Obtener producto por ID
- ✅ Agregar nuevos productos
- ✅ Actualizar productos existentes
- ✅ Eliminar productos
- ✅ Filtrar por categoría
- ✅ Productos destacados
- ✅ Interceptor automático para tokens de Firebase
- ✅ Compatibilidad con APIs externas
- ✅ Helpers de autenticación Firebase
## 📦 Deployment
El proyecto puede ser desplegado en cualquier servicio de hosting estático como:
- **Netlify**
- **Firebase Hosting**
Asegúrate de configurar las variables de entorno en tu plataforma de deployment.
## 🔗 Links
- Frontend Deployment: [luisgerardoaquino.netlify.app](https://luisgerardoaquino.netlify.app)