Inspiration

We were inspired by the crecent growth of sustainable fashion and we wanted to provide an easy-to-use interface for comparing possible purchases and to get recommendations for a better experience finding clothes. Most online shops offer personalized item suggestions based on previous purchases and search history. We believe the customer experience can be enhanced by letting the users show us what they want.

What it does

ClothingCompare helps users find a suitable outfit or other clothing items according to their preferences. The user can either send a picture of a piece of clothing they like, or describe it in a few words and receive personalized suggestions.

The two main objectives of ClothingCompare are:

  • Comparison of different purchase options, with additional metrics such as a calculated sustainability index.
  • Outfit suggestion through image search or a natural language description, using large language model technologies, which help the users to find the items that they're looking for.

How we built it

An important aspect of the development process was the ease of use, both in application deployment and on its usability by the final users. The application is containerized using Docker, exposing up a REST API made with Django for each of the use cases of our application. They are accessed through a web portal developed in React that has been thought with ease-of-use and flexibility in mind. We've also used web-scraping techniques to obtain information that is not directly available on the InditexTech API Products, such as the fabric materials and composition used on the different items. The outfit suggestions are powered by LLaMA 3.1, for text-to-text instructions, and LLaVA, for image-to-text extraction, using the Ollama framework.

Challenges we ran into

We have run into many challenges as we decided to go for a project with topics that we did not have much knowledge about. We have not used REST APIs or developed one in a long time, and we had no previous experience with integrating large language models in an application. The biggest challenge has been the composition of all the small parts in a short time. Developments that were initially thought as simple modules, ended up being more difficult than we initially thought, such as the the outfit recommender using LLaMA. Other problems, such as limitations with the APIs forced us to reconsider and change our plans in order to materialize the ideas and the vision we had. The web-scraper module in Python is one such example, it was created when we realized we needed more information in order to offer better informed recommendations.

Accomplishments that we're proud of

We are proud of delivering a completely encapsulated application in Docker that allows a simple and easy deployment. The main dependencies are the Ollama model, and the Inditex APIs that provide access to the information. Both the API credentials and the model can be specified through environmental values.

We are also very happy with what we achieved, as we chose to take on very different positions from what our normal expertises are. We were able to accomplish all of the requirements that we imposed for our project.

What we learned

We have further our knowledge in many tools, diversifying our abilities and strengthening our weak spots when it comes to software development. As we have explained, we took on positions that we are not used to, so we experienced an steep improvement in the fields that we worked with.

Authors comments:

Óscar Castellanos Rodríguez: I took charge of the main development of the backend powered by Django REST Framework. I had previous experience with Django, so this work allowed me to further delve into its API REST capabilities.

Xián García Veiga: I worked primarily on the integration of the LLMs, contributed some ideas on the design of the front-end and the documentation. Although I've tried Ollama before, I've never used it programatically or integrated it on a project. Getting it to work with GPU acceleration within the Docker container was pretty satisfying!

Sergio Constantino Vidal Miramontes: I worked with the integration with the APIs, which I haven't used in a long time, in the web-scraping, something that I had never done before and support front and back-end development, what I identify as my main weaknesses in coding. I think I've made huge progress in these few hours and I really enjoyed working with my peers in order to make this project work, so overall, ClothingCompare has been a success for me.

Alejandro Fernanadez-Fraga: I focused on building an intuitive and responsive React web app that seamlessly integrates with our backend and the Inditex APIs. From enabling users to upload or capture images to displaying personalized fashion recommendations, my goal was to create a smooth and engaging experience. The UI dynamically updates with search results, sustainability scores, and outfit suggestions, ensuring a seamless journey for users. Excited to bring AI-powered fashion discovery to life!

What's next for ClothingCompare

  • Add more sustainability metrics.
  • Add web-scraping modules for other webs of the Inditex suite.
  • User account system to save outfits and searches.
  • Local image storage service
  • Suppport for allergenic filtering, checking the fabrics and showing clothing that they need.

Built With

Share this project:

Updates