Skip to content
MERN stack application. Help British farmers after Brexit
JavaScript CSS HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


# WDI Project 4

"Farmer Friends" is a MERN stack application: MongoDB, Express.js, React, Node.js. This application was completed as a paired project. The purpose of the application is to provide a platform upon which farmers can add themselves and post their donations target. In return they can provide a benefit for the user. The user has the ability to adopt farmers, to donate and to choose a product. Upon registering and adopting - they can then contact farmers to organise arrangements.

screen shot 2018-03-07 at 13 20 43 screen shot 2018-03-07 at 13 21 11

Technologies Used


  • Axios
  • Babel
  • Bcrypt
  • Body-parser
  • Express
  • Filestack-react
  • Font-awesome
  • Lodash
  • Mongoose
  • Mongoose-unique-validator
  • Morgan
  • React
  • React-burger-menu
  • React-dom
  • React-router-dom
  • Reactjs-popup
  • Webpack and Webpack-dev-server
  • J


  • HTML5
  • Bootstrap 4
  • SCSS
  • JavaScript (ECMA6)
  • Gulp
  • Node.js
  • Express.js
  • React
  • MongoDB
  • Zsh
  • Git
  • Github
  • Heroku


  • Chai
  • Enzyme
  • Mocha
  • Sinon
  • Nyc


Access online via these links:




Install Locally by downloading or cloning Anish's GitHub Repository or Alin's GitHub Repository

Approach to the Project

Built over five days, this project was a challenging albeit a very rewarding experience. Our aim was to showcase our skills by creating an application that has a good premise, responsive, user-friendly and scalable.

Our planning included wireframing via and labour division in Trello. The team contributions and collaboration was managed using a standard Git flow on Github. We began with a very detailed planning session that enabled us to develop the models and wireframes for the site. This was key for our progress:

screen shot 2018-03-07 at 14 38 14

screen shot 2018-03-07 at 3 42 13 pm

Users will register and sign in using an email address and password that has been salted and hashed using Bcrypt:

screen shot 2018-03-07 at 14 04 19

From here, we have added a "How it works" to guide users through the process of using the site:

screen shot 2018-03-07 at 14 07 13

Once signed in - users have option to refer a farmer, in which they can add a farmer local to them.

Users can search and sort farmers:

screen shot 2018-03-07 at 14 11 53

There are features that will not be rendered subject to the logged in/out status of the user. For example, if the user is logged in, they have the "Find a Farmer near you" feature available, based on geolocation:

screen shot 2018-03-07 at 3 54 13 pm

In addition, users can see more details about farmers, including email and number (if logged in and they have adopted the farmer). They can also make donations. The user have this information available to them on their own profile:

screen shot 2018-03-07 at 13 22 42

screen shot 2018-03-07 at 13 23 03


The number of functionalities implemented over five days would not have been possible at this level without group work. Consuming the Google Maps API, including its places and geometry libraries, autocomplete functionality, and using geolocation to render farmers near an user was a daunting task. However, completing it was one of the highlights of our project. Using version control - a standard Git flow on GitHub - was a very useful practice, working on different branches and merging into develoment and later on into the master branch.


The most notable challenges that we faced were linked to the Google Maps API. Particularly poulating farmers within a certain area, using geolocation and the geometry library. In addition, using React was demanding but it was very rewarding to produce a MERN stack app. We encountered a few code conflicts but as we worked closely together, these were easily resolved. The trickiest part was deciding the models. The reason for this was because we needed to understand the MVP functionality and the next steps for the project.

Next Steps

If we had more time, we would like to implement a farmer profile to produce figures and statistics. Following this, to implement a payment system for the donations and an in-platform messaging app to provide an integrated service.


This project would not have come to fruition without the brilliant support from General Assembly's instructional team. Kudos to Ben, Emily, Guy, and Rane.

Thank you all

You can’t perform that action at this time.