FoodSnap
Inspiration
Our inspiration for this app arised from the amount of food waste generated by people when there is leftover food uneaten at events and gatherings. We were inspired by a solution founded by a team of MIT researchers called the FoodCam.
![]()
We considered to take a more modern approach to this solution by integrating a mobile app into the solution rather than a fixed camera feed.
What it does
By introducing machine learning into the architecture, our application removes a lot of the overhead from leftover-food announcements, and uses mobile location data to automatically generate social media posts.
How it works
When event organizers have leftover food, they can simply launch our app, take a picture of the food, and hit Upload. Our own architecture will then compress that image, save it on our Firebase storage, run the image through a MobileNet TensorFlow Model for image classification, and generate a post description. The system will then submit a post to a pre-configured slack channel.
Social Purpose
On product-launch, FoodSnap can impact our society in two major ways.
- Reduce food waste by reducing the overhead needed to share information about uneaten food in the community
- Reduce undernourishment among the less privileged by connecting with local food banks and distribution centers
Tech
Foodsnap uses a number of open source projects and tools to work properly:
- ReactNative - The entire android app is written using React Native and Javascript!
- node.js - The backend for the application is build with NodeJS
- TensorFlow JS - A TensorFlow implementation for JavaScript
- npm -Essential to JavaScript development as it provided us many tools and libraries that we used to implement within the application.
- std.lib - Used Standard Library's shared library tool to simplify the workflow by connecting SlackAPI with firebase and mobile application
- Yarn - Used to install the tools needed for mobile web development
- Expo - Used Exp's tools and services to build fast deployments of the mobile application straight to our phones to test and experiment
- firebase - Google's firebase database is easy to use and quick to setup without any infrastructure support
And of course FoodSnap itself is open source with a public repository on GitHub.
Installation
FoodSnap requires Node.js v4+ to run.
Install the dependencies using yarn and start the server.
$ cd FoodSnap
$ npm i -g expo-cli
$ yarn
$ expo start
Challenges we ran into
- Initial challenges we ran into was the inexperience of our development team with react-native as only 1 team member had experience with the framework
- 2 other members in the group were completely inexperienced in software development
- We can into an issue where our phones wouldn't be able to connect using expo through eduroam wifi and had to spend several hours troubleshooting until we found a solution by using hotspot through our laptops
Accomplishments that we're proud of
- Obvious societal benefits from adopting the appication
- First successful application built by all 3 team members at a hackathon
- Members in the team gained first hand experience in mobile development by architecture design
What we learned
- Role assignment for team members to best suite their strengths and increase productivity on project
- Android app development
- Learned how to implement API connnections
What's next for FoodSnap
- UI/UX Upgrade
- Post editing feature
- Chatbot functionality
- Integrate API connections to Outlook mailing groups,Twitter followers, relevant Facebook groups
- Add in a functionality that allows the poster of the image to send a message to local food banks to receive the extra food leftover
Thanks for reading our ReadMe. We had lots of fun on this project!
Built With
- node.js-firebase-react
Log in or sign up for Devpost to join the conversation.