Una aplicación Angular moderna para una tienda de tenis en línea con un asistente de chat inteligente (conversacional en español).
- 🛍️ Catálogo de productos: Explora tenis con filtros avanzados (marca, talla, género)
- 🛒 Carrito de compras: Agrega/quita ítems con estado reactivo (Angular Signals)
- 🤖 Asistente de Chat con IA: Basado en Firebase AI Logic (Gemini)
- 🎨 Tema Material vibrante: Paleta Azure (tokens de Material 3) aplicada a toda la UI
- 🧠 Function Calling: La IA puede buscar productos, gestionar el carrito y dar recomendaciones
- 📱 Diseño responsive: Enfoque mobile‑first con Angular Material
- 🎨 UI moderna: Interfaz limpia con Material Design 3
- 👟 Catálogo extenso: 24 productos, tallas US 6‑12 para hombre, mujer y unisex
- 💬 Conversación natural: Español con contexto (ChatSession)
- Angular 20+ con Standalone Components
- Angular Material para la UI
- Angular Signals para estado reactivo
- TypeScript para tipado seguro
- SCSS para estilos
- Firebase AI Logic (Gemini 1.5 Flash) para el asistente conversacional
- Firebase para despliegue y hosting
- Theming Material 3 con
$azure-palettey tokens del sistema (--mat-sys-*) - Function Calling for AI-driven actions
- Node.js 18+ and npm
- Angular CLI (
npm install -g @angular/cli)
- Clone the repository:
git clone <repository-url>
cd quality-kicks-store- Install dependencies:
npm install- Run the development server:
ng serve- Open your browser and navigate to:
http://localhost:4200
src/
├── app/
│ ├── core/
│ │ ├── models/ # TypeScript interfaces
│ │ │ ├── product.model.ts
│ │ │ └── cart.model.ts
│ │ ├── services/ # Business logic services
│ │ │ ├── product.service.ts
│ │ │ ├── cart.service.ts
│ │ │ └── ai.service.ts
│ │ └── mocks/ # Mock data
│ │ └── products.mock.ts
│ ├── features/
│ │ ├── layout/ # Layout components
│ │ │ ├── layout.component.ts
│ │ │ ├── header.component.ts
│ │ │ └── footer.component.ts
│ │ ├── products/ # Product features
│ │ │ ├── product-list.component.ts
│ │ │ └── product-card.component.ts
│ │ └── cart/ # Shopping cart
│ │ └── cart.component.ts
│ ├── shared/
│ │ └── components/
│ │ └── chat-assistant/ # AI Chat Assistant
│ │ └── chat-assistant.component.ts
│ ├── app.component.ts
│ ├── app.routes.ts
│ └── app.config.ts
└── styles.scss # Global styles
El asistente está impulsado por Firebase AI Logic (Gemini 1.5 Flash) y entiende lenguaje natural en español. Haz clic en el botón azul del chat para empezar.
Primera configuración:
- Sigue las instrucciones en
FIREBASE_SETUP.md - Configura tus credenciales de Firebase en
src/environments/environment.ts - La IA funcionará automáticamente con conversaciones inteligentes
Modo de respaldo:
- Si Firebase AI no está configurado, el sistema opera con comandos basados en reglas
- Las funcionalidades permanecen, pero sin conversación natural
Lenguaje natural (con Firebase AI):
- "Hola, necesito tenis para hacer ejercicio"
- "Busco algo cómodo para caminar, talla 9"
- "¿Cuál es el tenis más barato que tienes?"
- "Muéstrame opciones para mujer"
- "Agrégalo al carrito por favor"
- "¿Qué marcas tienes disponibles?"
Comandos basados en reglas (respaldo):
- "mostrar tenis Adidas talla 9"
- "buscar Nike para mujer"
- "agregar Nike Air Max talla 10 al carrito"
- "mostrar mi carrito"
- "limpiar carrito"
ng build --configuration productionLos artefactos se generan en el directorio dist/.
npm install -g firebase-toolsfirebase loginfirebase init hostingConfiguración:
- Selecciona "Use an existing project" o crea uno nuevo
- Directorio público:
dist/quality-kicks-store/browser - Single Page App: Sí
- Builds automáticos: Opcional
ng build --configuration production
firebase deployTu app quedará disponible en: https://<tu-project-id>.web.app
# Start development server
ng serve
# Build for production
ng build --configuration production
# Run unit tests
ng test
# Run linting
ng lint
# Generate a component
ng generate component component-name
# Generate a service
ng generate service service-nameThe application includes 24 brand-new sneakers from top brands:
- Nike: Air Max 90, Air Max 270, Air Force 1, Air Jordan 1, React Infinity, Air Max 97, ZoomX Vaporfly
- Adidas: Ultraboost 22, Stan Smith, Superstar Platform, NMD_R1, Ultraboost Light
- On: Cloud 5, Cloudstratus
- New Balance: Fresh Foam 1080, Fresh Foam X 880
- Converse: Chuck Taylor All Star, Chuck 70 High Top
- Puma: Suede Classic, Cali Sport
- Vans: Old Skool
- Asics: Gel-Kayano 29
- Sizes: US 6-12 (tallas americanas)
- Gender: Hombre (14 products), Mujer (10 products), Unisex (3 products)
- Condition: All products are brand new (todos nuevos)
- Stock: Real-time stock availability with low stock indicators
- Currency: Honduran Lempira (HNL) - Exchange rate: 1 USD = 26.30 HNL
- Prices: Range from L 1,840.70 to L 6,574.70
- Get all products (24 sneakers)
- Filter by brand, size (US 6-12), and gender (hombre/mujer/unisex)
- Search products by keyword (name, brand, description)
- Stock availability checking
- Add/remove products with stock validation
- Update quantities dynamically
- Calculate totals in real-time
- Reactive state management with Angular Signals
- Cart item counter badge
- Gemini 1.5 Flash model for fast, intelligent responses
- Function Calling for executing actions (search, add to cart, etc.)
- Conversation History for context-aware interactions
- Natural language understanding in Spanish
- Intelligent product recommendations based on user needs
- Automatic fallback to rule-based system if AI unavailable
- Cost-effective: ~$1-5/month for typical usage
- Chrome, Edge, Firefox, Safari (Material 3 + Angular 20)
- Haz fork del repositorio
- Crea una rama de feature (
git checkout -b feature/nueva-funcionalidad) - Commit de cambios (
git commit -m 'Agrega nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
Este proyecto está licenciado bajo MIT.
Para dudas o problemas, abre un issue en el repositorio.
Importante: Para habilitar el asistente conversacional completo, debes configurar Firebase AI Logic:
- Follow the setup guide:
FIREBASE_SETUP.md - Configure credentials: Update
src/environments/environment.tswith your Firebase project details - Enable Firebase AI Logic: Habilita las APIs necesarias en Google Cloud Console
- Start chatting: The AI will automatically use Gemini for intelligent responses
Sin Firebase AI:
- La app funciona con comandos basados en reglas
- Todas las funcionalidades están disponibles
- No habrá conversaciones en lenguaje natural
- Tema vivo basado en
$azure-palette(primary y secondary) - Uso extensivo de system tokens:
surface(-container),primary(-container),secondary(-container),tertiary,outline-variant, etc. - Chat con burbujas diferenciadas (usuario: secondary; asistente: surface con borde) y campo de entrada ancho con
matSuffix.
Cost: Typical usage costs ~$1-5/month with Gemini 1.5 Flash
- Angular Team for the amazing framework
- Material Design team for the beautiful UI components
- Google Firebase & Firebase AI Logic por las capacidades de IA
- Unsplash for product images
Quality Kicks - Los mejores tenis al mejor precio 👟 🤖
Construido con ❤️ usando Angular 20 + Firebase AI Logic