Skip to content

Web application created using Flask to help farmers to find out the most suitable crop to grow on their field.

Notifications You must be signed in to change notification settings

JackJJCodes/CROPify

Repository files navigation

CROPify

A Flask-based web application for farmers to find out the crops which can grow perfectly on their fields.

This is my submission for HackDSC-2021.

Motivation:

Traditional cropping patterns are not effective in today's rapidly changing, unpredicted climate and polluted soils. Likewise, every region is unique in relation to each other and has various properties. Your goal is to design a system to predict the most suitable crop for that region, harvest time, plantation pattern and maintenance of that crop for better yield utilizing information like soil quality, weather, resources and other factors that affect crop production.

Keeping this in mind, I have created a web application which will help farmers to identify the best crop that they can grow in their respective fields, keeping in mind all the properties discussed before.

Tech Stack Used:

Data-set Used:

For this application, I used datasets from Kaggle.

Algorithms Used:

I have used a variety of algorithms for this problem, namely Logistic Regression, Decision Trees, SVM, Random Forest to name a few.
For me, Random Forest has worked wonders, as it gave me 100% accuracy. If you want an in-depth explaination on random Forest and how do they work, feel free to checkout this article.

Features Used:

The features used to solve this problem are:

  1. Nitrogen Level: The percentage of nitrogen present in the soil.
  2. Phosphorus Level: The percentage of phosphorus present in the soil.
  3. Potasium Level: The percentage of potassium present in the soil.
  4. Temperature: Temperature of the soil.
  5. Humidity Level: Percentage of humidity of the soil.
  6. PH Value: PH value of the soil.
  7. Rainfall: The amount of rainfall(In mm).

Functionalities of this application:

  1. On putting features like nitrogen %, phosphorus % etc, a farmer could find out which crop will suit his field the best.
  2. The farmer would also know the type of crop to field(for eg; a Rabi, or a Kharif crop). The application will also provide the suitable sowing and harvesting dates for the crops.
  3. After finding out the name of the crop, the farmer could also find out the importance of each feature; so as to get more acquainted with how the different features affect the soil.

To run this on your machine:

  1. Make sure you have Python3, Flask installed.
  2. In your terminal, cd to the folder you got this project in, and type python run app.py
  3. And voila!!

Screenshots:



Demo Video:

Explanation Presentation:

You can access the presentation here

Future Improvements:

  1. An Crop Disease predictor could be added to this application. It could take input in for of an image, and predict if it is diseased or not.
  2. A feature in which after a farmer finds out about the most suitable crop, he could directy call any supplier of the said crop.
  3. This web application is not mobile-first. So if anyone out there could make it mobile-reponsive, that'd be great.

Issues:

  1. The designing part of the web application is in a bit of mess😅.
  2. The UI could be improved.
  3. The web application is a bit slow during rendering. So anything to help speed up rendering would be great.

Hosting:

This application is hosted on Heroku: https://cropify-northkeys.herokuapp.com/
P.S: It will take a ittle time to get started, but it's worth the wait!

About

Web application created using Flask to help farmers to find out the most suitable crop to grow on their field.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published