## The Beginning...

How often do college students neglect to bring umbrellas with them? If, in the morning, it looks like it probably isn't going to rain during the day, then why add an extra load to carry around? And even if it does rain later, it can't be *that* much rain...can it? Being college students ourselves, we know the answers to these questions all too well because, let's be honest, we've all got some lazy bones. We don't even like to have to check the weather app in the morning. There are better things we can do with that time, like sleep. So we thought, what if something else did the checking for us? What if we didn't have to scroll through the hourly weather forecast to know if we had to bring umbrellas with us?

## Should I Bring an Umbrella? and You Can Stand Under My Umbrella!

Our website tells users who input their locations whether they need to bring an umbrella with them that day, based on live weather data. However, nobody's perfect, so the second, equally important function of our site, is a matchmaker for umbrella-holders and the umbrella-less. Users can identify themselves as being in possession of an umbrella or in need of one, and the YouSUMU formula will match each user with another user planning on traveling a similar route, such that there will be one umbrella between the two. In addition to its obvious utility, the You Can Stand Under My Umbrella! feature encourages users to meet people who might have crossed paths with them on a regular basis, though they had never interacted before.

## What's It Made of?

The weather information used by You Can Stand Under My Umbrella was pulled from the Yahoo Weather API. Our website's functionality was built with JavaScript, and the UI was designed using HTML5 and CSS3.

## Challenges we ran into

This was our team's first time making a web app, so we had a lot to learn, but had a great time doing so!

## What's Next for You Can Stand Under My Umbrella?

To fully take advantage of this product's features, we'd love to turn YouSUMU into a mobile app or further develop the website in depth and breadth. Login features could allow users to remain in the system, and we think a quota or rating system could go a long way toward making sure no users of our service are simply taking advantage of the generosity of others. We'd like to add notifications that could be set to remind users at a certain time of day if they have to bring an umbrella with them or not. We could also implement a form of location services or sync with user calendars to remove some responsibility from the users. There's plenty of room to grow; with You Can Stand Under My Umbrella, we can keep humanity dry, one umbrella at a time.
## 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.
## Inspiration

As college students learning to be socially responsible global citizens, we realized that it's important for all community members to feel a sense of ownership, responsibility, and equal access toward shared public spaces. Often, our interactions with public spaces inspire us to take action to help others in the community by initiating improvements and bringing up issues that need fixing. However, these issues don't always get addressed efficiently, in a way that empowers citizens to continue feeling that sense of ownership, or sometimes even at all! So, we devised a way to help FixIt for them!

## What it does

Our app provides a way for users to report Issues in their communities with the click of a button. They can also vote on existing Issues that they want Fixed! This crowdsourcing platform leverages the power of collective individuals to raise awareness and improve public spaces by demonstrating a collective effort for change to the individuals responsible for enacting it. For example, city officials who hear in passing that a broken faucet in a public park restroom needs fixing might not perceive a significant sense of urgency to initiate repairs, but they would get a different picture when 50+ individuals want them to FixIt now!

## How we built it

We started out by brainstorming use cases for our app and and discussing the populations we want to target with our app. Next, we discussed the main features of the app that we needed to ensure full functionality to serve these populations. We collectively decided to use Android Studio to build an Android app and use the Google Maps API to have an interactive map display.

## Challenges we ran into

Our team had little to no exposure to Android SDK before so we experienced a steep learning curve while developing a functional prototype in 36 hours. The Google Maps API took a lot of patience for us to get working and figuring out certain UI elements. We are very happy with our end result and all the skills we learned in 36 hours!

## Accomplishments that we're proud of

We are most proud of what we learned, how we grew as designers and programmers, and what we built with limited experience! As we were designing this app, we not only learned more about app design and technical expertise with the Google Maps API, but we also explored our roles as engineers that are also citizens. Empathizing with our user group showed us a clear way to lay out the key features of the app that we wanted to build and helped us create an efficient design and clear display.

## What we learned

As we mentioned above, this project helped us learn more about the design process, Android Studio, the Google Maps API, and also what it means to be a global citizen who wants to actively participate in the community! The technical skills we gained put us in an excellent position to continue growing!

## What's next for FixIt

An Issue’s Perspective

 \* Progress bar, fancier rating system

 \* Crowdfunding

A Finder’s Perspective

 \* Filter Issues, badges/incentive system

A Fixer’s Perspective

 \* Filter Issues off scores, Trending Issues