/wdi-fourth-project

MERN stack application. Help British farmers after Brexit

Primary LanguageJavaScript

ga_cog_large_red_rgb

# 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

Dependencies

  • 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

Backbone

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

TDD

  • Chai
  • Enzyme
  • Mocha
  • Sinon
  • Nyc

Installation

Access online via these links:

GitHub

HEROKU

OR

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 balsamiq.com 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

Achievements

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.

Challenges

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.

Acknowledgments

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