Supermarkets and restaurants are huge sources of food waste in our communities, and farmers are often not able to sell a large amount of their product. At the same time, many communities struggle with food insecurity and hunger - while there are many organizations like the Urban Ministries of Durham or Project Downtown Gainesville that try to alleviate these problems, the problems remain.
We sought to create an app that would allow food suppliers and sellers, sources of food waste, to easily donate excess, unused (but usable) food to organizations that distribute food to low-income residents and contribute to the communities around them.
What it does
Food suppliers or sources of food waste can create supply Tickets, listing how much of specific types of food they have, as well as when it can be picked up and who in the supply organization to contact. Food distributors and organizations can create request Tickets, listing how much of specific types of food they need, as well as when people could drop food off and who to contact.
Our application then matches supply Ticket's food sources with request Ticket's food needs. Any volunteers in the area can look through all the existing Matches and elect to take a Match as a Mission - committing themselves to drive to the supplier, pick up the amount of food the distributor needs, and dropping that food off at the distributor.
How we built it
We used bootstrap to create the front-end application, as well as coding a iOS app for easy access of Tickets/Matches/Missions and Suppliers and Distributors. We used _ Parse _ to manage our database, creating users and tickets and updating tickets into matches and matches into missions. We used the microframework _ Flask _ (in Python) to work with Parse and act as our backend, as well as to take input to our web app. Python scripts dealt with managing data in this environment.
Challenges we ran into
We were collectively using Flask, Parse, bootstrap, and XCode for the first time, which were together very challenging to deal with. Managing the three different use cases and their unique interactions with the app, as well as the Tickets->Matches->Missions pipeline, was a heap of data management.
Accomplishments that we're proud of
We created an app that's directly relevant to our interests, and addresses significant issues dealing with inequality and our use of the environment.
What we learned
- How to use Parse to manage our data through web apps and iOS apps
- How to create basic apps in iOS.
What's next for Neighborfood
- first is creating a robust backend to make the whole website streamlined
- using Google Maps API or Esri to allow anyone looking at a Match to see their current location and the supply Ticket and request Ticket locations
- use the Google Maps Distance Matrix API to have all possible matches be sorted by the least distance a volunteer would need to travel from supplier to distributor
- use the Facebook Login API to make it easy for volunteers to sign up through Facebook accounts
- if this were a funded app, we would use Plaid's API to pay volunteers a small stipend for delivering food to distributors. Or we could even contact suppliers like supermarkets or farmers to buy large amounts of unused food at discounted prices so that their profits are not hurt
- a notification stream for Volunteers, Suppliers, and Distributors, so they can know if knew Matches have occurred, Missions have been finished, Tickets have been deleted, etc.