Inspiration
While living in Canada, you never know what to expect when you go outside. One day you think that you've dressed warm enough, and the cold creeps out of nowhere, leaving you shivering. Or when the local news channel promises that it's super chilly outside, but once you reach work, you realize your clothes are drenched in sweat. People also have individual temperature preferences and someone's "freezing" may translate to someone's "mildly uncomfortable". Our team was tired of often dressing too warm, or not dressing enough for the weather. We wanted to provide a convenient way to ensure that you're dressed perfectly for the occasion every time.
What it does
Rain or Shine is an app that will accurately suggest what clothes you should wear based on the weather outside. Using the Weatherstack API to find the current weather, we used a machine learning model to identify what the perfect outfit would be. Rain or Shine will recommend what to wear, and at the end of the day, you can give feedback if you were too cold, too warm, or just right! This data is then used to make our future predictions more accurate. Additionally. we were able to utilize Google's Vision API to look at what you're wearing and tell you if you're dressed right for the weather.
How we built it
On the front-end, the app is built using swift.
The back-end required us to create a machine learning model using the Scikit-Learn Python library, and an API. The machine learning model was used to predict what types of clothing are suitable for certain weather conditions. a K-Nearest Neighbors model was used with temperature, wind speed, rainfall, and snow fall as features. The API was implemented using a Flask web framework to take HTTP requests. The image detection was done using Google Cloud Vison API, isolating the 8 most likely labels and weighting them according to how well suited they would be for the current weather.
Challenges we ran into
As we were attempting to create a mobile app and incorporate google assistant functionality, our group had to delegate our tasks meaning that many of our group members were working in areas they had no experience in. Additionally, as we were using the Weatherstack API, Python for our ML predictions, Swift for our mobile app, and node.js for the google assistant; there were many different avenues involved, and integrating them together was a large challenge. In the end there wasn't enough time to fully integrate the google assistant application. The major issue with that was taking the input from the GET request sent to the Flask app.
Accomplishments that we're proud of
When we began working on the project, Danial had the idea of integrating the Google Vision API to see what the user is currently wearing, but we initially thought it would be too difficult to do in 36 hours, and that it was a good idea, but out of reach. Being able to accomplish that and have it functioning by the end of the hackathon was what solidified this weekend as a success and made us feel proud of the project we made.
What we learned
As this was either the first or second hackathon for all the members in our group, we came into Hack Western 7 with little experience. Working through this project together we were able to learn new languages and leverage each other's skills to build a program that none of us could have done individually. Learning how to use Tensorflow, Dialogflow, and creating our own API are things that none of us had experience in before, but are much more confident in after Hack Western 7.
What's next for Rain or Shine
The next steps for Rain or Shine are to continue building out our mobile app to include features such as a weekly forecast and give clothing recommendations ahead of time to help plan for trips and vacations. Additionally, as we originally built out our idea as an iOS app, we want to be able to release an android compatible version as well.




Log in or sign up for Devpost to join the conversation.