# 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.
- 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:
OR
Install Locally by downloading or cloning Anish's GitHub Repository or Alin's GitHub Repository
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:
Users will register and sign in using an email address and password that has been salted and hashed using Bcrypt:
From here, we have added a "How it works" to guide users through the process of using the site:
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:
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:
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:
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.
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.