/PCNK

A React Native application aimed at reducing food waste

Primary LanguageObjective-COtherNOASSERTION

Background and Overview

Food waste is an issue pervasive to urban and rural environments alike. In the United States alone, food waste accounts for an estimated 30-40% of food supply. It's common for consumers to purchase more food than they ultimately consume. Forgotten food generally finds its way to the back of the fridge, where it sits until it spoils.

PCNK provides a simple, user-facing tool for those with extra food to give it away to a someone from a known personal network, whether a coworker or friend. Users can take a photo of the food they want to give away and upload it to PCNK with a brief description. The uploader can choose to share the item with a specific group, e.g. coworkers, or a larger network. Users with access to the uploaded item may view it in their "pantry," which displays food currently available to claim.

PCNK's target audience is groups of people who devote significant time within shared locations (e.g. housemates, offices, gym-members, church-goers, etc.)

Users can:

  • Upload images of food to share
  • Claim food they see in a scrollable "pantry"
  • Grant specific groups access to foods they upload

Docs

We browsed through the following documentations for React Native, Firebase and Facebook OAuth:

React Native

https://facebook.github.io/react-native/docs/getting-started.html

React Native Firebase Starter Kit: boilerplate code && environment setup

https://github.com/invertase/react-native-firebase-starter

React-Native-Navigation: routing & navigation solution

https://github.com/wix/react-native-navigation

styling: https://github.com/wix/react-native-navigation/blob/master/docs/styling-the-navigator.md

React-Native-Elements

https://react-native-training.github.io/react-native-elements/docs/overview.html

React-Native-Camera

https://github.com/react-native-community/react-native-camera

Firebase integration for React Native

https://rnfirebase.io/docs/v4.0.x/auth/getting-started

Facebook Auth

https://rnfirebase.io/docs/v4.0.x/auth/social-auth

https://github.com/facebook/react-native-fbsdk

https://developers.facebook.com/docs/ios/getting-started/#sdk-project

Firebase Image Storage

https://github.com/invertase/react-native-firebase/blob/docs_old/docs/modules/storage.md

https://rnfirebase.io/docs/v4.0.x/storage/reference/storage

teaset - React Native UI Library

https://github.com/rilyu/teaset/blob/master/docs/cn/README.md

Credit

Big thanks to these awesome developers. We would have gone through more struggles without their previous exploration && contributions to the tech community.

store, actions, reducers:

reference to code from James Priebe's and June Domingo's projects:

https://github.com/J-Priebe/react-native-facebook-firebase

https://github.com/JuneDomingo/movieapp/tree/feature/similar-movies

Add App Icons and Launch Screens to React Native Apps:

https://medium.com/@scottianstewart/react-native-add-app-icons-and-launch-screens-onto-ios-and-android-apps-3bfbc20b7d4c

Switch between single screen for login and tab based app:

simonedavico's answer: wix/react-native-navigation#2310

Alvin Chau's tutorial: https://github.com/keri4141/React-Native-Navigation-Redux-Example

Change Splash page to login after X seconds of loading

https://stackoverflow.com/questions/44937498/react-native-change-screen-after-x-seconds

Movie app using React-Native-Navigation

https://github.com/junedomingo/movieapp

Firebase Image Storage example

https://github.com/dailydrip/react-native-firebase-storage/blob/master/src/App.js#L43-L69