Fresh Food Connect is an on-demand food donation and delivery web-application focused on increasing access to healthy food and reducing food waste. Gardeners or other folks with extra food sign up on the app and request for their excess to be picked up and delivered by the app administrators. The founding administrators, Groundwork Denver, Denver Food Rescue, and Denver Urban Gardens, three nonprofits in Denver, CO, use bicycles, trailers and youth employees to make pick up the excess food. Then, the food is delivered to free grocery programs and low-cost farmers markets in low-income neighborhoods.
The app has three user types, admins, cyclists, and gardeners. Gardeners can sign up for food delivery and set their locaiton as well as indicate how much and what type of food they have for delivery. Cyclists then log on to the app to view the upcoming pick ups and update a delivery report as each pick up is completed. Admins can set the upcoming food pick up times and create cyclist and admin profiles. These profiles work together to give gardeners an easy way to make sure their home-grown food doesn't go to waste while increasing access to local produce in low-income areas.
The initial version built to pilot the program was originally written by Code For Denver. The following repositories contain that code: API and Front End
The production version was built by thoughtbot, inc and was funded via a grant from the Rose Foundation.
After you have cloned this repo, run this setup script to set up your machine with the necessary dependencies to run and test this app:
% ./bin/setup
It assumes you have a machine equipped with Ruby, Postgres, etc. If not, set up your machine with this script.
After setting up, you can run the application using Heroku Local:
% heroku local
Local development has access to the following user roles:
- An administrator
- admin@example.com
- A donor
- donor@example.com
- A cyclist
- cyclist@example.com
Use the following guides for getting things done, programming well, and programming in style.
If you have previously run the ./bin/setup
script,
you can deploy to staging and production with:
$ ./bin/deploy staging
$ ./bin/deploy production
Our staging and production applications are deployed to Heroku.
We use the Heroku Scheduler addon to run our scheduling-focussed Rake tasks on a nightly basis.
Each night, the scheduler will run the following tasks:
pickups:schedule
- createsScheduledPickup
rows for any active zipcodes without pickups scheduled for the week. This task is idempotent.confirmations:request
- sends Confirmation Request emails to donors associated withScheduledPickup
s scheduled to occur within the next48
hours.
To geocode all locations that are missing latitude
or longitude
values:
$ rake locations:geocode
If you'd like to contribute a feature or bugfix: Thanks! To make sure your fix/feature has a high chance of being included, please read the following guidelines:
- Post a pull request.
- Make sure there are tests! We will not accept any patch that is not tested. It's a rare time when explicit tests aren't needed. If you have questions about writing tests for Fresh Food Connect, please open a GitHub issue.
Please see CONTRIBUTING.md
for more details on
contributing and running test.
Fresh Food Connect is Copyright © 2016 Ground Work Denver, Denver Food Rescue and Denver Urban Gardens. It is free software, and may be redistributed under the terms specified in the MIT-LICENSE file
We love open source software! See our other projects or hire us to design, develop, and grow your product.