A Project Report On Crop Propound System

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 61

A Project Report on CROP PROPOUND SYSTEM

Submitted in partial fulfillment of the requirements for the award of the

degree of

BACHELOR OF TECHNOLOGY
In
COMPUTER SCIENCE AND ENGINEERING

Submitted by
B.DIVYA BHARATHI 18KA1A0533
S.NAFEERA 18KA1A0512
N.REVATHI 18KA1A0517
P.ASWANI 19KA5A0503

Under the esteemed guidance of

G.THAPASWINI, M.Tech.

Assistant Professor (Adhoc)

Department of CSE

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING


JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY ANANTAPUR
COLLEGE OF ENGINEERING, KALIKIRI CHITTOOR
(Dist.), ANDHRA PRADESH – 517234

2018-2022

i
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY ANANTAPUR
COLLEGE OF ENGINEERING, KALIKIRI
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

CERTIFICATE

This is to certify that the project report entitled “CROP PROPOUND SYSTEM” that is
submitted by
B.DIVYA BHARATHI 18KA1A0533
S.NAFEERA 18KA1A0512
N.REVATHI 18KA1A0517
P.ASWANI 19KA5A0503
in partial fulfilment of the requirements for the award of degree of Bachelor of Technology (B. Tech)
in Computer Science and Engineering (CSE) from Jawaharlal Nehru Technological University
Anantapur College of Engineering, Kalikiri during the academic year 2018-2022.

Project Guide Head of the Department

G.THAPASWINI,M.Tech., Mrs.SHAIK NASEERA, M.Tech., Ph.D.,


Assistant Professor (Adhoc), Professor & Head Of Department,
Department of CSE, Department of CSE,
JNTUACE, JNTUACE,
Kalikiri, Chittoor (Dist.) Kalikiri, Chittoor (Dist.)

Internal Examiner External Examiner

ii
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY ANANTAPUR
COLLEGE OF ENGINEERING, KALIKIRI
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

DECLARATION

We B.DIVYA BHARATHI (18KA1A0533), S.NAFEERA(18KA1A0512), N.REVATHI


(18KA1A0517), P.ASWANI(19KA5A0503) hereby declare that the project work entitled “Crop
Propound System” is a genuine work carried out by us under the guidance of
G.THAPASWINI, M.Tech., Assistant Professor(Adhoc), Department of CSE, in partial
fulfillment for award of the degree of “BACHELOR OF TECHNOLOGY” from JNTU,
Anantapur.
The results embodied in this project work have not been submitted to any other university
or institute for the award of any degree.

B.DIVYA BHARATHI 18KA1A0533


S.NAFEERA 18KA1A0512
N.REVATHI 18KA1A0517 P.ASWANI
19KA5A0503

iii
ACKNOWLEDGEMENTS

An endeavor over a long period can be successful only with the advice and support of
many well-wishers. The task would be incomplete without mentioning the people who have
made it possible, because is the epitome of hard work. So, with gratitude, we acknowledge all
those whose guidance and encouragement owned our efforts with success.
We are thankful to Dr.S.VENKATA SATYANARAYANA, M.Tech., Ph.D., Principal
JNTUACE, Kalikiri for his kind and timely help offered to us in the projection of our studies and
execution.
We are very much obliged to our beloved Dr.SHAIK NASEERA, M.Tech., Ph.D., HOD
and Professor, Department of Computer Science & Engineering, JNTUACE, Kalikiri for the
moral support and invaluable advice provided here for the success of the project.
We wish to express grateful acknowledgment to our guide G.THAPASWINI, M.Tech,
Assistant Professor (Adhoc), Department of Computer Science & Engineering, JNTUACE,
Kalikiri for her inspiring guidance and continuous encouragement throughout the project.
Finally, we would like to extend our deep sense of gratitude to all the staff members, and
friends, and last but not least we are greatly indebted to our parents who inspired us under at all
circumstances.

PROJECT ASSOCIATES

B.DIVYA BHARATHI 18KA1A0533


S.NAFEERA 18KA1A0512
N.REVATHI 18KA1A0517
P.ASWANI 19KA5A0503
ABSTRACT

Agriculture plays a vital role in the socio-economic fabric of India. Failure of farmers to decide
on the best-suited crop for the land using traditional and non-scientific methods is a serious issue for a
country where approximately 58 percent of the population is involved in farming.

iv
Sometimes farmers failed to choose the right crops based on the soil conditions, sowing season,
and geographical location. This results in suicide, quitting the agriculture field, and moving towards

urban areas for livelihood.


To overcome this issue, this project is proposing a system to assist the farmers in crop selection
by considering soil parameters and temperature. Furthermore, precision agriculture is being
implemented by deploying a machine learning algorithm, one of the advanced technologies in crop
prediction. K Nearest algorithm, a supervised learning algorithm puts forth the way to achieve it. It is
evolving in developing countries that concentrate on site-specific crop management.

v
CONTENTS
ACKNOWLEDGEMENT………………………………………………………………………
iv
ABSTRACT..................................................................................................................................v
LIST OF FIGURES..................................................................................................................viii

LIST OF
ABBREVIATION…………………………………………………………………….ix
Chapter1
INTRODUCTION…………………………………………………………………...01
Chapter 2 LITERATURE
SURVEY…………………………………………………………..02
2.1 RESEARCH ON CROP PROPOUND
SYSTEM…………………………………....02
Chapter 3 PROBLEM
IDENTIFICATION…………………………………………………...06
3.1 EXISTING
SYSTEM……………………………………………………………….06
3.1.1 DISADVANTAGES OF EXISTING
SYSTEM………………………………..06
3.2 PROPOSED SYSTEM………………………………………………………………06

3.2.1 ADVANTAGES OF PROPOSED


SYSTEM…………………………………..07
3.3 FEASIBILITY
STUDY……………………………………………………………..07
3.3.1 ECONOMICAL
FEASIBILITY……………………………………………...07
3.3.2 TECHNICAL FEASIBILITY…………………………………………………
08
3.3.3 SOCIAL FEASIBILITY……………………………………………………….08
3.4
REQUIREMENTS…………………………………………………………………..08
3.4.1 HARDWARE AND SOFTWARE
REQUIREMENTS………………………...08

vi
Chapter 4 SYSTEM
DESIGN………………………………………………………………….11
4.1 DESCRIPTION……………………………………………………………………….11
4.2 UML DIAGRAMS…………………………………………………………………...12
4.2.1 CLASS
DIAGRAM…………………………………………………………….12
4.2.2 USECASE
DIAGRAM……………………………………………………….13
4.2.3 SEQUENCE
DIAGRAM……………………………………………………..15
4.2.4 COMPONENT DIAGRAM……………………………………………………
16
4.2.5 DEPLOYMENT
DIAGRAM……………………………………………….......17

Chapter 5
IMPLEMENTATION……………………………………………………………..18

5.1
MODULE…………………………………………………………………………...18
5.2 TECHNOLOGIES
USED…………………………………………………………..19
5.2.1 PYTHON…………………………………………………………………19
5.2.2 FLASK…………………………………………………………………...26

5.2.3 JUPYTER NOTEBOOK…………………………………………………29


Chapter 6 TESTING……………………………………………………………………………
32
6.1 UNIT TESTING……………………………………………………………………..34
6.2 INTEGRATION TESTING………………………………………………………….34
6.3 ACCEPTANCE
TESTING…………………………………………………………..35 Chapter 7
CODE………………………………………………………………………………..40
Chapter 8
OUTPUT……………………………………………………………………………..42
Chapter 9 CONCLUSION……………………………………………………………………..46
vii
Chapter 10 FUTURE
WORK………………………………………………………………….47
Chapter 11
REFERENCES…………………………………………………………………….48

viii
LIST OF FIGURES

Fig.4.2.1 Class Diagram 13


Fig.4.2.2 Use case Diagram 14
Fig.4.2.3 Sequence Diagram 15
Fig.4.2.4 Component Diagram 16
Fig.4.2.5 Deployment Diagram 17 Fig.4.3 System Architecture 18

ix
LIST OF ABBREVIATIONS

SRS - SOFTWARE REQUIREMENTS SPECIFICATION

STRS - STAKEHOLDER REQUIREMENTS


SPECIFICATION

UML - UNIFIED MODELLING LANGUAGE

SYRS - SYSTEM REQUIREMENTS SPECIFICATION

x
xi
xii
CROP PROPOUND SYSTEM

CHAPTER-1

INTRODUCTION
Agriculture is one of the ancient businesses. Agriculture suffers due to various factors such as
climatic change, unpredictable rainfall, pollution, lack of manpower, etc. Due to high population growth
create a great demand for agriculture products. To feed the world population, it is necessary to increase
agriculture production. To increase agriculture production, researchers utilizing various technologies
such as sensor networks , image processing, remote sensing, machine learning, etc. Machine learning is
a fast-growing technique, which makes machines are intelligent also machines able to work without any
instructions. The machine learning techniques are applied in various applications such as health care,
smart cities, health care, automobile, etc. Now a day’s various machine learning algorithms are used in
agriculture to solve various issues. In this paper, we studied applications of machine learning in
agriculture field. The machine learning algorithms are used in various real-world agricultural
applications; we classified these applications as machine learning in-plant monitoring, machine learning
in soil analysis, machine learning in detection (or) prediction process in agriculture, machine learning in
animal monitoring. The various agricultural applications of machine learning techniques are discussed.

In this project, I present a website in which the following application is implemented Crop propound system.

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

CHAPTER 2 LITERATURE SURVEY

2.1 RESEARCH ON CROP PROPOUND SYSTEM

Zhao, Yi, Noemi Vergopolan, Kathy Baylis, Jordan Blekking, Kelly Caylor, Tom Evans, Stacey
Giroux, Justin Sheffield, and Lyndon Estes. "Comparing empirical and survey-based yield forecasts in a
dryland agro-ecosystem."
In [1] paper investigates the author discuss about Zambia’s Crop Forecast Survey (CFS) and its
limitations. In this proposed method at the end of season harvest the data is collected. The data about
crop yield and area of production is collected from the actual harvest from households in real time.

Department of CSE, JNTUACE Kalikiri 1


CROP PROPOUND SYSTEM

Using this data, a forecast model for yield is developed using Extreme Gradient Boost. To test the
accuracy values RMSE is used. From results it is found that CFS accuracy is less compared to gradient
boost.
Khaki, Saeed, and Lizhi Wang. "Crop yield prediction using deep neural networks."
In [2] this paper, the corn yield prediction is made using deep neural network model from
environment and genotype data. The dataset consist of 148,452 samples for training. Yield performance
is calculated using yield and check yield using deep neural networks. Neural network in his paper is
also used for weather prediction. The model accuracy is tested using RMSE 11 % error for single
hidden layer with 300 hidden neurons.
Y. Weng, X. Wang, J. Hua, H. Wang, M. Kang and F. Wang, "Forecasting Horticultural Products
Price Using ARIMA Model and Neural Network Based on a Large-Scale Data Set Collected by Web
Crawler,"
In [3] The paper compares the accuracy in forecasting the price of agricultural products using
Auto ARIM A model and back propagation (BP) network method. A web crawler technology is also
used to get prediction of price for the crop commodities. . The data is collected about the cucumber
crop. The data obtained is normalized in order to scale it down to (0, 1) range. The dataset is consist of
linear data on which ARIMA algorithm is applied for forecasting. The ARIMA model does not consider
the rapid changes in the prize of the crop that arises due to instability in seasons. In order to consider
such changes BP network model is applied to the data. BP network model contains set of input, hidden
and output layers. The number of output layers is increased in order to check whether the price
prediction for long- term is accurate or not RNN model used to process sequential data is applied on the
normalized data to obtain the price. The results show that the foresting for monthly, weekly and daily
price of crop ARIMA does well if it is for the short term but accuracy is not proper the for long term.
So, BP neural network is used for such issue which gives high accuracy.
Verma, Akanksha, Aman Jatain, and Shalini Bajaj. "Crop Yield Prediction of Wheat Using Fuzzy
C Means Clustering and Neural Network. "
In [4] Agribusiness is the foundation of the Indian economy. The agrarian yield is fundamentally
relies upon climate conditions like temperature, rainfall, biomass. The agriculturists essentially require
an advantageous incite to anticipate the future yield profitability and an investigation to help the
farmer’s to enlarge harvest creation in their products. Despite the fact that a great deal of research has
been led for building up the choice emotionally supportive network for agriculturists, the greater part of
the examination center around the harvest administration, edit illness administration and product yield
estimating. The agriculturist's harvest determination at the prior stage is a standout amongst the most

Department of CSE, JNTUACE Kalikiri 2


CROP PROPOUND SYSTEM

critical components since proper product choice at the prior stage will help ranchers to enhance edit
administration and product yield. The results of Fuzzy C-Means is used for implementation which is
using clustering method. It gives less error rate in terms of degree of membership means which data
points have higher probability or how much similarity is there in between the data points.
N. Gandhi, O. Petkar and L. J. Armstrong, "Rice crop yield prediction using artificial neural
networks,"
In [5] the study was done for Maharashtra zone for wheat, rice, jowar, bajra, pulses the main aim
was to achieve increased crop yield. The dataset parameters include min and max temperature,
evapotranspiration, area under production, crop yield for previous years. Artificial neural network is
used for prediction with multilayer perceptron. For the analysis of dataset Weka tool is used and
confusion matrix was generated using multilayer perceptron. The three-layer feed forward network is
used for training the dataset and authors could achieve the accuracy of 97.54% An ANN with 10 fold
cross validation function is used for subset of dataset. For training and testing the linear data linear
regression is used and for nonlinear data ANN is used. The accuracy of the model is obtained using
RMSE, RAE.
Noureen, S. Atique, V. Roy and S. Bayne, "Analysis and application of seasonal ARIMA model in
Energy Demand Forecasting: A case study of small-scale agricultural load,"
In [7] In this paper, price forecasting for Mysore district is done. As farmers are not getting the
expected price to improve this problem price forecasting is done using ANN with feed forward back
propagation scheme. The attributes include pressure, temperature, soil type, humidity, seed variety.
MSE is used to evaluate the accuracy of the model. The proposed model is compared with decision tree,
genetic algorithm. The accuracy with proposed model is high.

Mohan, Pushpa, and Kiran Kumari Patil. "Deep Learning Based Weighted SOM to Forecast
Weather and Crop Prediction for Agriculture Application. "
In [8] the proposed method mainly aims at creating a system which uses the new generation high
computing technologies for detection of plant diseases. By using the fast GPU’s and embedded
processors we can considerably increase the accuracy and the rate of output results in image
classification. Also, by making this image classification available locally on mobile phones, it will be
very useful for farmers. The main method the paper focuses on is using the CNN with ‘n’ number of
hidden layers, which would normally take days to train, and then training it on the new faster processors
and CPU’s. We are also able to observe that the model does considerably better than using other
conventional methods.

Department of CSE, JNTUACE Kalikiri 3


CROP PROPOUND SYSTEM

Konstantinos P. Ferentinos, “Deep Learning Models for Plant Disease Detection and Diagnosis”
In [9] the proposes a deep learning technique using a java algorithm for classification of paddy
leaf diseases, which uses a feedback loop system in the post processing step. The main methodology
mainly includes five steps-Image acquisition, Pre-processing, Segmentation, Feature Extraction and
Classification. And the feedback loop system takes the values from the classification back to the
Segmentation unit. The Segmentation is based on k-means clustering. This gives an enhanced deep
learning method where the error is reduced considerably. The method is formally called the DNN_JOA
method of image classification.
S. Ramesh, D. Vydeki, “Recognition and Classification of Paddy Leaf Diseases using Optimized
Deep Neural Network with Jaya Algorithm”
In [10] it proposes a method of 10-fold cross validation method strategy which will give a
higher accurate output then one with the straightforward CNN with 10 or more hidden layers. This also
saves computational time and memory to save the ‘n’ weights achieved from training the image data.
They use the standard BP-algorithm and then a SVM and then to finally decrease the SME by using the
particle swarm optimization (PSO). CNN can be designed using Alex NET or Google NET or the
standard libraries in Python like TensorFlow and Keras or in MATLAB or Simulink.

Yang Lu, Shujuan Yi, Nianyin Zeng, Yurong Liu, Yong Zhang, “Identification of Rice Diseases using
Deep Convolutional Neural Networks”

In [11] K-Means Clustering method is used for the segmentation of pomegranate leaf disease.
The image of the leaf is segmented using K-Means Clustering method. The dataset is a mixture of
different healthy and unhealthy images of leaves. The image data is first preprocessed and then
segmented into three sub-images each containing different features. The diseased leaves are detected
after this step. Image processing and segmentation of images into three sub-images each makes it easy
for the detection of diseases associated with it. The process used in this paper does not provide a great
accuracy rate. The sub-images obtained after segmentation are not clear enough to help detect diseases.
Arda Aydin, An l ay, Burak Polat, “Image Analysis Applications in Plant Growth and Health
Assessment”
In [12] potato leaf diseases detection and classification are based on neural networks and make
use K-Means Clustering for segmentation. Various leaves of healthy and unhealthy types are used as the
dataset. Algorithms are developed to extract more than 24 features. The gray level co-occurrence matrix

Department of CSE, JNTUACE Kalikiri 4


CROP PROPOUND SYSTEM

(GLCM) is used to extract texture features. To identify whether the leaf is diseased or not and to
classify the diseases a back propagation neural network (BPNN)- based classifier is made use of. The
features are used to train the network which is hence used to detect and classify the leaf samples. The
classification has an accuracy of more than 92%. This method is quick, automatic and accurate for leaf
disease detection and classification.
T. N. Shaikh, Dr. S.M. Mukane, “Segmentation of Pomegranate Leaf for Detection of Disease
Using Image Processing”
In [13] proposes a method for the detection of diseases in cotton crop leaves. The image data is
preprocessed, segmentation is carried out using thresholding method which takes RGB input image
resulting from KMeans Clustering method. Pixels values of red, green and blue bands are read
separately.
Feature extraction makes use of GLCM methodology.
Girish Athanikar, Priti Badar, “Potato Leaf Diseases Detection and Classification System
In [14] The diseased portion of the plants are identified clearly in the green band in the thresholding
method. Using this method, only the region of interest (diseased area) can be extracted.
Diseases can be classified using Euclidean classifier.

CHAPTER- 3

PROBLEM IDENTIFICATION

System analysis is the act, process and profession of studying an activity typically by
mathematical means in order define its goals purpose and to discover operations and procedures
for accomplishing them most efficient.

3.1 EXISTING SYSTEM

• The previous existing techniques gives low accuracies and also lacks the robustness because of
higher computational time.
• This system describes a model that applies Precision Agriculture (PA) principles to small, open
farms at the individual farmer and crop level, to affect a degree of control over variability.
• The comprehensive objective of the model is to deliver direct advisory services to even the
smallest farmer at the level of his/her smallest plot of crop.

Department of CSE, JNTUACE Kalikiri 5


CROP PROPOUND SYSTEM

3.1.1 DISADVANTAGES OF EXISTING SYSTEM

➢ The main challenge faced in the agriculture sector is the lack of knowledge about the
changing variations in climate. Each crop has its own suitable climatic features this can be
handled with precision farming techniques. ➢ The existing system is costly to maintain, or not
easily accessible.

➢ Despite many solutions that have been recently proposed, there are still open challenges in
creating a user-friendly application with respect to crop recommendations.

3.2 PROPOSED SYSTEM

• The proposed system is implemented using machine learning which is one of the applications of
Artificial Intelligence that allows the systems to learn and evolve automatically without explicitly
programmed by a programmer.
• Many researchers are researching this field to assist the farmers in the crop selection.

• In the proposed system the environmental parameters are being considered to recommend a suitable
crop to the user.

• Machine learning algorithms were implemented to prevent the impacts from the water stress in

plants and have given a set of decision rules used in plant’s state prediction.

3.2.1 ADVANTAGES OF PROPOSED SYSTEM

➢ With proposed system we can easily predict the best suitable crop.
➢ The cost involved in maintaining the proposed system is less.
➢ Suggesting the best suitable crop results in increasing the crop yield rate.

3.3 FEASIBILITY STUDY

The feasibility of the project is analyzed in this phase and business proposal is put forth with
a very general plan for the project and some cost estimates. During system analysis the feasibility
study of the proposed system is to be carried out. This is to ensure that the proposed system is not a
burden to the company. For feasibility analysis, some understanding of the major requirements for
the system is essential.
Three key considerations involved in the feasibility analysis are

Department of CSE, JNTUACE Kalikiri 6


CROP PROPOUND SYSTEM

Economical Feasibility
Technical Feasibility
Social Feasibility

3.3.1 ECONOMICAL FEASIBILITY

This study is carried out to check the economic impact that the system will have on the
organization. The amount of fund that the company can pour into the research and development of the
system is limited. The expenditures must be justified. Thus the developed system as well within the
budget and this was achieved because most of the technologies used are freely available. Only the
customized products had to be purchased.

3.3.2 TECHNICAL FEASIBILITY

This study is carried out to check the technical feasibility, that is, the technical requirements of
the system. Any system developed must not have a high demand on the available technical resources.
This will lead to high demands on the available technical resources. This will lead to high demands
being placed on the client. The developed system must have a modest requirement, as only minimal or
null changes are required for implementing this system.

3.3.3 SOCIAL FEASIBILITY

The aspect of study is to check the level of acceptance of the system by the user. This includes
the process of training the user to use the system efficiently. The user must not feel threatened by the
system, instead must accept it as a necessity. The level of acceptance by the users solely depends on the
methods that are employed to educate the user about the system and to make him familiar with it. His
level of confidence must be raised so that he is also able to make some constructive criticism, which is
welcomed, as he is the final user of the system.

3.4 REQUIREMENTS

A software requirements specification (SRS) is a description of a software system to be


developed, its defined after business requirements specification (CONOPS) also called stakeholder
requirements specification (STRS) other document related is the system requirements specification
(SYRS).

3.4.1 HARDWARE AND SOFTWARE REQUIREMENTS

Department of CSE, JNTUACE Kalikiri 7


CROP PROPOUND SYSTEM

All computer software needs certain hardware components or other software resources to be
present on a computer. These prerequisites are known as (computer) system requirements and are
often used as a guideline as opposed to an absolute rule. Most software defines two sets of system
requirements: minimum and recommended. With increasing demand for higher processing power and
resources in newer versions of software, system requirements tend to increase over time. Industry
analysts suggest that this trend plays a bigger part in driving upgrades to existing computer systems
than technological advancements. A second meaning of the term of System requirements is a
generalization of this first definition, giving the requirements to be met in the design of a system or
sub-system.

HARDWARE REQUIREMENTS:

• Processor - P–IV
• RAM - 4 GB (min)
• Hard Disk - 40 GB
• Key Board - Standard Windows Keyboard
• Mouse - Two or Three Button Mouse
• Monitor - SVGA 21

Department of CSE, JNTUACE Kalikiri 8


CROP PROPOUND SYSTEM

SOFTWARE REQUIREMENTS:

• Operating system : Windows 7 Ultimate or above.

• Coding Language : Python.

• Front-End : Python.

• Back-End : Flask

Department of CSE, JNTUACE Kalikiri 9


CROP PROPOUND SYSTEM

CHAPTER-4 SYSTEM DESIGN

This chapter provides information of software development life cycle, design model i.e.
various UML diagrams and process specification.

4.1 DESCRIPTION

Systems design is the process or art of defining the architecture, components, modules,
interfaces, and data for a system to satisfy specified requirements. One could see it as the
application of systems theory to product development. There is some overlap and synergy with
the disciplines of systems analysis, systems architecture and systems engineering.

The System Design Document describes the system requirements, operating environment,
system and subsystem architecture, files and database design, input formats, output layouts,
human-machine interfaces, detailed design, processing logic, and external interfaces.

This design activity describes the system in narrative form using non-technical terms. It
should provide a high-level system architecture diagram showing a subsystem breakout of the
system, if applicable. The high-level system architecture or subsystem diagrams should, if
applicable, show interfaces to external systems. Supply a high-level context diagram for the
system and subsystems, if applicable. Refer to the requirements trace ability matrix (RTM) in the
Functional Requirements Document (FRD), to identify the allocation of the functional
requirements into this design document.

This section describes any constraints in the system design (reference any trade-off analyses
conducted such, as resource use versus productivity, or conflicts with other systems) and includes
any assumptions made by the project team in developing the system design.

This section describes any contingencies that might arise in the design of the system that may
change the development direction. Possibilities include lack of interface agreements with outside
agencies or unstable architectures at the time this document is produced. Address any possible
workarounds or alternative plans.
This section provides the organization code and title of the key points of contact (and
alternates if appropriate) for the information system development effort. These points of contact
should include the Project Manager, System Proponent, User Organization, Quality Assurance
(QA) Manager, Security Manager, and Configuration Manager, as appropriate. This section
describes the organization of the Systems Design Document.

4.2 UML DIAGRAMS

A UML diagram is a partial graphical representation (view) of a model of a system under


design, implementation, or already in existence. UML diagram contains graphical elements
(symbols) - UML nodes connected with edges (also known as paths or flows) - that represent
elements in the UML model of the designed system. The UML model of the system might also

Department of CSE, JNTUACE Kalikiri 10


CROP PROPOUND SYSTEM

contain other documentation such as use cases written as templated texts. The kind of the diagram
is defined by the primary graphical symbols shown on the diagram. For example, a diagram where
the primary symbols in the contents area are classes is class diagram. A diagram which shows use
cases and actors is use case diagram. A sequence diagram shows sequence of message exchanges
between lifelines. UML specification does not preclude mixing of different kinds of diagrams, e.g.
to combine structural and behavioral elements to show a state machine nested inside a use case.
Consequently, the boundaries between the various kinds of diagrams are not strictly enforced. At
the same time, some UML Tools do restrict set of available graphical elements which could be
used when working on specific type of diagram. UML specification defines two major kinds of
UML diagram: structure diagrams and behavior diagrams. Structure diagrams show the static
structure of the system and its parts on different abstraction and implementation levels and how
they are related to each other. The elements in a structure diagram represent the meaningful
concepts of a system, and may include abstract, real world and implementation concepts. Behavior
diagrams show the dynamic behavior of the objects in a system, which can be described as a series
of changes to the system over time.

4.2.1 CLASS DIAGRAM

A Class diagram gives an overview of a system by showing its classes and the
relationships among them. Class diagrams are static they display what interacts but not what
happens when they do interact. The class chart delineates the attributes and operations of a class
moreover the goals constrained on the structure.
The class frameworks are extensively used as a piece of the showing of article arranged
structures in light of the way that they are the primary UML diagrams which can be mapped
direct with thing orchestrated vernaculars. The class graph shows a collection of classes,
interfaces, affiliations, joint endeavors and confinements. It is generally called an assistant layout.

User System

Machine_learning()
Nitrogen()
Analysis()
Methods Phosphorous() Methods
Send_report()
Potassium()
Ph level()
Rainfall()

Members Username

FIG 4.2.1 CLASS DIAGRAM

Department of CSE, JNTUACE Kalikiri 11


CROP PROPOUND SYSTEM

4.2.2 USE CASE DIAGRAM

Use case diagrams model behavior within a system and helps the developers understand of
what the user require.

Use case diagram can be useful for getting an overall view of the system and clarifying who
can do and more importantly what they can’t do.

Use case diagram consists of use cases and actors and shows the interaction between the use
case and actors.

• The purpose is to show the interactions between the use case and actor.
• To represent the system requirements from user’s perspective.
• An actor could be the end-user of the system or an external system.

A Use case is a description of set of sequence of actions. Graphically it is rendered as an


ellipse with solid line including only its name. Use case diagram is a behavioral diagram that
shows a set of use cases and actors and their relationship. It is an association between the use
cases and actors. An actor represents a real-world object. Primary Actor – Sender, Secondary
Actor -Receiver.

Department of CSE, JNTUACE Kalikiri 12


CROP PROPOUND SYSTEM

FIG 4.2.2 USECASE DIAGRAM

4.2.3 SEQUENCE DIAGRAM

Sequence diagram and collaboration diagram are called INTERACTION DIAGRAMS. An


interaction diagram shows an interaction, consisting of set of objects and their relationship
including the messages that may be dispatched among them.

A sequence diagram is an introduction that empathizes the time ordering of


messages. Graphically a sequence diagram is a table that shows objects arranged along
the X-axis and messages ordered in increasing time along the Y-axis.

Department of CSE, JNTUACE Kalikiri 13


CROP PROPOUND SYSTEM

FIG 4.2.3 SEQUENCE DIAGRAM

Figure 4.2.3 represents a sequence of actions that can be performing in step by step manner.
The sequence diagram has four lines as admin, placement officer, student and guest user and their
actions in a sequence.

4.2.4 COMPONENT DIAGRAM

A component diagram is used to break down a large object-oriented system into the smaller
components, so as to make them more manageable. It models the physical view of a system such as
executables, files, libraries, etc. that resides within the node.
It visualizes the relationships as well as the organization between the components present in the
system. It helps in forming an executable system. A component is a single unit of the system, which is
replaceable and executable. The implementation details of a component are hidden, and it necessitates an
interface to execute a function. It is like a black box whose behavior is explained by the provided and
required interfaces.

Department of CSE, JNTUACE Kalikiri 14


CROP PROPOUND SYSTEM

Fig.4.2.4 COMPONENT DIAGRAM

4.2.5 DEPLOYMENT DIAGRAM

The deployment diagram visualizes the physical hardware on which the software will be deployed.
It portrays the static deployment view of a system. It involves the nodes and their relationships.

It ascertains how software is deployed on the hardware. It maps the software architecture created in
design to the physical system architecture, where the software will be executed as a node. Since it involves
many nodes, the relationship is shown by utilizing communication paths.

Department of CSE, JNTUACE Kalikiri 15


CROP PROPOUND SYSTEM

Fig.4.2.5 DEPLOYMENT DIAGRAM

CHAPTER 5 IMPLEMENTATION

An Implementation is a realization of a technical specification or algorithm as a program,


software components, or other computer system though computer programming and deployment.
Many implementations may exist for specifications or standards. A special case occurs in object-
oriented programming, when a concrete class implements an interface.
Implementation literally means to put into effect or to carry out. In the system implementation
phase, the software deals with translation of the design specifications into source code. The ultimate
goal of the implementation is to write the source code and the internal documentation so that it can be
verified easily. The code and documentation should be written ina manner that eases debugging,
testing and modification. System flow charts, simple run-on packages, sample output etc., is part of

Department of CSE, JNTUACE Kalikiri 16


CROP PROPOUND SYSTEM

the implementation. This includes requirement analysis scope analysis, customization, system
integrations, user policies, and user training. [3] An effort was made to satisfy the following goals in
order:

▪ Clarity and simplicity of the code

▪ Minimization of Hard Coding

▪ Minimization of the amount of memory used

▪ Thorough phased implementation has been done so that we can use our proposed system
correctly.

5.1 MODULES

1. Crop Propound System


Enter the corresponding nutrient values of soil, temperature and humidity. Note that, the
N-P-K (Nitrogen-Phosphorus -Potassium) values to be entered should be the ratio
between them.

5.2 TECHNOLOGIES USED


5.2.1 PYTHON

Python is a high-level, general-purpose and a very popular programming language. Python


programming language (latest Python 3) is being used in web development, Machine Learning
applications, along with all cutting edge technology in Software Industry. Python Programming
Language is very well suited for Beginners, also for experienced programmers with other programming
languages like C++ and Java.
Python is an interpreted, high-level, general-purpose programming language. Created
by Guido van Rossum and first released in 1991, Python's design philosophy emphasizes code
readability with its notable use of significant whitespace. Its language constructs and object- oriented
approach aim to help programmers write clear, logical code for small and large-scale projects.
Python is dynamically typed and garbage-collected. It supports multiple programming
paradigms, including structured (particularly, procedural,) object-oriented, and functional
programming. Python is often described as a "batteries included" language due to its
comprehensive standard library.
Python was conceived in the late 1980s as a successor to the ABC language. Python 2.0,

Department of CSE, JNTUACE Kalikiri 17


CROP PROPOUND SYSTEM

released in 2000, introduced features like list comprehensions and a garbage collection system capable
of collecting reference cycles. Python 3.0, released in 2008, was a major revision of the language that is
not completely backward-compatible, and much Python 2 code does not run unmodified on Python 3.
The Python 2 language, i.e. Python 2.7.x, was officially discontinued on 1 January 2020 (first
planned for 2015) after which security patches and other improvements will not be released for it. With
Python 2's end-of-life, only Python 3.5.xand later are supported.
Python interpreters are available for many operating systems. A global community of
programmers develops and maintains CPython, an open sourcereference implementation. A non-profit
organization, the Python Software Foundation, manages and directs resources for Python and CPython
development.

Python do?:

• Python can be used on a server to create web applications.


• Python can be used alongside software to create workflows.
• Python can connect to database systems. It can also read and modify files.
• Python can be used to handle big data and perform complex mathematics.
• Python can be used for rapid prototyping, or for production-ready software development.

Why Python?
• Python works on different platforms (Windows, Mac, Linux, Raspberry Pi, etc).
• Python has a simple syntax similar to the English language.
• Python has syntax that allows developers to write programs with fewer lines than some other
programming languages.
• Python runs on an interpreter system, meaning that code can be executed as soon as it is written. This
means that prototyping can be very quick.
• Python can be treated in a procedural way, an object-orientated way or a functional way.

Python compared to other programming languages

• Python was designed for readability, and has some similarities to the English language with influence
from mathematics.
• Python uses new lines to complete a command, as opposed to other programming languages which
often use semicolons or parentheses.
• Python relies on indentation, using whitespace, to define scope; such as the scope of loops, functions
and classes. Other programming languages often use curly-brackets for this purpose.

Department of CSE, JNTUACE Kalikiri 18


CROP PROPOUND SYSTEM

FEATURES
1. Python is currently the most widely used multi-purpose, high-level programming language.
2. Python allows programming in Object-Oriented and Procedural paradigms.
3. 3.Python programs generally are smaller than other programming languages like Java. Programmers
have to type relatively less and indentation requirement of the language, makes them readable all the
time.
4. Python language is being used by almost all tech-giant companies like – Google, Amazon, Facebook,
Instagram, Dropbox, Uber… etc.
5. The biggest strength of Python is huge collection of standard library which can be used for the
following:
• Machine Learning
• GUI Applications (like Kivy, Tkinter, PyQt etc. )
• Web frameworks like Django (used by YouTube, Instagram, Dropbox)
• Image processing (like OpenCV, Pillow)
• Web scraping (like Scrapy, Beautiful Soup, Selenium)
• Test frameworks
• Multimedia
• Scientific computing
• Text processing
ADVANTAGES OF PYTHON
1. Easy to read, learn and code

Python is a high-level language and its syntax is very simple. It does not need any semicolons or braces and
looks like English. Thus, it is beginner-friendly. Due to its simplicity, its maintenance cost is less.

2. Dynamic Typing

In Python, there is no need for the declaration of variables. The data type of the variable gets assigned
automatically during runtime, facilitating dynamic coding.

3. Free, Open Source

It is free and also has an open-source licence. This means the source code is available to the public for
free and one can do modifications to the original code. This modified code can be distributed with no
restrictions.

This is a very useful feature that helps companies or people to modify according to their needs and use their
version.

Department of CSE, JNTUACE Kalikiri 19


CROP PROPOUND SYSTEM

4. Portable

Python is also platform-independent. That is, if you write the code on one of the Windows, Mac, or Linux
operating systems, then you can run the same code on the other OS with no need for any changes.

This is called Write Once Run Anywhere (WORA). However, you should be careful while you add system
dependent features.

5. Extensive Third-Party Libraries

Python comes with a wide range of libraries like NumPy, Pandas, Tkinter, Django, etc.

The python package installer (PIP) helps you install these libraries in your interpreter/ IDLE. These
libraries have different modules/ packages. These modules contain different inbuilt functions and
algorithms. Using these make the coding process easier and makes it look simple.

6. Wide Range of Applications

Python has many applications like web development, making desktop GUIs, app development, artificial
intelligence, data science, etc. It has become a preferred language by the professionals in many areas
like engineering, mathematics and science.

7. Extensible and Integrable to Other Programming Languages

In addition to having libraries like CPython and Jython, it can extend to other languages like C, C++.
This feature helps while building projects.
It can also integrate with C, C++, and Java, helping in cross-platform development and also in using the
strong features of each language. This makes Python a powerful language.

8. Interpreted Language

Python is an interpreted language. The code gets executed line by line till an error is encountered if any.

If an error occurs at a line, it stops execution and gives that error to the console. This leads to an easier
and step-by-step debugging process.

9. Functional, Object-Oriented, and Procedural

It is a procedural, functional, and object-oriented language. Procedural means the code gets executed in
the top to bottom fashion.

A functional language works based on functions, rather than just statements. A function is a collection
of codes that takes input and gives output.

Department of CSE, JNTUACE Kalikiri 20


CROP PROPOUND SYSTEM

Information is treated as a real-world object with properties and behaviors in object-orientated


language.

10. Involvement in Large Projects.

It is used for implementation in big projects and software like YouTube, Google, Yahoo. It is also a
preferred language by many companies in various fields like education, medical, research, etc.

DISADVANTAGES OF PYTHON
1. It’s Simple Nature

Are you wondering how this feature under advantage also is coming as a disadvantage?

Then the answer is Yes! Its simplicity is making it hard for a programmer to adjust to the syntax of the other
programming languages.

2. Slow Speed and Memory Inefficient

The interpreter in Python executed the code line by line, which increases the overall time. The dynamic
typing feature also decreases the speed. This is because it has to do extra work during runtime. It
requires a large amount of memory too!
3. Weak Mobile Computation

Python has many applications on the server-side. But it is hardly seen on the client-side or in mobile
applications. The main reasons for this are:

▪ It occupies a lot of memory.


▪ This makes the process slow.
▪ It also does not facilitate security
4. Poor Database Access

Python databases are weak compared to other technologies like JDBC (Java DataBase Connectivity) and
ODBC (Open DataBase Connectivity). This limits its use in high enterprises.

Department of CSE, JNTUACE Kalikiri 21


CROP PROPOUND SYSTEM

5. Runtime Errors due to dynamic typing

Because it’s a dynamically typed language, you do not need to declare any variable and a variable storing
an integer can store a string later. This might happen unnoticeably but leads to runtime errors while doing
operations.

This is a restriction on the design of the Python programming language. Also, all errors show up only during
runtime. So, it is difficult to test.

There are some other disadvantages like:

▪ It does not allow multithreading. To achieve multithreading in Python, a developer can extend
Python to C extensions, PyPy, JPython, and IronPython.
▪ Besides being a functional programming language, it does not support functional optimization. In
addition, it also falls behind due to a lack of basic features.

APPLICATIONS OF PYTHON

1. Web Development

Python is widely used in web development. It makes use of simple code to build a beautiful and
functional website. It has related libraries and modules like HTTP, XML, JSON, IMAP, POP, FTP, etc.
These help in storage in databases, content management, and interfacing with internet protocols.

It also has frameworks integrated with it like Django, Flask, Pyramid, and Bottle. In addition, Python also
comes with packages like Beautiful Soup, Twisted Python, and Feed parser.
2. Artificial Intelligence and Machine Learning

Many AI and ML models are built using Python. Data analysts use it too. The fundamental cause for this
is the availability of many tools and libraries specific to these applications. Some of them include:

▪ Pandas for Data Manipulation and Analysis.


▪ NumPy and SciPy for mathematical computations.
▪ Seaborn and Matplotlib for visualization.
▪ Scikit learn, Tensor Flow, Keras for algorithms
3. Game Development

One of the interesting applications of the Python Programming language is to build games like egg catcher,
snake game, etc.

Python comes with packages like Pygame and Pykyra to build awesome games. It facilitates the development
of 3D games with respective libraries. It is also used for scripting in many game engines.

Department of CSE, JNTUACE Kalikiri 22


CROP PROPOUND SYSTEM

Famous games like Battlefield 2, World of Tanks, Toontown Online, and Civilization 4 are also built using
Python.

4. Desktop GUI Development

Its simplicity and platform independence nature make it a good choice for GUI applications. Though Tkinter
is the standard library for GUI development, there are other supporting libraries like:

▪ Wx Python
▪ Kivy
▪ PyQt, PySide
▪ PyGUI
▪ Delphi
▪ GTK+
5. Enterprise/ Business Applications

Business applications are developed keeping in mind the comfort and ease of usage by the organization.
Python’s features like scalability, extensibility, and readability make it the best choice for business
applications.

The following used Python:

▪Odoo: This is an all-in-one business management software for enterprising purposes. ▪


Tryton: general-purpose, high level, third-tier business application
6. Software Development

Python supports the development of software with its libraries and packages. It is used for building, testing,
management, and so on. For example

▪ Scons help in build control


▪ Buildbot and Apache are used for autonomous and continuous testing.
▪ Roundup and Trac test and manage errors.
7. Educational Purposes

Python helps beginners get introduced to the Programming environment. It is because of its simple
syntax and beginner-friendly nature. Another reason could be its scope and reach in the development
community.

8. Operating Systems Development

Many operating systems are using Python as a backbone. Generally, it is used along with C. Some of
them are as follows:

Department of CSE, JNTUACE Kalikiri 23


CROP PROPOUND SYSTEM

▪ Linux based Ubuntu’s Ubiquity Installer


▪ Anaconda Installer of Red Hat Enterprises
9. Language Development

Yes! Python being one of the programming languages helps in building other languages. These have
similar syntax object models and indentation as compared to Python. Its architecture is taken as
inspiration to build:

▪ Swift
▪ Boo
▪ Cobra
▪ CoffeeScript
▪ OCaml
10. Scientific and Numeric Computations

Python can also serve in doing scientific and numeric calculations. Thanks to its concerned libraries that
makes these calculations easier. Apps like Abacus and FreeCAD are built using Python. Some of the
libraries that can do these calculations are:

▪ NumPy
▪ SciPy
▪ Pandas
▪ Natural Language Toolkit

5.2.2 FLASK

Flask is a micro web framework written in Python. It is classified as a microframework because


it does not require particular tools or libraries. It has no database abstraction layer, form validation, or
any other components where pre-existing third-party libraries provide common functions. However,
Flask supports extensions that can add application features as if they were implemented in Flask itself.
Extensions exist for object-relational mappers, form validation, upload handling, various open
authentication technologies and several common framework related tools. Flask is based on the
Werkzeug WSGI toolkit and Jinja2 template engine. Both are Pocco projects.

WSGI
Web Server Gateway Interface (WSGI) has been adopted as a standard for Python web
application development. WSGI is a specification for a universal interface between the
web server and the web applications.

Department of CSE, JNTUACE Kalikiri 24


CROP PROPOUND SYSTEM

Werkzeug
It is a WSGI toolkit, which implements requests, response objects, and other utility
functions. This enables building a web framework on top of it. The Flask framework uses
Werkzeug as one of its bases.

Jinga2
Jinga2 is a popular templating engine for Python. A web templating system combines a template with
a certain data source to render dynamic web pages.
Flask is often referred to as a micro framework. It aims to keep the core of an application
simple yet extensible. Flask does not have built-in abstraction layer for database handling,
nor does it have form a validation support. Instead, Flask supports the extensions to add such
functionality to the application.

FEATURES OF FLASK

1. Development server and debugger

2. Integrated support for unit testing


3. RESTful request dispatching

4. Uses Jinja templating

5. Support for secure cookies (client side sessions)

6. 100% WSGI 1.0 compliant

7. Unicode-based

8. Complete documentation

9. Google App Engine compatibility

10. Extensions available to extend functionality

ADVANTAGES OF FLASK

Scalable

Department of CSE, JNTUACE Kalikiri 25


CROP PROPOUND SYSTEM

Size is everything, and Flask’s status as a microframework means that you can use it to grow a tech
project such as a web app incredibly quickly. If you want to make an app that starts small, but has the
potential to grow quickly and in directions you haven’t completely worked out yet, then it’s an ideal
choice. Its simplicity of use and few dependencies enable it to run smoothly even as it scales up and up.

Flexible

This is the core feature of Flask, and one of its biggest advantages. To paraphrase one of the principles
of the Zen of Python, simplicity is better than complexity, because it can be easily rearranged and
moved around.

Not only is this helpful in terms of allowing your project to move in another direction easily, it also
makes sure that the structure won’t collapse when a part is altered. The minimal nature of Flask and its
aptitude for developing smaller web apps means that it’s even more flexible than Django itself.

Easy to negotiate

Like Django, being able to find your way around easily is key for allowing web developers to
concentrate on just coding quickly, without getting bogged down. At its core, the microframework is
easy to understand for web developers, not just saving them time and effort but also giving them more
control over their code and what is possible.
Lightweight

When we use this term in relation to a tool or framework, we’re talking about the design of it—there are
few constituent parts that need to be assembled and reassembled, and it doesn’t rely on a large number
of extensions to function. This design gives web developers a certain level of control.

Flask also supports modular programming, which is where its functionality can be split into several
interchangeable modules. Each module acts as an independent building block, which can execute one
part of the functionality. Together this means that the whole constituent parts of the structure are
flexible, moveable, and testable on their own.

Documentation

Following the creator’s own theory that “nice documentation design makes you actually write
documentation,” Flask users will find a healthy number of examples and tips arranged in a structured
manner. This encourages developers to use the framework, as they can easily get introduced to the
different aspects and capabilities of the tool. You’ll find the Flask documentation on their official
website.

DISADVANTAGES OF FLASK

Department of CSE, JNTUACE Kalikiri 26


CROP PROPOUND SYSTEM

Not a lot of tools

Inevitably there are some downsides to this microframework’s lightweight nature. Chief among them is
that unlike Django, Flask lacks a large toolbox. This means that developers will have to manually add
extensions such as libraries. And, if you add a huge number of extensions, it may start to slow down the
app itself due to a multitude of requests.

Difficult to get familiar with a larger Flask app

Because of the fact that development of a web app using Flask can take a variety of twists and turns, a
web developer arriving to the project mid-way through can struggle to come to terms with how it’s been
designed. The modular nature of the microframework that we mentioned earlier can come back to haunt
coders, who will have to familiarize themselves with each constituent part.

Maintenance costs

Because it is so versatile in terms of which technologies it can interface with, quite often a company
using Flask will incur extra costs of supporting those technologies. For example, if a technology
interfacing with your Flask app becomes obsolete or is discontinued, then the company will have to
scramble to find a new compatible one. The more complicated the app becomes, the higher the potential
maintenance and implementation costs.
JUPYTER NOTEBOOK

The Jupyter Notebook is an open source web application that you can use to create and share
documents that contain live code, equations, visualizations, and text. Jupyter Notebook is maintained
by the people at Project Jupyter.

Jupyter Notebooks are a spin-off project from the IPython project, which used to have an
IPython Notebook project itself. The name, Jupyter, comes from the core supported programming
languages that it supports: Julia, Python, and R. Jupyter ships with the IPython kernel, which allows
you to write your programs in Python, but there are currently over 100 other kernels that you can also
use.

A Jupyter Notebook document is a browser-based REPL containing an ordered list of


input/output cells which can contain code, text (using Markdown), mathematics, plots and rich media.
Underneath the interface, a notebook is a JSON document, following a versioned schema, usually
ending with the ".ipynb" extension.

Jupyter Notebook can connect to many kernels to allow programming in different languages. A
Jupyter kernel is a program responsible for handling various types of requests (code execution, code
completions, inspection), and providing a reply. Kernels talk to the other components of Jupyter using
ZeroMQ, and thus can be on the same or remote machines. Unlike many other Notebook-like interfaces,

Department of CSE, JNTUACE Kalikiri 27


CROP PROPOUND SYSTEM

in Jupyter, kernels are not aware that they are attached to a specific document, and can be connected to
many clients at once. Usually kernels allow execution of only a single language, but there are a couple
of exceptions.[citation needed] By default Jupyter Notebook ships with the IPython kernel. As of the
2.3 releas (October 2014), there are 49 Jupyter-compatible kernels for many programming languages,
including Python, R, Julia and Haskell

A Jupyter Notebook can be converted to a number of open standard output formats (HTML,
presentation slides, LaTeX, PDF, ReStructuredText, Markdown, Python) through "Download As" in the
web interface, via the nbconvert libraror "jupyter nbconvert" command line interface in a shell. To
simplify visualisation of Jupyter notebook documents on the web, the nbconvert library is provided as a
service through NbViewer which can take a URL to any publicly available notebook document, convert
it to HTML on the fly and display it to the user.

The Jupyter Notebook combines three components:

• The notebook web application: An interactive web application for writing and running code
interactively and authoring notebook documents.

• Kernels: Separate processes started by the notebook web application that runs users’ code in a given
language and returns output back to the notebook web application. The kernel also handles things like
computations for interactive widgets, tab completion and introspection.
• Notebook documents: Self-contained documents that contain a representation of all content visible in
the note-book web application, including inputs and outputs of the computations, narrative text,
equations, images, and rich media representations of objects. Each notebook document has its own
kernel.

FEATURES OF JUPYTER NOTEBOOK

In-browser editing for code, with automatic syntax highlighting, indentation,


and tab completion/introspection.

• The ability to execute code from the browser, with the results of computations attached to the code which
generated them.

• Displaying the result of computation using rich media representations, such as HTML, LaTeX, PNG,
SVG, etc.

For example, publication-quality figures rendered by the matplotlib library, can be included inline.

• In-browser editing for rich text using the Markdown markup language, which can provide commentary for
the code, is not limited to plain text.

Department of CSE, JNTUACE Kalikiri 28


CROP PROPOUND SYSTEM

• The ability to easily include mathematical notation within markdown cells using LaTeX, and rendered
natively by MathJax.

ADVANTAGES OF JUPYTER NOTEBOOK

There are the following advantages of Jupyter Notebook -

1. All in one place: As you know, Jupyter Notebook is an open-source web-based interactive
environment that combines code, text, images, videos, mathematical equations, plots, maps,
graphical user interface and widgets to a single document.
2. Easy to convert: Jupyter Notebook allows users to convert the notebooks into other formats
such as HTML and PDF. It also uses online tools and nbviewer which allows you to render a
publicly available notebook in the browser directly.
3. Easy to share: Jupyter Notebooks are saved in the structured text files (JSON format), which
makes them easily shareable.
4. Language independent: Jupyter Notebook is platform-independent because it is represented
as JSON (JavaScript Object Notation) format, which is a language-independent, text-based file
format. Another reason is that the notebook can be processed by any programing language, and
can be converted to any file formats such as Markdown, HTML, PDF, and others.
5. Interactive code: Jupyter notebook uses ipywidgets packages, which provide many common
user interfaces for exploring code and data interactivity.

DISADVANTAGES OF JUPYTER NOTEBOOK

There are the following disadvantages of Jupyter Notebook:

1. It is very hard to test long asynchronous tasks.


2. Less Security
3. It runs cell out of order
4. In Jupyter notebook, there is no IDE integration, no linting, and no code-style correction.

Department of CSE, JNTUACE Kalikiri 29


CROP PROPOUND SYSTEM

CHAPTER 6

TESTING
The purpose of testing is to discover errors. Testing is the process of trying to discover every
conceivable fault or weakness in a work product. It provides a way to check the functionality of
components, sub-assemblies, assemblies and/or a finished product It is the process of exercising
software with the intent of ensuring that the software system meets its requirements and user
expectations and does not fail in an unacceptable manner. There are various types of test. Each test type
addresses a specific testing requirement.
TYPES OF TESTS

Unit tests perform basic tests at component level and test a specific business process, application, and/or
system configuration. Unit tests ensure that each unique path of a business process performs accurately
to the documented specifications and contains clearly defined inputs and expected results.

Unit testing
Unit testing involves the design of test cases that validate that the internal program logic is
functioning properly, and that program inputs produce valid outputs. All decision branches and internal
code flow should be validated. It is the testing of individual software units of the application .it is done
after the completion of an individual unit before integration. This is a structural testing, that relies on
knowledge of its construction and is invasive.

Integration testing
Integration tests are designed to test integrated software components to determine if they
actually run as one program. Testing is event driven and is more concerned with the basic outcome of
screens or fields. Integration tests demonstrate that although the components were individually
satisfaction, as shown by successfully unit testing, the combination of components is correct and
consistent. Integration testing is specifically aimed at exposing the problems that arise from the
combination of components.

Functional test

Functional tests provide systematic demonstrations that functions tested are available as specified
by the business and technical requirements, system documentation, and user manuals.

Department of CSE, JNTUACE Kalikiri 30


CROP PROPOUND SYSTEM

Functional testing is centered on the following items:


Valid Input : identified classes of valid input must be accepted.
Invalid Input : identified classes of invalid input must be
rejected.
Functions : identified functions must be exercised.
Output : identified classes of application outputs must be exercised.
Systems/Procedures: interfacing systems or procedures must be invoked.

Organization and preparation of functional tests is focused on requirements, key functions, or special
test cases. In addition, systematic coverage pertaining to identify Business process flows; data fields,
predefined processes, and successive processes must be considered for testing. Before functional testing
is complete, additional tests are identified and the effective value of current tests is determined.

System Test
System testing ensures that the entire integrated software system meets requirements. It tests a
configuration to ensure known and predictable results. An example of system testing is the
configuration oriented system integration test. System testing is based on process descriptions and
flows, emphasizing pre-driven process links and integration points.

White Box Testing


White Box Testing is a testing in which in which the software tester has knowledge of the inner
workings, structure and language of the software, or at least its purpose. It is purpose. It is used to test
areas that cannot be reached from a black box level.

Black Box Testing


Black Box Testing is testing the software without any knowledge of the inner workings, structure
or language of the module being tested. Black box tests, as most other kinds of tests, must be written
from a definitive source document, such as specification or requirements document, such as
specification or requirements document. It is a testing in which the software under test is treated, as a
black box .you cannot “see” into it. The test provides inputs and responds to outputs without
considering how the software works.

6.1 Unit Testing:

Unit testing is usually conducted as part of a combined code and unit test phase of the software
lifecycle, although it is not uncommon for coding and unit testing to be conducted as two distinct
phases.

Department of CSE, JNTUACE Kalikiri 31


CROP PROPOUND SYSTEM

Test strategy and approach


Field testing will be performed manually and functional tests will be written in detail.

Test objectives

• All field entries must work properly.


• Pages must be activated from the identified link. • The entry screen, messages
and responses must not be delayed.

Features to be tested
• Verify that the entries are of the correct format
• No duplicate entries should be allowed • All links should take the user
to the correct page.

6.2 Integration Testing

Software integration testing is the incremental integration testing of two or more integrated
software components on a single platform to produce failures caused by interface defects.
The task of the integration test is to check that components or software applications, e.g.
components in a software system or – one step up – software applications at the company level –
interact without error.
Test Results: All the test cases mentioned above passed successfully. No defects encountered.

6.3 Acceptance Testing

User Acceptance Testing is a critical phase of any project and requires significant participation
by the end user. It also ensures that the system meets the functional requirements. Test Results: All
the test cases mentioned above passed successfully. No defects encountered.

SYSTEM TESTING

Department of CSE, JNTUACE Kalikiri 32


CROP PROPOUND SYSTEM

TESTING METHODOLOGIES
The following are the Testing Methodologies:
o Unit Testing. o
Integration Testing. o User
Acceptance Testing. o
Output Testing. o
Validation Testing.

Unit Testing
Unit testing focuses verification effort on the smallest unit of Software design that is the
module. Unit testing exercises specific paths in a module’s control structure to ensure complete
coverage and maximum error detection. This test focuses on each module individually, ensuring that it
functions properly as a unit. Hence, the naming is Unit Testing.
During this testing, each module is tested individually and the module interfaces are verified for
the consistency with design specification. All important processing path are tested for the expected
results. All error handling paths are also tested.

Integration Testing
Integration testing addresses the issues associated with the dual problems of verification and
program construction. After the software has been integrated a set of high order tests are conducted.
The main objective in this testing process is to take unit tested modules and builds a program structure
that has been dictated by design.
The following are the types of Integration Testing:

1)Top Down Integration


This method is an incremental approach to the construction of program structure. Modules are
integrated by moving downward through the control hierarchy, beginning with the main program
module. The module subordinates to the main program module are incorporated into the structure in
either a depth first or breadth first manner.
In this method, the software is tested from main module and individual stubs are replaced when
the test proceeds downwards.

2. Bottom-up Integration
This method begins the construction and testing with the modules at the lowest level in the
program structure. Since the modules are integrated from the bottom up, processing required for

Department of CSE, JNTUACE Kalikiri 33


CROP PROPOUND SYSTEM

modules subordinate to a given level is always available and the need for stubs is eliminated. The
bottom up integration strategy may be implemented with the following steps:

• The low-level modules are combined into clusters into clusters that perform a specific Software
sub-function.
• A driver (i.e.) the control program for testing is written to coordinate test case input and output.
• The cluster is tested.
• Drivers are removed and clusters are combined moving upward in the program structure

The bottom-up approach tests each module individually and then each module is module is integrated
with the main module and tested for functionality.

OTHER TESTING METHODOLOGIES User Acceptance Testing


User Acceptance of a system is the key factor for the success of any system. The system under
consideration is tested for user acceptance by constantly keeping in touch with the prospective system
users at the time of developing and making changes wherever required. The system developed provides
a friendly user interface that can easily be understood even by a person who is new to the system.
Output Testing
After performing the validation testing, the next step is output testing of the proposed system,
since no system could be useful if it does not produce the required output in the specified format.
Asking the users about the format required by them tests the outputs generated or displayed by the
system under consideration. Hence the output format is considered in 2 ways – one is on screen and
another in printed format.

Validation Checking
Validation checks are performed on the following fields.
Text Field:
The text field can contain only the number of characters lesser than or equal to its size. The text
fields are alphanumeric in some tables and alphabetic in other tables. Incorrect entry always flashes and
error message.
Numeric Field:
The numeric field can contain only numbers from 0 to 9. An entry of any character flashes an
error messages. The individual modules are checked for accuracy and what it has to perform. Each
module is subjected to test run along with sample data. The individually tested modules are integrated
into a single system. Testing involves executing the real data information is used in the program the
existence of any program defect is inferred from the output. The testing should be planned so that all the
requirements are individually tested.

Department of CSE, JNTUACE Kalikiri 34


CROP PROPOUND SYSTEM

A successful test is one that gives out the defects for the inappropriate data and produces and
output revealing the errors in the system.

Preparation of Test Data


Taking various kinds of test data does the above testing. Preparation of test data plays a vital
role in the system testing. After preparing the test data the system under study is tested using that test
data. While testing the system by using test data errors are again uncovered and corrected by using
above testing steps and corrections are also noted for future use.

Using Live Test Data:


Live test data are those that are actually extracted from organization files. After a system is
partially constructed, programmers or analysts often ask users to key in a set of data from their normal
activities. Then, the systems person uses this data as a way to partially test the system. In other
instances, programmers or analysts extract a set of live data from the files and have them entered
themselves.
It is difficult to obtain live data in sufficient amounts to conduct extensive testing. And, although it is
realistic data that will show how the system will perform for the typical processing requirement,
assuming that the live data entered are in fact typical, such data generally will not test all combinations
or formats that can enter the system. This bias toward typical values then does not provide a true
systems test and in fact ignores the cases most likely to cause system failure.

Using Artificial Test Data:


Artificial test data are created solely for test purposes, since they can be generated to test all
combinations of formats and values. In other words, the artificial data, which can quickly be prepared
by a data generating utility program in the information systems department, make possible the testing of
all login and control paths through the program.
The most effective test programs use artificial test data generated by persons other than those who
wrote the programs. Often, an independent team of testers formulates a testing plan, using the systems
specifications.
The package “Virtual Private Network” has satisfied all the requirements specified as per software
requirement specification and was accepted.

USER TRAINING
Whenever a new system is developed, user training is required to educate them about the working of the
system so that it can be put to efficient use by those for whom the system has been primarily designed.
For this purpose the normal working of the project was demonstrated to the prospective users. Its
working is easily understandable and since the expected users are people who have good knowledge of
computers, the use of this system is very easy.

Department of CSE, JNTUACE Kalikiri 35


CROP PROPOUND SYSTEM

MAINTAINENCE
This covers a wide range of activities including correcting code and design errors. To reduce the need
for maintenance in the long run, we have more accurately defined the user’s requirements during the
process of system development. Depending on the requirements, this system has been developed to
satisfy the needs to the largest possible extent. With development in technology, it may be possible to
add many more features based on the requirements in future. The coding and designing is simple and
easy to understand which will make maintenance easier.

TESTING STRATEGY :
A strategy for system testing integrates system test cases and design techniques into a well-planned
series of steps that results in the successful construction of software. The testing strategy must co-
operate test planning, test case design, test execution, and the resultant data collection and evaluation. A
strategy for software testing must accommodate low-level tests that are necessary to verify that a small
source code segment has been correctly implemented as well as high level tests that validate major
system functions against user requirements.
Software testing is a critical element of software quality assurance and represents the ultimate review
of specification design and coding. Testing represents an interesting anomaly for the software. Thus, a
series of testing are performed for the proposed system before the system is ready for user acceptance
testing.

SYSTEM TESTING:
Software once validated must be combined with other system elements (e.g. Hardware, people,
database). System testing verifies that all the elements are proper and that overall system function
performance is achieved. It also tests to find discrepancies between the system and its original
objective, current specifications and system documentation.

UNIT TESTING:
In unit testing different are modules are tested against the specifications produced during the design for
the modules. Unit testing is essential for verification of the code produced during the coding phase, and
hence the goals to test the internal logic of the modules. Using the detailed design description as a
guide, important Conrail paths are tested to uncover errors within the boundary of the modules. This
testing is carried out during the programming stage itself. In this type of testing step, each module was
found to be working satisfactorily as regards to the expected output from the module.
In Due Course, latest technology advancements will be taken into consideration. As part of
technical build-up many components of the networking system will be generic in nature so that future
projects can either use or interact with this. The future holds a lot to offer to the development and
refinement of this project.

Department of CSE, JNTUACE Kalikiri 36


CROP PROPOUND SYSTEM

CHAPTER 7

CODE

import streamlit as
st import pandas as
pd import numpy as np
import os import
pickle import
warnings

st.set_page_config(page_title="Crop Recommender", page_icon="🌿",


layout='centered', initial_sidebar_state="collapsed")

def load_model(modelfile): loaded_model =


pickle.load(open(modelfile, 'rb')) return
loaded_model

def main(): #
title
html_temp =
""" <div>
<h1 style="color:MEDIUMSEAGREEN;text-align:left;"> Crop Recommendation 🌱
</h1>
</div>
"""
st.markdown(html_temp, unsafe_allow_html=True)

col1,col2 = st.beta_columns([2,2])

with col1:
with st.beta_expander(" ℹ️Information", expanded=True): st.write("""
Crop recommendation is one of the most important aspects of precision
agriculture. Crop recommendations are based on a number of factors. Precision
agriculture seeks to define these criteria on a site-by-site basis in order to
address crop selection issues. While the "site-specific" methodology has improved
performance, there is still a need to monitor the systems' outcomes.Precision
agriculture systems aren't all created equal.
However, in agriculture, it is critical that the recommendations made
are correct and precise, as errors can result in significant material and capital
loss.

""")
'''
## How does it work ❓
Complete all the parameters and the machine learning model will predict the
most suitable crops to grow in a particular farm based on various parameters
'''

with col2:

Department of CSE, JNTUACE Kalikiri 37


CROP PROPOUND SYSTEM
st.subheader(" Find out the most suitable crop to grow in your farm 👨‍🌾")

N = st.number_input("Nitrogen", 0,140)
P = st.number_input("Phosporus", 5,165) K =
st.number_input("Potassium", 5,206) temp =
st.number_input("Temperature",8.0,44.0) humidity =
st.number_input("Humidity in %", 14.0,100.0) ph =
st.number_input("Ph", 3.0,8.0)
rainfall = st.number_input("Rainfall in mm",20.0,249.0)

feature_list = [N, P, K, temp, humidity, ph,


rainfall] single_pred =
np.array(feature_list).reshape(1,-1) if
st.button('Predict'):

loaded_model =
load_model(r'C:\Users\HP\PycharmProjects\CRML\venv\CropRecommendation\
CropRecommend
ation\models\RandomForest.pkl') prediction =
loaded_model.predict(single_pred)
col1.write('''
## Results 🔍
''') col1.success(f"{prediction.item().title()} are recommended by the
A.I
for your farm.")
#code for html ☘️🌾 🌳 👨‍🌾 🍃

st.warning("Note: This A.I application is for educational/demo purposes only


and cannot be relied upon. Check the source code
[here](https://github.com/gabbygab1233/Crop-Recommendation)")
hide_menu_style = """
<style>
#MainMenu {visibility: hidden;}
</style>
"""

hide_menu_style = """
<style>
#MainMenu {visibility: hidden;}
</style>
"""
st.markdown(hide_menu_style, unsafe_allow_html=True)

if name == ' main ':


main()

CHAPTER 8

RESULTS

Department of CSE, JNTUACE Kalikiri 38


CROP PROPOUND SYSTEM
This Chapter provides various views of the project output through screenshots with brief
description.

Department of CSE, JNTUACE Kalikiri 39


CROP PROPOUND SYSTEM

Department of CSE, JNTUACE Kalikiri 40


CROP PROPOUND SYSTEM

Department of CSE, JNTUACE Kalikiri 41


CROP PROPOUND SYSTEM

Department of CSE, JNTUACE Kalikiri 42


CROP PROPOUND SYSTEM CHAPTER 9 CONCLUSION

▪ Agriculture is the backbone of many countries including India.


▪ Since integrating the information technology with the agriculture will guide the farmer to
improve the productivity by selecting the most suitable crop.
▪ In this proposed work the system described works faster and gives better accuracy in prediction
to predict the suitable crop.

Department of CSE, JNTUACE Kalikiri


46
CROP PROPOUND SYSTEM

CHAPTER 10
FUTURE WORK

When the farmers sow a particular crop, there might face some issues or diseases in the crop
before harvesting. In that case, they can upload the photographs of the crop and soil report. Then the AI
model can identify the problems and provide them with probable solutions.

Department of CSE, JNTUACE Kalikiri


47

Department of CSE, JNTUACE Kalikiri


CROP PROPOUND SYSTEM

CHAPTER-11
REFERENCES

1. Zhao, Yi, Noemi Vergopolan, Kathy Baylis, Jordan Blekking, Kelly Caylor, Tom Evans,
Stacey Giroux, Justin Sheffield, and Lyndon Estes. "Comparing empirical and survey-
based yield forecasts in a dryland agro-ecosystem. “Agricultural and Forest Meteorology
262 (2018):
147-156.
2. Khaki, Saeed, and Lizhi Wang. "Crop yield prediction using deep neural networks." In
INFORMS International Conference on Service Science, pp. 139-147. Springer, Cham,
2019.
3. Y. Weng, X. Wang, J. Hua, H. Wang, M. Kang and F. Wang, "Forecasting Horticultural
Products Price Using ARIMA Model and Neural Network Based on a Large-Scale Data
Set Collected by Web Crawler," in IEEE Transactions on Computational Social Systems,
vol.6,no.3,pp.547- 553,June2019.doi:10.1109/TCSS.2019.2914499
4. Verma, Akanksha, Aman Jatain, and Shalini Bajaj. "Crop Yield Prediction of Wheat
Using Fuzzy C Means Clustering and Neural Network. "International Journal of Applied
Engineering Research 13, no. 11 (2018): 9816-9821.
5. N. Gandhi, O. Petkar and L. J. Armstrong, "Rice crop yield prediction using artificial
neural networks,"2016IEEE Technological Innovations in ICT for Agriculture and Rural
Development (TIAR), Chennai, 2016, pp. 105-110.
6. Doi: 10.1109/TIAR.2016.7801222
7. Noureen, S. Atique, V. Roy and S. Bayne, "Analysis and application of seasonal ARIMA
model in Energy Demand Forecasting: A case study of small-scale agricultural
load,"2019 IEEE 62nd International Midwest Symposium on Circuits and Systems
(MWSCAS), Dallas, TX, USA, 2019, pp. 521-524.doi:10.1109/MWSCAS.2019.8885349
8. Mohan, Pushpa, and Kiran Kumari Patil. "Deep Learning Based Weighted SOM to
Forecast Weather and Crop Prediction for Agriculture Application. "International Journal
of Intelligent Engineering and Systems 11, no. 4 (2018): 167-176.
9. Konstantinos P. Ferentinos, “Deep Learning Models for Plant Disease Detection and
Diagnosis”, Computers and Electronics in Agriculture 145:311-318 · February 2018
10. S. Ramesh, D. Vydeki, “Recognition and Classification of Paddy Leaf Diseases using
Optimized Deep Neural Network with Jaya Algorithm”, Information Processing in Agriculture,

46
CROP PROPOUND SYSTEM

Department of CSE, JNTUACE Kalikiri

KeAi (Chinese roots Global Impact),2019


11. Yang Lu, Shujuan Yi, Nianyin Zeng, Yurong Liu, Yong Zhang, “Identification of Rice
Diseases using Deep Convolutional Neural Networks”, Neuro computing, Volume 267, 6
December 2017, Pages 378-384
12. Arda Aydin, An l ay, Burak Polat, “Image Analysis Applications in Plant Growth and
Health Assessment”, Journal of Agricultural Faculty of Mustafa Kemal University,
22(1):112126 (2017)
13. T. N. Shaikh, Dr. S.M. Mukane, “Segmentation of Pomegranate Leaf for Detection of
Disease Using Image Processing”, International Journal of Innovative Research in Computer and
Communication EngineeringVol.5, Special Issue 4, June 2017
14. Girish Athanikar, Priti Badar, “Potato Leaf Diseases Detection and Classification System”,
International Journal of Computer Science and Mobile Computing, Vol. 5, Issue. 2,
February 2016, pg.76 – 88
15. Pranita P. Gulve, Sharayu S. Tambe, Madhu A. Pandey, S.S. Kanse, “Leaf Disease
Detection of Cotton Plant using Image Processing Technique”, Techno-Societal 2018pp55-65
Jharna Majumdar, Sneha Naraseeyappa, Shilpa Ankalaki, “Analysis of agriculture data using
data mining techniques: application of big data”, Dept. of Computer Science NMIT, 2017.
16. D Ramesh, B Vishnu Vardhan, “Data Mining Techniques and Applications to Agricultural
Yield Data”, JNTUH College of Engineering, Andhra Pradesh, India, Vol.2, Issue 9,
September 2013.
17. S Pudumalar, E.Ramanujam,R. Harine Rajashree, C Kavya, T Kiruthik, J Nisha, “Crop
Recommendation system for Precision Agriculture”, Dept. of Information Technology,
Thiagarajar College of Engineering , September-2016.
18. MotiurRahman M, Haq N, Rahman RM. Application of data mining tools for rice yield
prediction on clustered regions of Bangladesh. IEEE. 2014; 2014:8–13.
19. Anchal Dass, Subhash Chandra et,all “Agronomic fortification of rice grains with secondary
and micronutrients under differing crop management and soil moisture regimes in the north
Indian Plains” Article In Paddy Water Environ (2017) 15:745–760 DOI
10.1007/s10333-017-0588-9,Springer.

47
CROP PROPOUND SYSTEM

Department of CSE, JNTUACE Kalikiri

20. Anshal Savla, Parul Dhawan, Himtanaya Bhadada, Nivedita Israni, Alisha
Mandholia ,Sanya Bhardwaj (2015),“Survey of classification algorithms for formulating
yield prediction accuracy in precision agriculture”, Innovations in Information,
Embedded and Communication systems (ICIIECS).
21. Aakunuri Manjula, Dr.G .Narsimha (2015), “XCYPF: A Flexible and Extensible
Framework for Agricultural Crop Yield Prediction”, Conference on Intelligent Systems and
Control (ISCO).
22. Yash Sanghvi, Harsh Gupta, Harmish Doshi, DivyaKoli, AmoghAnshDivyaKoli,
Umang Gupta (2015), “Comparison of Self Organizing Maps and Sammon’s Mapping
on agricultural datasets for precision agriculture”, International Conference on
Innovations in Information, Embedded and Communication systems (ICIIECS).
23. Rakesh Kumar, M.P. Singh, Prabhat Kumar and J.P. Singh (2015), “Crop Selection
Method to Maximize Crop Yield Rate using Machine Learning Technique”, International
Conference on Smart Technologies and Management for Computing, Communication,
Controls, Energy and Materials (ICSTM).
24. R. Suresh, R. Santhi, “Soil Test Crop Response Based Integrated Plant Nutrition System
for Maize on Vertisol”, International Journal of Current Microbiology and Applied
Sciences ISSN: 2319-7706 Volume 7 (8) 1631-1641(2018).
25. R. Kumar, M. P. Singh, P. Kumar, and J. P. Singh, "Crop Selection Method to maximize
crop yield rate using machine learning technique", 2015 International Conference on
Smart
Technologies and Management for Computing, Communication, Controls, Energy, and
Materials (ICSTM), Chennai, 2015, pp. 138-145, DOI: 10.1109/ICSTM.2015.7225403. [2]
H. Lee and A. Moon, "Development of yield prediction system based on real-time
agricultural meteorological information”, 16th International Conference on Advanced
Communication Technology, Pyeongchang, 2014, pp. 12921295, DOI:
10.1109/ICACT.2014.6779168.

48
CROP PROPOUND SYSTEM

Department of CSE, JNTUACE Kalikiri

49

You might also like