Inspiration

Introducing Farm to Table - A collaboration platform connecting canadian farmers and volunteers to food banks

What's the problem?

Throughout canada, farmers are dumping large amounts of crop due to the lower demand from the food industry. Farms are forced to continue to grow crops: If demand goes back to normal, they can't risk getting caught behind a crop cycle. This means that as farmers harvest, they are forced to dump their crops, as they're too expensive to ship and there's no demand for them.

Where we fit in

We know farms who's sails are mainly retail are suffering because of the low demand in the food industry. Crops are very expensive to transport for the already struggling farming sector. And we have many people currently sitting at home with nothing to do!

Our Solution

Participating farmers could give this extra produce to food banks accepting fresh produce, or food banks could work to buy shipments directly from farms, but transporting produce is expensive: The farming industry is already in trouble due to low sales, and food banks are struggling with the current covid response.

This is where we step in, offering a service to connect participating farmers, volunteers, and local food banks.

What it does

Farm to Table has 2 use-cases: the Volunteer and Farmer perspectives.

Farmers can sign up through the registration system and enter available times into a calendar.

Volunteers can then browse through the available times of various farms, sorted by distance from the volunteer's location.

After selecting a time, the farmer is notified, a google calendar event is generated for the volunteer and a google maps route is generated and attached to the calendar invite.

How we built it

Backend - Python, Flask

Front End - JavaScript, React

APIs - Google Calendar, Google Maps Geocoding, Google Maps Distance Matrix, Google Maps URL Schemes

Challenges we ran into

So, as with any project, there are always unforeseen challenges. For us, one of the largest challenges was integrating multiple moving parts into on cohesive system. There are multiple different APIs, and services that we leverage, that need to all work harmoniously together. This was especially an issue, when dealing with date time objects that were formatted differently between JavaScript, Python and MySQL. As well as debugging why some SQL commands / queries were failing was challenging! Finally, while intuitive, we were new to using the google maps Geocoding and Distance Matrix APIs, so a lot of initial debugging was involved!

Accomplishments that we're proud of

We managed to get a prototype of Farm to Table working end to end! The system is fully functional and all the features that we planned on initially including in this project have been implemented.

What we learned

  • Using Google Maps URL schemes to generate routes is a lightning fast, lightweight, and cross-compatible way of communicating directions from point A to point B (and in our case, from point A to B to C)
  • Google Calendar API is a fast way to coordinate events across multiple participants
  • Integrating in react-big-calendar with custom event objects

What's next for Farm to Table

A separate interface for food banks! food bank collaboration could include support for displaying available pick up times, showing which types of produce each food bank accepts. Finally, adding in additional route tracking information , so that volunteers can give more accurate updates to farmers and food banks.

Share this project:

Updates