Inspiration
The idea for this app came from wanting to make something useful that connects to a server and uses an API to get and send information easily
What it does
This app lets users take or select a photo, then sends it to the Inditex Tech API to get clothing recommendations based on the image. The app shows similar clothing items with their brand and price, and users can tap an item to open the purchase link. There's also a favorites feature where users can save items they like to explore similar options later.
How we built it
We started by designing IndiSearch as a mobile-first application using Flutter, allowing us to build for both Android and iOS from a single codebase. The frontend enables users to take or upload a picture of a garment and interact with a clean, intuitive UI to explore visually similar items from Zara.
On the backend, we built a RESTful API using FastAPI, which acts as a bridge between the mobile app and Zara’s product data. Initially, we considered using Azure Blob Storage and other Azure services, but eventually deployed our backend on an Azure Virtual Machine, where we set up Apache2 with HTTPS to ensure secure communications.
To retrieve product images from Zara, we used Selenium to simulate user interaction and scrape the necessary visual data. These images are compared against the user-uploaded photos to find the closest matches. All uploaded images are stored temporarily on the server, and the results are returned in a fast, seamless way to the user.
We integrated credentials from Inditex's developer API to ensure authenticated access, and configured SSL certificates to run the API securely over port 8443.
Challenges we ran into
Learned how to use Flutter, Azure, and Selenium from scratch.
Faced difficulties retrieving the recommended images from the InditexTech API, since it only provides purchase links and accessing the actual images requires credentials.
Spent time setting up development environments and properly configuring the API connection
Accomplishments that we're proud of
Managed to have the app working with all the main features we planned. Accomplished to get the images of the similar clothes from the API through Selenium by scrapping.
What we learned
We have learned how to:
- Build a mobile app using Flutter, with the advantage of it being cross-platform, working for both Android and iOS.
- Create user-friendly and visually appealing interfaces that provide a smooth user experience.
- Utilize Azure Cloud to set up the backend infrastructure. Although we initially planned to use Azure Storage and Azure Services, we ended up using an Azure Virtual Machine.
- Use FastAPI to construct the API and manage the communication between the mobile app and the Inditex API.
- Finally, we learned how to use Selenium to scrape product images from Zara website.
What's next for IndiSearch – An app designed for fashion lovers
- Add support for searching with more than one image at a time.
- Allow users to request new recommendations if they don’t like the current ones.
- Create a shopping cart to save items users are interested in buying.
- Enable direct purchases within the app without redirecting to an external website.
Log in or sign up for Devpost to join the conversation.