Indeeptex - Búsqueda inteligente de moda
Inspiración
El proyecto surge de la necesidad de mejorar la experiencia de compra en línea, permitiendo a los usuarios encontrar ropa de manera más intuitiva y visual. Inspirados por el creciente uso de la inteligencia artificial en el sector retail, buscamos una solución que facilite la búsqueda de prendas similares a partir de imágenes y mejore la personalización de las recomendaciones.
Qué hace
Indeeptex permite a los usuarios subir una imagen de una prenda y encontrar productos similares dentro del catálogo de Inditex. Además, ofrece recomendaciones personalizadas basadas en la armonía de colores y la categoría de la prenda, ayudando a crear outfits completos con combinaciones estilísticas adecuadas.
Cómo lo construimos
Construimos Indeeptex combinando un backend en Python con FastAPI y un frontend en React, asegurando rapidez y una interfaz intuitiva para el usuario. La aplicación se conecta con la API de InditexTech para buscar productos similares a partir de imágenes, proporcionando resultados en tiempo real.
Para enriquecer la experiencia, utilizamos web scraping con Selenium para extraer información adicional de los productos y poder mejorar así la experiencia de usuario. Esto nos permite mejorar las recomendaciones, aplicando criterios como armonía de colores, categorías y rango de precios. Además implementamos una base de datos SQLite con un pequeño porcentaje de datos, los cuales fueron scrapeados, para algunas solicitudes de menor latencia (p.e. para el menú interactivo).
Desafíos que enfrentamos
🔐 Autenticación con OAuth2 – Gestionar la autenticación con la API de InditexTech mediante OAuth2 fue un reto, especialmente en la actualización y manejo del token JWT para mantener sesiones activas sin interrupciones.
🌐 Web Scraping en Inditex – La estructura dinámica de la página web y las medidas de protección contra scraping hicieron complejo el acceso a la información. Para resolverlo, utilizamos Selenium y técnicas avanzadas de scraping, optimizando la extracción de datos sin comprometer el rendimiento.
📱 Diseño de una experiencia fluida – Asegurar que la aplicación fuese intuitiva y rápida, sin tiempos de carga excesivos, implicó optimizar las consultas a la API y mejorar la eficiencia en la manipulación de datos en SQLite.
📝 Planteamiento profesional del proyecto – Estructurar la aplicación de manera modular, con una arquitectura escalable y una lógica de recomendación basada en datos reales, fue un reto clave para garantizar su viabilidad y crecimiento futuro.
Logros de los que estamos orgullosos
🕵️♂️ Scraping optimizado – A pesar de las restricciones en la web de Inditex, logramos implementar un sistema eficiente de web scraping con Selenium, permitiéndonos extraer datos clave de los productos y enriquecer nuestra base de datos en SQLite para mejorar las recomendaciones.
⚡ Interfaz fluida e intuitiva – Diseñamos un frontend en React que garantiza una navegación rápida y sin fricciones, optimizando las peticiones al backend para que los usuarios obtengan recomendaciones en tiempo real sin tiempos de carga excesivos.
🔗 Integración exitosa con la API de InditexTech – Superamos los desafíos del sistema de autenticación OAuth2, logrando conectar de forma estable y eficiente con la API para obtener productos similares a partir de imágenes.
🔍 Recomendaciones inteligentes – Implementamos un modelo basado en armonía de colores y categorías, asegurando que los usuarios reciban combinaciones estilísticas adecuadas, enriqueciendo la experiencia de compra.
Lo que aprendimos
🔐 Gestión de OAuth2 y autenticación con APIs externas – Aprendimos a manejar el flujo de autenticación con OAuth2, incluyendo la actualización automática del token JWT, asegurando una conexión estable con la API de InditexTech.
🌐 Técnicas avanzadas de web scraping – Superamos los desafíos del scraping en una web dinámica, aprendiendo a utilizar Selenium de manera eficiente para extraer datos sin ser bloqueados, optimizando el rendimiento y evitando sobrecargar el servidor.
💡 Arquitectura escalable y modular – La separación clara entre backend (FastAPI), frontend (React) y base de datos (SQLite) nos enseñó la importancia de estructurar el código de forma profesional para facilitar futuras mejoras.
Qué sigue para Indeeptex
🎨 Agregar más opciones de personalización en la interfaz para que los usuarios puedan seleccionar sus preferencias de estilo.
🔍 Explorar nuevas formas de búsqueda, como el reconocimiento de texturas y patrones en las prendas.
Log in or sign up for Devpost to join the conversation.