Inspiration
Our project stems from the everyday struggle of not knowing what to wear—especially when it comes to dressing for specific occasions. We wanted to create a solution that not only saves time but also helps us get more value out of the clothes we already own. Our goal was to build something we’d actually use ourselves, so we focused on solving a real, personal problem. By making outfit planning more convenient and less stressful, we hope our app can simplify the daily routine for anyone with a closet full of clothes and “nothing to wear.”
What it does
Our web app allows users to take pictures of their wardrobe and store the items in a database. Users can then prompt the app with an occasion or style preference, and the app will suggest a complete outfit including a top, bottom, shoes, and accessories using only the clothing they own. If an item is dirty or unavailable, users can mark it as such, and the app will automatically exclude it from outfit suggestions. The app saves these generated outfits and gives them the option to favorite or rate the outfits for later use.
How we built it
Using Typescript, Next.js, tRPC, Tailwind CSS, PostgreSQL, and Drizzle ORM as our main tech stack, along with create-t3-app binding them all together, we were able to complete our code with a high level of productivity and could quickly implement our core functionality.
The core functionality of our product is the ability to create outfits based on the available items in the wardrobe, and is enabled through the classification of wardrobe items. This classification of wardrobe items and matching to an outfit is done through the latent space of OpenAI's Ada-002 embedding model. In order to classify an item, we prompt GPT4o-mini with the picture to generate a name, a description, and a list of stylistic tags, which may include the formality, the color, and any other things that the model thinks is important. We embed this list of tags using Ada-002 and store this 1536-dimensional vector into our database. We also store an image of the clothing item into an S3 bucket, and use AWS CloudFront to retrieve images on the client side.
When an outfit is prompted, a request is sent to GPT4o-mini to create a list of stylistic tags representing the ideal outfit. This list gets put into the latent space using the same embedding model as used with tags. We then sort our wardrobe using a cosine similarity function to compare the outfit vector with each item. Finding the top shirt, top pants, top shoes, and any similar accessories will provide us with the outfit. After creating a title and description for the given outfit generated by GPT4o-mini, we store all of the data into the database and return a successful response to the user.
Entire Tech Stack: Typescript, Next.js, tRPC, Tailwind CSS, Neon DB with PostgreSQL, Drizzle ORM, AWS S3, AWS CloudFront, OpenAI GPT4o-mini, OpenAI Ada-002 embedding model.
Challenges we ran into
Throughout the contest we can into multiple issues. We had a few bugs in react that took us a bit to solve. We also had issues with prompting OpenAI for the outfit creation process. Having half of our group their be first time hackathon it was also difficult to get started but once that happened we had little issues after that.
Accomplishments that we're proud of
We're really proud of how our UI came out. We're still overjoyed with the functionality of course, but the UI definitely does stand out to us, which was one of our main focuses. We wanted good functionality, but with a clean, simple, and aesthetic look to it, which we believe we did accomplish with the front end of our project.
What we learned
We learned how to be able to communicate effectively so that we were able to delegate tasks effectively and efficiently. We also learned how to set goals for our project so that we had multiple people working on separate things at the same time to complete our project with the time constraint given.
What's next for Fitted
We would love to turn fitted into a mobile app, which would allow for very easy photo taking and uploading, and overall be very convenient for the user. This would also allow us to expand our user base by a lot. In addition, we would like to implement a feature that would give the user recommendations on how to improve their closet, and provide links to purchase said products.
Built With
- ai
- amazon-web-services
- cloudfront
- drizzle
- next
- node.js
- openai
- postgresql
- react
- s3
- tailwind
- trpc
- typescript
Log in or sign up for Devpost to join the conversation.