EXTREME EXTENUATING CIRCUMSTANCE: I wrote out a ton of information on our app and implementation in this window. Then I accidently hit refresh during writing. All of the data on what was written was lost, what you see below was initial sketches. I'm going to link to a powerpoint that contains the ideas we fleshed out later as a substitute. I'm really sorry: https://docs.google.com/presentation/d/18CGjCjfTS476ETJAyc0PuPr4Nbm8rffLe92F1e7REF8/edit?usp=sharing

Inspiration

While there are countless apps that help users organize their closets, generate outfits, or recommend clothing, very few address a common and costly issue: impulse purchasing. Shoppers often buy clothing without knowing whether a new piece will actually serve a functional purpose in their wardrobe, complement their existing style, or align with their personal goals—whether that’s budgeting, sustainability, or building a cohesive capsule closet. This app was born out of the need to solve that gap. We wanted to create a tool that goes beyond surface-level styling and offers real value-based insights.

What it does

Our goal is to help users pause before purchasing, assess compatibility, eliminate redundancy, and ultimately make more informed, intentional wardrobe investments. By analyzing how well a new item fits within the user’s current closet and style direction, we empower users to spend smarter—not just less—while curbing wasteful habits and building a closet with purpose.

Users begin by logging their outfits, simply by snapping a photo of their daily fit check. This low-pressure approach makes it easy to document your closet naturally over time, without the stress of uploading every item manually. Each outfit log includes an optional journal entry, where users can rate the outfit, reflect on how they felt wearing it (confidence, comfort, etc.), and track their evolving style.

As your digital closet grows, the app becomes smarter. When you come across a piece you’re thinking of buying—whether it’s a photo, a screenshot, or a product image—you can upload it into the app. We’ll then analyze its compatibility with your wardrobe, assessing how well it fits your current style. Compatibility scores are calculated based on how well the new item blends with your current closet pieces. There will also be a list of items generated for you that are known to pair well with the new piece. We will also check for similar items in your wardrobe, helping you avoid duplicates. Furthermore, we will make recommendations for alternatives from across the web that better match your style and preferences—factoring in your budget, sustainability values, and quality priorities, all set during onboarding.

How we built it

After identifying the problem/idea, we visualized the apps and all the functionalities that we hope to implement. We designed relevant pages that we hoped to see in the app, and also created a flowchart to clarify the user’s usage flow.

After identifying the main priority of the project, which was to calculate comparability of a new item in the context of our personal wardrobe and preferences, we started designing a database, making sure that we have unique identification for each clothing piece and determining what variables are necessary for the formula that we created.

To create the formula, we gather user data directly from individual users–their closet, style categories, friends, and liked posts

In addition to user input, we pulled 3 datasets from Kaggle. For the demo, we used data on 7,000 real products from Nike, Adidas, and H&M. Using those 7,000 real products, we synthesized 10 million outfits. These synthetic data points approximate pulling big data from the web–via large scale image searches–successfully solving the cold start problem! Finally, we use treat the data on clothes and outfits as a market basket recommendation problem. First, we reduced the dimensionality of the item set to make computation feasible. Calculate then co-occurrence matrix for items in all outfits (Jaccard and cosine are too expensive for 10^7 outfits) Run k-means to cluster items by co-occurrence similarity using a high number of clusters. Treat clothes within the same cluster as interchangeable in outfits, reducing the item set from 7000 to effectively 50.

Finally, this model, we invented 3 analytic methods to help the user make good decisions: Compatibility Similar items in your closet Items most compatible with your closet

We built this using the Expo Go Framework, React Native, Firebase for auth and backend/storage, Open AI API, Nativewind CSS for styling. We started with

Challenges we ran into

The biggest challenge was in designing the recommender systems. Outfits are inherently combinatorial, and this plus the large size of testing dataset made most algorithms for comparing and ranking anything break down. I spent a solid 5 hours testing around 10 approaches for reducing the item dimensionality or clustering similarly functional items, but the dataset was simply too large for even highly optimized approaches such as sparse matrices and SVD. In the end, the algos had to be trained on a relatively small slice of the ~100000 data points I pulled from Kaggle and the algo itself had to be constructed from structures with very low time complexity. Even then, testing and debugging was difficult since results took many minutes to compile when forming things like the co-occurrence matrix.

Accomplishments that we're proud of

Despite the adversity on the data science end, we were extremely persistent and eventually found a suitable approach! We also feel genuinely excited about this app and what it can do and see many highly actionable ways we can improve it in the future.

Our team also felt initially intimidated by things like image processing and building a full stack model in such a short amount of time, but we achivned these as well!

What we learned

We learned new frameworks, such as Expo Go, which we had never learned to use extensively other than brief experiences with React Webapp. We learned how to build a backend with Firebase and try out new features like Authentication (especially OAuth signing in with Google). One big thing was designing a more professional UI. Alison and Jasmine had always wanted to try it out Tailwind, and using Native version of Tailwind was both fun to see our ideas come to life, and challenging.

Finally, as a team, we learned how to navigate stress, pressure, and disagreements. This hackathon was a challenging one, especially since we ended up discussing what we wanted to build and didn’t start building until about 9pm (9 hours into the hackathon). There were many technical difficulties which piled on the stress, but we pulled through, communicated, and put our heads down to work hard on the final result that you see demoed here.

What's next for Outfitted

Looking ahead, we envision Outfitted evolving into more than just a smart wardrobe assistant—we want it to become a social space for style inspiration. In the future, users will be able to connect with friends, share their outfit journal entries, and browse each other’s daily looks. By turning outfit logs into posts, Outfitted will create a feed of real, personal style—grounded in authenticity, creativity, and community. Whether it’s finding outfit ideas, discovering new pieces, or just hyping up your friends, we aim to make thoughtful fashion not just personal, but shareable.

Built With

  • css
  • expo-go-framework
  • firebase-for-auth-and-backend/storage
  • for
  • kaggle
  • nativewind
  • open-ai-api
  • python
  • react-native
Share this project:

Updates