Weather or Not

Inspiration

When someone who flies out every single week (for work) teams up with someone who loves the outdoors, and another who plans out events frequently, we naturally find ourselves asking the same question: will the weather permit? whether we're planning a trip to DC, a hike upstate, or a graduation party, we have to wonder whether or not the weather will be on our side, and if not when we have to reschedule.

What it does

Weather or Not allows users to create events while accounting for the weather conditions. It's a user-friendly planner, where you can create an event and share it with your invitees in a few clicks. Best part? Weather or Not uses the event location to automatically populate a 'street view' of the event venue with along with the weather forecast. If the weather forecast changes, Weather or Not will push the user a notification to warn them, as the event date gets closer.

How we built it

Whether or not is an Android/iOS mobile app built on React Native and deployed on Blue Mix. We used Google Maps to locate the user's event with a 'street view' and IBM's Weather Company Data to pull the weather forecast. Finally, we used Push Notifications to send periodic weather updates.

Challenges we ran into

Setting up Android Studio and running React Native apps on its emulators was a struggle.
The Weather API would sometimes refuse to authenticate to the Bluemix app credentials.

Accomplishments that we're proud of

Coming up with practical applications of IBM's APIs. Deploying an app on Bluemix for the first time, and using Firebase Cloud Functions.

What we learned

How to set up React Native on Android Studio
Looking up the app credentials in 'Weather Insights', as done in the tutorial examples on Github, is complicated and can lead to an 'unauthenticated' 401 error. A simple JavaScript Get function provides the same functionality with much less pain.

What's next for whether or not

Expand the event planning capabilities of Whether or Not, while keeping the simple calendar-feel of the app.