February 26, 2021

719 words 4 mins read



A machine learning based website which recommends the best crop to grow, fertilizers to use and the diseases caught by your crops.

repo name Gladiator07/Harvestify
repo link https://github.com/Gladiator07/Harvestify
homepage https://harvestify.herokuapp.com/
language Jupyter Notebook
size (curr.) 75901 kB
stars (curr.) 47
created 2020-09-22
license GNU General Public License v3.0


A simple machine learning based website which recommends best crop to grow, fertilizers to use and the diseases caught by your crops


  • Farming is one of the major sectors that influences a country’s economic growth.

  • In country like India, majority of the population is dependent on agriculture for their livelihood. Many new technologies, such as Machine Learning and Deep Learning, are being implemented into agriculture so that it is easier for farmers to grow and maximize their yield.

  • In this project, I present a website in which the following applications are implemented; Crop recommendation, Fertilizer recommendation and Plant disease prediction, respectively.

    • In the crop recommendation application, the user can provide the soil data from their side and the application will predict which crop should the user grow.

    • For the fertilizer recommendation application, the user can input the soil data and the type of crop they are growing, and the application will predict what the soil lacks or has excess of and will recommend improvements.

    • For the last application, that is the plant disease prediction application, the user can input an image of a diseased plant leaf, and the application will predict what disease it is and will also give a little background about the disease and suggestions to cure it.



I have also published the corresponding code on Kaggle Notebooks.

Built with


Deployment is done using deploy branch

This website is deployed at Heroku

You can access it here

Note: The website may take a minute to load sometimes, as the server may be in hibernate state

How to use

  • Crop Recommendation system ==> enter the corresponding nutrient values of your soil, state and city. Note that, the N-P-K (Nitrogen-Phosphorous-Pottasium) values to be entered should be the ratio between them. Refer this website for more information. Note: When you enter the city name, make sure to enter mostly common city names. Remote cities/towns may not be available in the Weather API from where humidity, temperature data is fetched.

  • Fertilizer suggestion system ==> Enter the nutrient contents of your soil and the crop you want to grow. The algorithm will tell which nutrient the soil has excess of or lacks. Accordingly, it will give suggestions for buying fertilizers.

  • Disease Detection System ==> Upload an image of leaf of your plant. The algorithm will tell the crop type and whether it is diseased or healthy. If it is diseased, it will tell you the cause of the disease and suggest you how to prevent/cure the disease accordingly. Note that, for now it only supports following crops

  • Apple
  • Blueberry
  • Cherry
  • Corn
  • Grape
  • Pepper
  • Orange
  • Peach
  • Potato
  • Soybean
  • Strawberry
  • Tomato
  • Squash
  • Raspberry


  • Crop recommendation system


  • Fertilizer suggestion system


  • Disease Detection system



Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.


You can use this project for further developing it and adding your work in it. If you use this project, kindly mention the original source of the project and mention the link of this repo in your report.

Further Improvements

This was my first big project so there are lot of things to improve upon

  • CSS code is totally messed up :pensive: (some code in file and some inline)
  • Frontend can be made more nicer (PS: I suck at frontend development) :cry:
  • More data can be collected manually via web scrapping to make the system more accurate :monocle_face:
  • Additional plant images can be collected to make the disease detection part more robust and generalized :face_with_head_bandage:
  • Modularized code can be written instead of writing in Jupyter Notebooks (will follow this in upcoming projects)


This project is licensed under GNU (GENERAL PUBLIC LICENSE).


If you have any doubt or want to contribute feel free to email me or hit me up on LinkedIn

comments powered by Disqus