## Inspiration

While talking about things that we wished we had, one of us mentioned that he wished he had an app that told him what to wear outside, as he always forgot to check the weather. Inspired by this remark and a desire to become more fashionable, we decided to create (NAME?) in order to satisfy the needs of people choosing what to wear or wanting to try out new styles of clothing.

## What it does

RizzyFits is a webapp that takes into consideration the current weather and popular fashion styles to choose an outfit suitable for the temperature and that it doesn't look gaudy or awkward. We are targeting males and male clothing. Users can submit their clothes to our app, and it will store it inside an inventory. We then take into consideration all possible outfit choices from the inventory, and choose the best outfits to show the user.

## How we built it

We built the front-end using vue.js For the backend, we used sql to make a database of a user's inventory, hard coded some basic fashion and weather rules, and used machine learning models to analyze which types of clothes fit well together. We also made our own training set of good and bad clothing combinations through scraping multiple online sources. Finally, we got some feedback from outside sources which influenced how we designed our product.

## Challenges we ran into

Initially, we were planning to have the user take a picture of their clothes, and use image segmentation technology to automatically find the clothes in the image and detect the possible attributes. However, we weren't able to get a compatible API with our system. This is because many old APIs ran in Python 2 or used esoteric/outdated libraries, and many others were unreliable since they were trained on a very specific dataset/task. We had to scrap this idea and instead allow the users to input attributes themselves. We also had a lot of difficulty finding suitable datasets, especially ones that combined fashionable outfits along with non-fashionable ones. Since we were targeting male clothing, we had to remove the majority of the images in such datasets, since most models were female.

## Accomplishments that we're proud of

We're really proud of developing our own dataset: we used an innovative strategy of randomizing different clothing combinations, which would almost certainly result in bad outfits, to give bad outfits. Since many online datasets only gave good clothing combinations, by combining these two, we were able to get a full scope on which outfits were good and which were bad. We are also proud of developing and training our own model on this set.

## What we learned

We learned how to adequately plan out our project: coming in, we were quite disorganized, but as we continued, we began drawing out our frameworks, possible strategies/pivot points, and necessary tasks. We also became better at dividing up work and ensuring everyone had a task to be occupied with, throughout the entire project.

As for technical skills, we became better as using SQL, adapting, implementing, and using APIs, reading research papers, searching things up and finding resources, and connecting front end with backend.

## What's next for RizzyFits

We hope to eventually get the image segmentation idea to work, and allow users to upload images of their clothes or wardrobe and automatically create an inventory of it. We also will keep iterating on our models, making them more accurate and rizzy. Finally, we plan on getting user feedback and expand to non-male clothing options.
## Inspiration

Does this sound familiar?
*You wake up with only minutes left before you have to leave the house. But what should you wear? Sometimes, there's too many items in your closet and it can be frustrating to choose between all the possible options. On the other hand, you might have forgotten what kind of clothes are hiding in the back of your closet. In the end, you either pull out a random outfit last minute, or choose to wear the same thing as yesterday.*

Is there a way to a improve our outfit choosing experience?
Coordinate was heavily inspired by the idea of combining tedious routine of choosing daily attire and Alexa with its powerful potential.

## What it does

* Keep track of the items in your closet with images and custom tags
* Swipe through outfit combinations by type, season and style filters
* Not sure what to wear in the morning? Just say, "Alexa, what should I wear today?"

## How we built it

We designed our backend to be serverless, using mlab as our database and stdlib to be an api layer that performs CRUD functions. To query clothing items for weather, season, style or type, we simply implemented a series of tags that our web app supplies to our stdlib function which queries the database. For current weather conditions, we used Local Weather API to find temperature and current conditions. Next we provided a stdlib api endpoint to our alexa interaction model, which, based on user voice input, determines what activities the user will be doing that day and recommends an outfit based on weather, events and season.

For frontend, we built the web interface using HTML, CSS and Vue.js. Currently we have two active pages for the app. The “Outfits” page includes 3 carousels of the user’s apparel collection to display various combinations of tops, bottoms and shoes for consideration. A list of filters are shown on the side to provide options of seasons and styles to choose from. The “Closet” page contains a grid showcase of the user’s entire apparel collection, along with a list of options of clothing types, seasons and styles to display. Both pages also contain a resizeable sidebar that can convert to a top bar for mobile resolutions.

## Challenges we ran into

* For frontend, we were planning to use React.js for outfits, but we had some trouble compiling react-slick carousal.
* for backend, we ran into some issues with caching the database connection for faster access between our alexa app, api layer and db.

## Accomplishments that we're proud of

* For frontend, it's our first time using Vue.js, and we're proud to have created a simple and elegant interface within the span of 24 hours
* It's our first time programming Alexa integrations as well
* Our Alexa integration and db are running live in real time on the cloud

## What we learned

Vue.js, Alexa & stdlib

## What's next for Coordinate

* Upload pictures to recognize clothes and add them automatically to the collection
* Carousal Randomization - **let the app choose what you wear!**
* Send Alexa's choice to the web app for display
## Inspiration

As tech enthusiasts, we constantly faced the dilemma: ***What to wear?*** and ***Do I look on point?*** These questions resonate with many teenagers who, influenced by celebrities and peers with sharp fashion senses, may struggle with self-doubt. Moreover, staying trendy doesn't come cheap, and scouring for the best deals on the latest fashion is a challenge in itself.
And buying isn't simple - **would it look good on me?** is always a question we have.

That's where SnapShop comes in—an intelligent assistant designed to address your fashion queries.

Our personal experiences, like attending hackathons unprepared for the weather or dress code, highlighted the need for a solution. We recall a time at Calhacks where our lack of preparation led us to seek warmth sleeping near a bathroom (and getting woken up by the security)! SnapShop aims to prevent such fashion faux pas by providing weather-appropriate and event-specific style advice, ensuring you feel confident and appropriately dressed for any occasion, while keeping the bills bearable.

## What it does

#### Click an image to Shop:

SnapShop recognizes all the fashion items in the image and tells you what YOU need to buy, to get exactly the same look at the best deals.

Basicaly, image -> best shopping links
[demo link]

#### Ask a query

Say you don't know much about the outfit style you want to go with, for an event
You can ask questions like ***"I'm going to Mumbai, India for a wedding. It's a Gujarati family. I don't want to overdress. What should I wear?"***
And voila, shopwise will generate a list of ethnic wear you should consider buying.
... or **"There's a tech meetup in San Fransisco. The meetup is about AI, I don't know if I should wear formal. I'm going next week. "**\_ (Sent in November)
SnapShop recognises that San Fransisco will be really cold, and that techies usually wear plain t-shirts.

So, it recommends **semi-formal**- buying plain t-shirts and a zip-up jacket, and a pant.
![it works!](https://i.dhr.wtf/r/Clipboard_Nov_12,_2023_at_7.33%E2%80%AFAM.png)

Another prompt:
I'm going to mumbai in the summer, what should I wear?
![it works!](https://i.dhr.wtf/r/Clipboard_Nov_12,_2023_at_7.32%E2%80%AFAM.png)

#### TRY IT ON ME

Users can also try clothes on themselves!
(... Update: Disabled, too costly to run/test)

#### Explore page

On the explore page, users can easily find good deals found by other users.

## How we built it

Here's the tech stack we used:

* OpenAI's new **Vision**
* **ShopWise \* API** that we built for scraping the web to get the best prices for products
* **Flutter** for the Mobile app
* **FastAPI** for python backend
* **Redis**, hosted on Redis Cloud (As DB)
* A Cloudflare Worker as a proxy for Verbwire API
* **VerbWire** to store images on blockchain
* **Firebase** for user authentication

![Our infrastructure](https://i.dhr.wtf/r/infra.jpeg)

With this infrastructure, we still manage to get really fast response times - evern with image and web scraping, we can get perfect response in less than 30 seconds.

## Challenges we ran into

It was really difficult to implement the Vision part effectively, and get the output data in a certain format so that we can properly parse it (Since the vision API doesn't support function calls)

And ofcourse, the indexing and web search part was especially complex. Getting it to work was very, very challenging, as finding the best deals from all over the internet is a very difficult task.

## Accomplishments that we're proud of

We are really proud of making something that we would actually use in our daily lives. Finding the best deals and being fashionable is a real problem that both of us face. Also, the fact that we completed the entire thing, and got it to work, while making it look good and usable is quite the feat.

## What we learned

We learnt a lot from SnapShop. A very important thing that we realised was time management and it's importance in hackathons. Also, we realised that we didn't take pricing into consideration, and after building the try it on me feature, we realised that it was wayyy too expensive to run for us.

## What's next for SnapShop

In the future, we want to make snapshop into a full consumer product. Because we really believe in the idea, we think that monetizing the app wouldn't be that big of a challenge.