GithubHelp home page GithubHelp logo

freshfoodconnect's Introduction

Freshfoodconnect

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.

Getting Started

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
[email protected]
A donor
[email protected]
A cyclist
[email protected]

Guidelines

Use the following guides for getting things done, programming well, and programming in style.

Deploying

If you have previously run the ./bin/setup script, you can deploy to staging and production with:

$ ./bin/deploy staging
$ ./bin/deploy production

Scheduling Pickups

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 - creates ScheduledPickup rows for any active zipcodes without pickups scheduled for the week. This task is idempotent.
  • confirmations:request - sends Confirmation Request emails to donors associated with ScheduledPickups scheduled to occur within the next 48 hours.

Geocoding Locations

To geocode all locations that are missing latitude or longitude values:

$ rake locations:geocode

Contributing

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:

  1. Post a pull request.
  2. 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.

License

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

About thoughtbot

thoughtbot

We love open source software! See our other projects or hire us to design, develop, and grow your product.

freshfoodconnect's People

Contributors

bbwharris avatar heycorwin avatar mygulamali avatar sardaukar avatar seanpdoyle avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.