Professional Documents
Culture Documents
Batch-2 doc
Batch-2 doc
CERTIFICATE
This is to certify that the project entitled “AGRICULTURAL CROP
RECOMMENDATIONS BASED ON PRODUCTIVITY AND SEASON” is a
bonafide work done by “C Reddi Nikhitha 18BF1A0524, B Sai Yogeeswar Reddy
18BF1A0517, Dasari Vaishnavi 18BF1A0529, Elapa Pavan 18BF1A0534”, in
partial fulfilment of the requirements for the award of the degree of Bachelor of
Technology in Computer Science and Engineering from Jawaharlal Nehru
Technological University Anantapur, Anantapauramu during the year 2021-2022.
Viva-Voice date:
We are thankful to our guide M. Vikram, M.E., (Ph.D), Associate Professor for his
valuable guidance and encouragement. His helping attitude and suggestions have helped us in
the successful completion of the project.
We are thankful to project coordinator Dr. P. Dileep Kumar Reddy, Associate Professor
for his guidance and regular schedules.
We would like to express our gratefulness and sincere thanks to Dr. R Swathi, Head,
Dept of CSE, for her kind help and encouragement during the course of our study and in the
successful completion of the project work.
We have great pleasure in expressing our hearty thanks to our beloved Principal Dr.
N. Sudhakar Reddy for spending his valuable time with us to complete this project.
Successful completion of any project cannot be done without proper support and
encouragement. We sincerely thank the Management for providing all the necessary facilities
during the course of study.
We would like to thank our parents and friends, who have the greatest contributions in
all our achievements, for the great care and blessings in making us successful in all our
endeavors.
C Reddi Nikhitha(18BF1A0524)
Dasari Vaishnavi(18BF1A0529)
Elapa Pavan(18BF1A0534)
CONTENTS
ABSTRACT ⅰ
LIST OF ABBREVATIONS ⅱ
LIST OF FIGURES ⅲ
CHAPTER 1 INTRODUCTION 01
CHAPTER 3 ENVIRONMENTS 04
3.1 Operating System Compatibility
3.2 Hardware Requirements
3.3 Data Centre Requirements
3.4 Software Requirements
CHAPTER 8 TESTING 59
8.1 Testing Principles
8.2 Testing Strategy and Approach
8.3 Testing Objectives
8.3.1 Black Box Testing
CHAPTER 10 RESULTS 79
CHAPTER 12 BIBLIOGRAPHY 86
ABSTRACT
Most Parts in India faces uncertainty in agriculture which decreases its production. With more
population and area, more productivity should be achieved but it cannot be reached. Farmers have
words-of-mouth in past decades but now it cannot be used due to climatic factors. Agricultural factors
and parameters make the data to get insights about the Agri-facts. Growth of IT world drives some
highlights in Agriculture Sciences to help farmers with good agricultural information. Intelligence of
applying modern technological methods in the field of agriculture is desirable in this current scenario.
Machine Learning Techniques develops a well-defined model with the data and helps us to attain
predictions. Agricultural issues like crop prediction, rotation, water requirement, fertilizer
requirement and protection can be solved. Due to the variable climatic factors of the environment,
there is a necessity to have a efficient technique to facilitate the crop cultivation and to lend a hand
to the farmers in their production and management. This may help upcoming agriculturalists to have
a better agriculture. A system of recommendations can be provided to a farmer to help them in crop
cultivation with the help of data mining. To implement such an approach, crops are recommended
based on its climatic factors and quantity. Data Analytics paves a way to evolve useful extraction
from agricultural database. Crop Dataset has been analyzed and recommendation of crops is done
based on productivity and season
ⅰ
LIST OF ABBREVATIONS
1. AR Agricultural Recommendation
2. UML Unified Modelling Language
3. XML eXtensible Markup Language
4. API Application Program Interface
5. CSV Comma-Separated Values
6. UI User Interface
7. URL Uniform Resource Locator
8. PAR Per Acre Results
ⅱ
LIST OF FIGURES
6.1 ARCHITECTURE 37
iii
Agricultural Crop Recommendations based on Productivity and Season
CHAPTER-1
INTRODUCTION
Tamil Nadu being 7th largest area in India has 6th largest population. It is t e leading
producer of agriculture products. Agriculture is the main occupation of Tamil Nadu people.
Agriculture has a sound tone in this competitive world. Cauvery is the main source of water.
Cauvery delta regions are called as rice bowl of Tamil Nadu. Rice is the major crop grown in Tamil
Nadu. Other crops like Paddy, Sugarcane, Cotton, Coconut and groundnut are grown. Bio-
fertilizers are produced efficiently. Many areas Farming acts as major source of occupation
Agriculture makes a dramatic impact in the economy o f a country. Due to the change of
natural factors, Agriculture farming is degrading now-a days. Agriculture directly depends on the
environmental factors such as sunlight, humidity, soil type, rainfall, Maximum and Minimum
Temperature, climate, fertilizers, pesticides etc. Knowledge of proper harvesting of crops is in
need to bloom in Agriculture. India has seasons of
Due to the diversity of season and rainfall, assessment of suitable crops to cultivate
is necessary. Farmers face major problems such as crop management, expected crop yield an
productive yield from the crops. Farmers or cultivators need proper assistant regarding crop
cultivation as now-a-days many fresh youngsters are interested in agriculture
Impact of IT sector in assessing real world problem is moving at a faster rate. Data
is increasing day by day in field of agriculture. With the advancement in Internet o f Things, there
are ways to grasp huge data in field of Agriculture. There is a need of a system to have obvious
analyzes of data of agriculture and extract or use useful information from the spreading data. To
get insights from data, it has to be learnt.
Extracting knowledge from the data set is the process of mining. It aims to give accurate
results to farmers. It finds hidden patterns. It discovers useful knowledge from the tremendous data
set. It is one of the processes in Knowledge Discovery in Databases (KDD). Apart from the KDD
process, in recent days with the development in IT world, Machine Learning has emerged to handle
big volume of data and involves high performance computing too. Application of Machine
Learning in Agriculture peaks up day by day. Machine Learning techniques are used in crop
management, livestock management, water management and soil management recommendation
algorithm. They provide personalized products in E-Commerce. These recommendation concepts
are used in agriculture in this project to provide crops to sow. Simple Data Analytics is used on
crop dataset and personalization of agricultural crops are suggested to famers.
CHAPTER-2
PROJECT DESCRIPTION
The Project aims to give accurate results to farmers. It finds hidden patterns. It discovers
useful knowledge from the tremendous data set. It is one of the processes in Knowledge Discovery
in Databases (KDD). Apart from the KDD process, in recent days with the development in IT
world, Machine Learning has emerged to handle big volume of data and involves high performance
computing too. Application of Machine Learning in Agriculture peaks up day by day. Machine
Learning techniques are used in crop management, livestock management, water management and
soil management recommendation algorithm. They provide personalized products in E-
Commerce. These recommendation concepts are used in agriculture in this project to provide crops
to sow. Simple Data Analytics is used on crop dataset and personalization of agricultural crops are
suggested to famers.
CHAPTER-3
ENVIRONMENTS
3.1. OPERATING SYSTEM COMPATIBILITY
Both 32-bit and 64-bit OS versions are supported. Enterprise Control Room operating system
compatibility Enterprise Control Room can be installed on machines running the following
operating systems.
➢ CPU - 1.6GHz
➢ RAM:4 GB
❖ Back-End : Django-ORM
• Python is Interpreted: Python is processed at runtime by the interpreter. You do not need
to compile your program before executing it. This is similar to PERL and PHP.
• Python is Interactive: You can actually sit at a Python prompt and interact with the
interpreter directly to write your programs.
History of Python
Python was developed by Guido van Rossum in the late eighties and early nineties at the National
Research Institute for Mathematics and Computer Science in the Netherlands.
Python is derived from many other languages, including ABC, Modula-3, C, C++, Algol-68,
SmallTalk, and Unix shell and other scripting languages.
Python is copyrighted. Like Perl, Python source code is now available under the GNU General
Public License (GPL).
Python is now maintained by a core development team at the institute, although Guido van
Rossum still holds a vital role in directing its progress.
Python Features
Python's features include:
• Easy-to-learn: Python has few keywords, simple structure, and a clearly defined syntax.
This allows the student to pick up the language quickly.
• Easy-to-read: Python code is more clearly defined and visible to the eyes.
• A broad standard library: Python's bulk of the library is very portable and cross-
platform compatible on UNIX, Windows, and Macintosh.
• Interactive Mode: Python has support for an interactive mode which allows interactive
testing and debugging of snippets of code.
• Portable: Python can run on a wide variety of hardware platforms and has the same
interface on all platforms.
• Extendable: You can add low-level modules to the Python interpreter. These modules
enable programmers to add to or customize their tools to be more efficient.
• GUI Programming: Python supports GUI applications that can be created and ported to
many system calls, libraries and windows systems, such as Windows MFC, Macintosh,
and the X Window system of Unix.
• Scalable: Python provides a better structure and support for large programs than shell
scripting.
• It can be used as a scripting language or can be compiled to byte-code for building large
applications.
• It provides very high-level dynamic data types and supports dynamic type checking.
• It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java.
ARITHMETIC OPERATORS
- Subtraction Subtracts right hand operand from left hand operand. a–b=-
10
% Modulus Divides left hand operand by right hand operand and returns b%a=
remainder 0
// Floor Division - The division of operands where the result is the 9//2 = 4
quotient in which the digits after the decimal point are removed. But and
if one of the operands is negative, the result is floored, i.e., rounded 9.0//2.0
away from zero (towards negative infinity): = 4.0, -
11//3 = -
4, -
11.0//3 =
-4.0
ASSIGNMENT OPERATOR
= Assigns values from right side operands to left side operand c=a+b
assigns
value of a
+ b into c
+= Add AND It adds right operand to the left operand and assign the result to c += a is
equivalent
left operand to c = c +
a
-= Subtract It subtracts right operand from the left operand and assign the c -= a is
AND result to left operand equivalent
to c = c -
a
*= Multiply It multiplies right operand with the left operand and assign the c *= a is
AND result to left operand equivalent
to c = c *
a
/= Divide AND It divides left operand with the right operand and assign the result c /= a is
to left operand equivalent
to c = c /
ac /= a is
equivalent
to c = c /
a
%= Modulus It takes modulus using two operands and assign the c %= a is equivalent to
AND result to left operand c=c%a
//= Floor It performs floor division on operators and assign c //= a is equivalent to
Division value to the left operand c = c // a
IDENTITY OPERATOR
COMPARISON OPERATOR
& Binary AND Operator copies a bit to the result if it exists in both (a & b)
operands (means
0000 1100)
^ Binary XOR It copies the bit if it is set in one operand but not both. (a ^ b) = 49
(means
0011 0001)
~ Binary Ones It is unary and has the effect of 'flipping' bits. (~a ) = -61
Complement (means
1100 0011
in 2's
complement
form due to
a signed
binary
number.
<< Binary Left Shift The left operands value is moved left by the number of bits a << 2 =
specified by the right operand. 240 (means
1111 0000)
>> Binary Right Shift The left operands value is moved right by the number of a >> 2 = 15
bits specified by the right operand. (means
0000 1111)
LOGICAL OPERATOR
and Logical If both the operands are true then condition (a and b)
AND becomes true. is true.
not Logical Used to reverse the logical state of its operand. Not(a
NOT and b) is
false.
Membership Operators
sequence y.
not in Evaluates to true if it does not finds a variable in the specified x not in y, here
sequence and false otherwise. not in results in a
1 if x is not a
member of
sequence y.
Operator Description
~+- Complement, unary plus and minus (method names for the last two
are +@ and -@)
LIST
The list is a most versatile data type available in Python which can be written as a list of comma-
separated values (items) between square brackets. Important thing about a list is that items in a list
need not be of the same type.
Creating a list is as simple as putting different comma-separated values between square brackets.
For example −
1 cmp(list1, list2)
2 len(list)
3 max(list)
4 min(list)
5 list(seq)
1 list.append(obj)
2 list.count(obj)
3 list. extend(seq)
4 list.index(obj)
5 list.insert(index, obj)
6 list.pop(obj=list[-1])
7 list.remove(obj)
8 list.reverse()
9 list.sort([func])
TUPLES
A tuple is a sequence of immutable Python objects. Tuples are sequences, just like lists. The
differences between tuples and lists are, the tuples cannot be changed unlike lists and tuples use
parentheses, whereas lists use square brackets.
Creating a tuple is as simple as putting different comma-separated values. Optionally we can put
these comma-separated values between parentheses also. For example −
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
tup1 = ();
To write a tuple containing a single value you have to include a comma, even though there is only
one value −
tup1 = (50,);
Like string indices, tuple indices start at 0, and they can be sliced, concatenated, and so on.
tup2 = (1, 2, 3, 4, 5, 6, 7 );
tup1[0]: physics
tup2[1:5]: [2, 3, 4, 5]
Updating Tuples:
Tuples are immutable which means you cannot update or change the values of tuple elements.
We are able to take portions of existing tuples to create new tuples as the following example
demonstrates −
To explicitly remove an entire tuple, just use the del statement. For example:
1
cmp(tuple1, tuple2):Compares elements of both tuples.
2
len(tuple):Gives the total length of the tuple.
3
max(tuple):Returns item from the tuple with max value.
4
min(tuple):Returns item from the tuple with min value.
5
tuple(seq):Converts a list into tuple.
DICTIONARY
Each key is separated from its value by a colon (:), the items are separated by commas, and the
whole thing is enclosed in curly braces. An empty dictionary without any items is written with
just two curly braces, like this: {}.
Keys are unique within a dictionary while values may not be. The values of a dictionary can be
of any type, but the keys must be of an immutable data type such as strings, numbers, or tuples.
To access dictionary elements, you can use the familiar square brackets along with the key to
obtain its value. Following is a simple example −
Result –
dict['Name']: Zara
dict['Age']: 7
Updating Dictionary
We can update a dictionary by adding a new entry or a key-value pair, modifying an existing
entry, or deleting an existing entry as shown below in the simple example −
Result −
dict['Age']: 8
dict['School']: DPS School
To explicitly remove an entire dictionary, just use the del statement. Following is a simple
example –
1
cmp(dict1, dict2)
2
len(dict)
Gives the total length of the dictionary. This would be equal to the number of items in the dictionary.
3
str(dict)
3 dict.fromkeys():Create a new dictionary with keys from seq and values set to value.
4 dict.get(key, default=None):For key key, returns value or default if key not in dictionary
A function is a block of organized, reusable code that is used to perform a single, related action.
Functions provide better modularity for your application and a high degree of code reusing.
Python gives you many built-in functions like print(), etc. but you can also create your own
functions. These functions are called user-defined functions.
Defining a Function
• Function blocks begin with the keyword def followed by the function name and
parentheses ( ( ) ).
• Any input parameters or arguments should be placed within these parentheses. You can
also define parameters inside these parentheses.
• The first statement of a function can be an optional statement - the documentation string
of the function or docstring.
• The code block within every function starts with a colon (:) and is indented.
• The statement return [expression] exits a function, optionally passing back an expression
to the caller. A return statement with no arguments is the same as return None.
Calling a Function
Defining a function only gives it a name, specifies the parameters that are to be included in the
function and structures the blocks of code.Once the basic structure of a function is finalized, you
can execute it by calling it from another function or directly from the Python prompt. Following
is the example to call printme() function −
Function Arguments
You can call a function by using the following types of formal arguments:
• Required arguments
• Keyword arguments
• Default arguments
• Variable-length arguments
Scope of Variables
All variables in a program may not be accessible at all locations in that program. This depends
on where you have declared a variable.
The scope of a variable determines the portion of the program where you can access a particular
identifier. There are two basic scopes of variables in Python −
Variables that are defined inside a function body have a local scope, and those defined outside
have a global scope.
This means that local variables can be accessed only inside the function in which they are
declared, whereas global variables can be accessed throughout the program body by all functions.
When you call a function, the variables declared inside it are brought into scope. Following is a
simple example –
Result −
A module allows you to logically organize your Python code. Grouping related code into a module
makes the code easier to understand and use. A module is a Python object with arbitrarily named
attributes that you can bind and reference.Simply, a module is a file consisting of Python code. A
module can define functions, classes and variables. A module can also include runnable code.
Example:
The Python code for a module named aname normally resides in a file named aname.py. Here's
an example of a simple module, support.py
return
When the interpreter encounters an import statement, it imports the module if the module is
present in the search path. A search path is a list of directories that the interpreter searches before
importing a module. For example, to import the module support.py, you need to put the following
command at the top of the script −
A module is loaded only once, regardless of the number of times it is imported. This prevents the
module execution from happening over and over again if multiple imports occur.
Packages in Python
A package is a hierarchical file directory structure that defines a single Python application
environment that consists of modules and sub packages and sub-sub packages.
Consider a file Pots.py available in Phone directory. This file has following line of source code −
def Pots():
print "I'm Pots Phone"
Similar way, we have another two files having different functions with the same name as above
−
To make all of your functions available when you've imported Phone,to put explicit import
statements in init .py as follows –
After you add these lines to init .py, you have all of these classes available when you import
the Phone package.
RESULT:
In the above example, we have taken example of a single functions in each file, but you can keep
multiple functions in your files. You can also define different Python classes in those files and
then you can create your packages out of those classes.
This chapter covers all the basic I/O functions available in Python.
The simplest way to produce output is using the print statement where you can pass zero or more
expressions separated by commas. This function converts the expressions you pass into a string
and writes the result to standard output as follows −
Result:
Python provides two built-in functions to read a line of text from standard input, which by default
comes from the keyboard. These functions are −
• raw_input
• input
The raw_input([prompt]) function reads one line from standard input and returns it as a string
(removing the trailing newline).
This prompts you to enter any string and it would display same string on the screen. When I typed
"Hello Python!", its output is like this −
The input([prompt]) function is equivalent to raw_input, except that it assumes the input is a valid
Python expression and returns the evaluated result to you.
This would produce the following result against the entered input –
Until now, you have been reading and writing to the standard input and output. Now, we will see
how to use actual data files.
Python provides basic functions and methods necessary to manipulate files by default. You can
do most of the file manipulation using a file object.
Before you can read or write a file, you have to open it using Python's built-in open() function.
This function creates a file object, which would be utilized to call other support methods
associated with it.
Syntax
file object = open(file_name [, access_mode][, buffering])
• file_name: The file_name argument is a string value that contains the name of the file that
you want to access.
• access_mode: The access_mode determines the mode in which the file has to be opened,
i.e., read, write, append, etc. A complete list of possible values is given below in the table.
This is optional parameter and the default file access mode is read (r).
• buffering: If the buffering value is set to 0, no buffering takes place. If the buffering value
is 1, line buffering is performed while accessing a file. If you specify the buffering value
as an integer greater than 1, then buffering action is performed with the indicated buffer
size. If negative, the buffer size is the system default(default behavior).
Modes Description
R Opens a file for reading only. The file pointer is placed at the beginning of the file. This is the
default mode.
Rb Opens a file for reading only in binary format. The file pointer is placed at the beginning of the
file. This is the default mode.
r+ Opens a file for both reading and writing. The file pointer placed at the beginning of the file.
rb+ Opens a file for both reading and writing in binary format. The file pointer placed at the
beginning of the file.
W Opens a file for writing only. Overwrites the file if the file exists. If the file does not exist,
creates a new file for writing.
Wb Opens a file for writing only in binary format. Overwrites the file if the file exists. If the file does
not exist, creates a new file for writing.
w+ Opens a file for both writing and reading. Overwrites the existing file if the file exists. If the file
does not exist, creates a new file for reading and writing.
wb+ Opens a file for both writing and reading in binary format. Overwrites the existing file if the file
exists. If the file does not exist, creates a new file for reading and writing.
A Opens a file for appending. The file pointer is at the end of the file if the file exists. That is, the
file is in the append mode. If the file does not exist, it creates a new file for writing.
Ab Opens a file for appending in binary format. The file pointer is at the end of the file if the file
exists. That is, the file is in the append mode. If the file does not exist, it creates a new file for
writing.
a+ Opens a file for both appending and reading. The file pointer is at the end of the file if the file
exists. The file opens in the append mode. If the file does not exist, it creates a new file for
reading and writing.
ab+ Opens a file for both appending and reading in binary format. The file pointer is at the end of the
file if the file exists. The file opens in the append mode. If the file does not exist, it creates a new
file for reading and writing.
Once a file is opened and you have one file object, you can get various information related to that
file.
Attribute Description
file.softspace Returns false if space explicitly required with print, true otherwise.
Example
# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace
The close() method of a file object flushes any unwritten information and closes the file object,
after which no more writing can be done. Python automatically closes a file when the reference
object of a file is reassigned to another file. It is a good practice to use the close() method to close
a file.
Syntax
fileObject.close();
Example
# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
# Close opend file
fo.close()
Result −
The file object provides a set of access methods to make our lives easier. We would see how to
use read() and write() methods to read and write files.
The write() method writes any string to an open file. It is important to note that Python strings
can have binary data and not just text.The write() method does not add a newline character ('\n')
to the end of the string Syntax
fileObject.write(string);
Here, passed parameter is the content to be written into the opened file. Example
# Open a file
fo = open("foo.txt", "wb")
fo.write( "Python is a great language.\nYeah its great!!\n");
# Close opend file
fo.close()
The above method would create foo.txt file and would write given content in that file and finally
it would close that file. If you would open this file, it would have following content.
CHAPTER-4
FEASIBILITY STUDY
An important outcome of preliminary investigation is the determination that the system request is
feasible. This is possible only if it is feasible within limited resource and time. The different
feasibilities that have to be analyzed are
• Operational Feasibility
• Economic Feasibility
• Technical Feasibility
CHAPTER-5
SYSTEM ANALYSIS
5.1 EXISTING SYSTEM
❖ Many crop prediction yield models have been developed. Clustering approaches such as k-
means, kmeans++ are used to perform grouping of data as clusters to predict crop yield is
used. In existing system provided a system to have management of pesticides for crop
cultivation using data mining process. Essential parameter for agriculture analysis is nature
of soil. Diverse varieties of soil are available in this India. Crops are cultivated depending
on the type of soil in the land. The role of soil in improving crop cultivation is discussed.
Data mining techniques are applied to analyze the soil parameter.
❖ JRip, J48 and Naive Bayes techniques are applied which produces more reliable results in
analyzing red and Black soil. Impact of parameters of agriculture in crop management is
studied to improve productivity. Neural networks, soft computing, big data and fuzzy logic
methods are being used to examine the agricultural factors.
❖ In Existing approach developed a SNN model to have a spatiotemporal analysis with crop
estimation. An automatic system to gather the information about soil nature, weather
conditions was developed with clustering techniques to extract the knowledge and use it
by farmers in crop cultivation.
Prediction of crops was done according to farmer’s experience in the past years. Although farmer’s
knowledge sustains, agricultural factors has been changed to astonishing level. There comes a need
to indulge engineering effect in crop prediction. Data mining plays a novel role in agriculture
research. This field uses historical data to predict; such techniques are neural networks, K-nearest
Neighbor. K-means algorithm does not use historical data but predicts based on-computing centers
of the samples and forming clusters. Computational cost of algorithm acts as a major issue. Use of
Artificial Neural Network is a boon to agriculture field which computes accurately even with more
input. An architecture developed uses input; selects needed features; classification and association
rule mining is applied and visualized.
Statistical Methodologies has been used to predict its crop production. Shakil Ahamed applied
clustering and classification techniques on 15 districts of Bangladesh to recommend for yield and
planting of crops. Factors implementing crop yield were considered. They are
a. Environmental factors-rainfall, humidity, Minimum and maximum temperature
b. Biotic factors-soil pH and salinity
c. Area factors-irrigated or cultivated
5.2.1 ADVANTAGES OF PROPOSED SYSTEM
1) Recommendation system acts as a good engine to provide suitable items to users considering
other factors. This is extended to have its support to agricultural sector
2) An exact recommendation based on Recommend based on production.
5.3 ANALYSIS
In recent days with the development in IT world, Machine Learning has emerged to handle
big volume of data and involves high performance computing too. Application of Machine
Learning in Agriculture peaks up day by day. Machine Learning techniques are used in crop
management, livestock management, water management and soil management recommendation
algorithm. They provide personalized products in E-Commerce. These recommendation concepts
are used in agriculture in this project to provide crops to sow. Simple Data Analytics is used on
crop dataset and personalization of agricultural crops are suggested to famers.
CHAPTER-6
SYSTEM ARCHITECTURE
A system architecture is the conceptual model that defines the structure, behavior, and
more views of a system. An architecture description is a formal description and representation of
a system, organized in a way that supports reasoning about the structures and behaviors of the
system.
It is Architecture Description Language which helps to describe the entire system
architecture. So it is a much broader topic. System architecture can be broadly categorized into
centralized and decentralized architectural organizations.
System architecture is the fundamental and unifying system structure defined in terms
of system elements, interfaces, processes, constraints and behaviors. System architecture
comprises the major physical properties, style, structure, interactions, and purpose of a system.
System design is the process of defining the architecture, modules, interfaces, and data
for a system to satisfy specified requirements.
The major elements of a system are architecture, modules, components, interfaces and
data.
Elements of a System
▪ Architecture - This is the conceptual model that defines the structure, behavior andmore
views of a system. We can use flowcharts to represent and illustrate the architecture.
▪ Modules - These are components that handle one specific task in a system. Acombination
of the modules make up the system.
▪ Components - This provides a particular function or group of related functions. Theyare
made up of modules.
▪ Interfaces - This is the shared boundary across which the components of the system
exchange information and relate.
▪ Data - This the management of the information and data flow.
6.1 ARCHITECTURE
Service Provider
Login,
WEB
Database
Remote User
In this module, the Service Provider has to login by using valid user name and password. After
login successful he can do some operations such as View Crop Data Sets, Browse Agriculture Data
Sets and Train & Test, View Trained and Tested Accuracy in Bar Chart, View Trained and Tested
Accuracy Results, View All Crop Yield and Production Prediction, Download Predicted Data Sets,
View All Remote Users, View Crop Yield Prediction Per Acre Results..
The Unified Modelling Language (UML) is a standard language for specifying, visualizing,
constructing, and documenting the artifacts of software systems, as well asfor business modeling
and other non-software systems. The UML represents a collection of best engineering practices
that have proven successful in the modeling of large and complex systems. The UML is a very
important part of developing objects oriented software and the software development process. The
UML uses mostly graphical notations to express the design of software projects. Using the UML
helps project teams communicate, explore potential designs, and validate the architectural design
of the software.
As the strategic value of software increases for many companies, the industry looks for
techniques to automate the production of software and to improve quality and reduce cost and time-
to-market. These techniques include component technology, visual programming, patterns and
frameworks. Businesses also seek techniques to manage the complexity of systems as they increase
in scope and scale. In particular, they recognize the need to solve recurring architectural problems,
such as physical distribution, concurrency, replication, security, load balancing and fault tolerance.
Additionally, the development for the World Wide Web, while making some things
simpler, has exacerbated these architectural problems. The Unified Modeling Language(UML) was
designed to respond to these needs. Simply, Systems design refers to the process of defining the
architecture, components, modules, interfaces, and data for a system to satisfy specified
requirements which can be done easily through UML diagrams.
Contents of UML
In general, a UML diagram consists of the following features:
➢ Entities: These may be classes, objects, users or systems behaviors.
➢ Relationship Lines that model the relationships between entities in the system.
➢ Generalization -- a solid line with an arrow that points to a higher abstraction of the
present item.
➢ Association -- a solid line that represents that one entity uses another entity as part of its
behavior.
➢ Dependency -- a dotted line with an arrowhead that shows one entity depends on the
behavior of another entity.
Goals of UML
A picture is worth a thousand words, this idiom absolutely fits describing UML. Object-oriented
concepts were introduced much earlier than UML. At that point of time, there were no standard
methodologies to organize and consolidate the object-oriented development. It was then that
UML came into picture.
There are a number of goals for developing UML but the most important is to define some general
purpose modeling language, which all modelers can use and it also needs to be made simple to
understand and use.
UML diagrams are not only made for developers but also for business users, common people, and
anybody interested to understand the system. The system can be a software or non-software
system. Thus it must be clear that UML is not a development method rather it accompanies with
processes to make it a successful system.
In conclusion, the goal of UML can be defined as a simple modeling mechanism to model all
possible practical systems in today’s complex environment.
To understand the conceptual model of UML, first we need to clarify what is a conceptual model?
and why a conceptual model is required?
• A conceptual model can be defined as a model which is made of concepts and their
relationships.
• A conceptual model is the first step before drawing a UML diagram. It helps to understand
the entities in the real world and how they interact with each other.
As UML describes the real-time systems, it is very important to make a conceptual model and
then proceed gradually. The conceptual model of UML can be mastered by learning the following
three major elements −
Object-Oriented Concepts
UML can be described as the successor of object-oriented (OO) analysis and design.
An object contains both data and methods that control the data. The data represents the state of
the object. A class describes an object and they also form a hierarchy to model the real-world
system. The hierarchy is represented as inheritance and the classes can also be associated in
different ways as per the requirement.
Objects are the real-world entities that exist around us and the basic concepts such as abstraction,
encapsulation, inheritance, and polymorphism all can be represented using UML.
UML is powerful enough to represent all the concepts that exist in object-oriented analysis and
design. UML diagrams are representation of object-oriented concepts only. Thus, before learning
UML, it becomes important to understand OO concept in detail.
• Encapsulation − Encapsulation is the mechanism of binding the data together and hiding
them from the outside world.
• Inheritance − Inheritance is the mechanism of making new classes from existing ones.
Thus, it is important to understand the OO analysis and design concepts. The most important
purpose of OO analysis is to identify objects of a system to be designed. This analysis is also done
for an existing system. Now an efficient analysis is only possible when we are able to start
thinking in a way where objects can be identified. After identifying the objects, their relationships
are identified and finally the design is produced.
There are three basic steps where the OO concepts are applied and implemented. The steps can
be defined as
• During OO analysis, the most important purpose is to identify objects and describe them
in a proper way. If these objects are identified efficiently, then the next job of design is
easy. The objects should be identified with responsibilities. Responsibilities are the
functions performed by the object. Each and every object has some type of responsibilities
to be performed. When these responsibilities are collaborated, the purpose of the system
is fulfilled.
• The second phase is OO design. During this phase, emphasis is placed on the requirements
and their fulfilment. In this stage, the objects are collaborated according to their intended
association. After the association is complete, the design is also complete.
• The third phase is OO implementation. In this phase, the design is implemented using OO
languages such as Java, C++, etc.
UML is a modeling language used to model software and non-software systems. Although UML
is used for non-software systems, the emphasis is on modeling OO software applications. Most
of the UML diagrams discussed so far are used to model different aspects such as static, dynamic,
etc. Now whatever be the aspect, the artifacts are nothing but objects.
Hence, the relation between OO design and UML is very important to understand. The OO
design is transformed into UML diagrams according to the requirement. Before understanding
the UML in detail, the OO concept should be learned properly. Once the OO analysis and design
is done, the next step is very easy. The input from OO analysis and design is the input to
UML diagrams.
A rectangle is drawn around the use cases, called the system boundary box, to indicate the
scope of system. Anything within the box represents functionality that is in scope and anything
outside the box is not Relationships.
➢ Include
In one form of interaction, a given use case may include another. "Include is a Directed
Relationship between two use cases, implying that the behavior of the included use case is inserted
into the behavior of the including use case”.
The first use case often depends on the outcome of the included use case. This is useful for
extracting truly common behaviors from multiple use cases into a single description. The notation
is a dashed arrow from the including to the included use case, with the label "«include»". This usage
resembles a macro expansion where the included use case behavior is placed inline in the base use
case behavior. There are no parameters or return values. To specify the location in a flow of events
in which the base use case includes the behavior of another, you simply write include followed by
the name of use case you want to include, as in the following flow for track order.
➢ Extend
In another form of interaction, a given use case (the extension) may extend another. This
relationship indicates that the behavior of the extension use case may be inserted in the extended
use case under some conditions. The notation is a dashed arrow from the extension to the extended
use case, with the label "«extend»". The notes or constraints may be associated with this
relationship to illustrate the conditions under which this behavior will be executed. Modelers use
the «extend» relationship to indicate use cases that are "optional" to the base use case. Depending on
the modeler’s approach "optional" may mean "potentially not executed with the base use case" or
it may mean" not required to achieve the base use case goal".
➢ Associations
Associations between actors and use cases are indicated in use case diagrams by solid lines.
An association exists whenever an actor is involved with an interaction described by a use case.
Associations are modelled as lines connecting use cases and actors to one another, with an optional
arrowhead on one end of the line. The arrowhead is often used to indicate the direction of the initial
invocation of the relationship or to indicate the primary actor within the use case. The arrowheads
imply control flow and should not be confused with data flow.
• Identifying Actor
Login
Log Out
Register / Login
View profile
Log out
UML class diagrams model static class relationships that represent the fundamental
architecture of the system. Note that these diagrams describe the relationships between classes, not
those between specific objects instantiated from those classes. Thus the diagram applies to all the
objects in the system. It represents the static view of an application. Class diagram describes the
attributes and operations of a class and also the constraints imposed on the system. It shows a
collection of classes, interfaces, associations, collaborations, and constraints.
➢ Classes: These titled boxes represent the classes in the system and contain information
about the name of the class, fields, methods and access specifies. Abstract roles of the
Class in the system can also be indicated
➢ Interfaces: These titled boxes represent interfaces in the system and contain information
about the name of the interface and its methods. Relationship Lines that model the
relationships between classes and interfaces in the system.
➢ Dependency: A dotted line with an open arrowhead that shows one entity depends on the
behavior of another entity. Typical usages are to represent that one class instantiates
another or that it uses the other as an input parameter. It is defined as a relation between
two classes, where one class depends on another class but another class may or may not
depend on the first class. So any change in one of the classes may affect the functionality
of the other class, that depends on the first one.
➢ Aggregation: Represented by an association line with a hollow diamond at the tail end. An
aggregation models the notion that one object uses another object without "owning" it and
thus is not responsible for its creation or destruction. In Aggregation, both the entries can
survive individually which means ending one entity will not affect the other entity.
➢ Inheritance: A solid line with a solid arrowhead that points from a sub-class toa
super class or from a sub-interface to its super-interface. In Aggregation, both the
entries can survive individually which means ending one entity will not affect the
other entity.
➢ Implementation: A dotted line with a solid arrowhead that points from a class to
the interface that it implement .
➢ Composition: Represented by an association line with a solid diamond at the tail end. A
composition models the notion of one object "owning" another and thus being responsible
for the creation and destruction of another object. It is a restricted form of Aggregation in
which two entities are highly dependent on each other.
The sequence diagram is an element that is used primarily to showcase the interaction that
occurs between multiple objects. This interaction will be shown over certain period of time.
Because of this, the first symbol that is used is one that symbolizes the object.
➢ Lifeline
A lifeline will generally be generated, and it is a dashed line that sits vertically, and the top
will be in the form of a rectangle. This rectangle is used to indicate both the instance and the class.
If the lifeline must be used to denote an object, it will be underlined.
➢ Messages
To showcase an interaction, messages will be used. These messages will come in the form
of horizontal arrows, and the messages should be written on top of the arrows. If the arrow has a
full head, and it’s solid, it will be called a synchronous call. If the solid arrow has a stick head, it
will be an asynchronous call. Stick heads with dash arrows are used to represent return messages.
➢ Objects
Objects will also be given the ability to call methods upon themselves, and they can add net
activation boxes. Because of this, they can communicate with others to show multiple levels of
processing. Whenever an object is eradicated or erased from memory, the "X" will be drawn at the
lifeline's top, and the dash line will not be drawn beneath it. This will often occur as a result of a
message. If a message is sent from the outside of the diagram, it can be used to define a message
that comes from a circle that is filled in. Within a UML based model, a Super step is a collection of
steps which result from outside stimuli.ac
• Specify the flow of control more formally, attach pre and post
conditions to each message.
Login
Register / Login
1.View user uploaded crop Data set Details
11.View profile
In collaboration diagram the method call sequence is indicated by some numbering technique as
shown below. The number indicates how the methods are called one after another. We have taken
the same order management system to describe the collaboration diagram. The method calls are
similar to that of a sequence diagram. But the difference is that the sequence diagram does not
describe the object organization whereas the collaboration diagram shows the object organization.
The four major components of a collaboration diagram are objects, actors, links, and messages.
• Activities
• Association
• Conditions
• Constraints
The following are the basic notational elements that can be used to make up a diagram:
Initial state
An initial state represents a default vertex that is the source for a single transition to the default
state of a composite state. There can be at most one initial vertex in a region. The outgoing
transition from the initial vertex may have a behavior, but not a trigger or guard. It is represented
by Filled circle, pointing to the initial state.
Final state
A special kind of state signifying that the enclosing region is completed. If the enclosing
region is directly contained in a state machine and all other regions in the state machine also are
completed, then it means that the entire state machine is completed.
It is represented by Hollow circle containing a smaller filled circle, indicating the final
state.
Rounded rectangle
It denotes a state. Top of the rectangle contains a name of the state. Can contain a horizontal
line in the middle, below which the activities that are done in that state are indicated.
Arrow
It denotes transition. The name of the event (if any) causing this transition labels the arrow
body.
Where to use Activity Diagrams?
Activity diagram is suitable for modelling the activity flow of the system. An application
can have multiple systems. Activity diagram also captures these systems and describes the flow
from one system to another. This specific usage is not available in other diagrams.
Activity diagram can be used for-
• Modelling work flow by using activities.
• Modelling business requirements.
• High level understanding of the system’s functionalities.
• Investigating business requirements at a later stage.
• Beginning at the operation’s initial state, specify the activities and actions.
Login
Invalid
Check
Valid
Log Out
Invalid
Check
Valid
View profile
Log Out
Data Base
CHAPTER-7
SYSTEM IMPLEMENTATION
Crop production depends on many agricultural parameters. Proposed work is based on the
production of crops in previous years, crops can be recommended to the farmers. This kind of
suggestions will make farm er to know that whether that particular is yielding a good production
in recent years. Production of crops may become less due to any crop disease, water problem and
many other factors. While considering about the production, farmers may get knowledge about
which crop is in high volume in the market in that year. Based on this farmer can take decision of
trend on crops in recent years. Farmers will be given recommendation by considering the season
of crop production. Agriculture Dataset were taken that contains fields like crop year, crop name,
District, Season, A rea cultivated and production. Recommendations were given to user based on
the production of crops, season when the crops cultivated.
CHAPTER-8
TESTING
8.1 TESTING PRINCIPLES:
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, subassemblies, 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.
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. 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. This is a
structural testing, that relies on knowledge of its construction and is invasive. It is a software
development process in which the smallest testable parts of an application, called units, are
individually and independently scrutinized for proper operation.
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. It is a type of software testing in which the different units, modules
or components of a software application are tested as a combined entity.
Functional testing:
Functional tests provide systematic demonstrations that functions tested are available as specified
by the business and technical requirements, system documentation, and user manuals.
System testing:
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.
Types of System testing:
• Performance testing
• Load testing
• Stress testing
• Scalability testing
Features to be tested:
Integration Testing:
Integration tests are designed to test integrated software components to determine if they
actually run as one program.
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.
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.
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. This techniques analyze the internal
structures, internal design, code structure and the working of the software rather than just the
functionality as in black box testing.
It is also called glass box testing or clear box testing or structural testing.
Working process of white box testing:
The following describes the working process of white box testing-
• Input: Requirements, Functional specifications, design documents, source code.
• Processing: Performing risk analysis for guiding through the entire process.
• Proper test planning: designing test cases so as to cover entire code. Execute rinse-
repeat until error-free software is reached. Also, the results are communicated.
• Output: Preparing final report of the entire testing process.
Cyclomatic Complexity:
• Cyclomatic complexity coincides with the number of regions of the flow graph.
• The cyclomatic complexity, V(G), of a flow graph G, is defined as V(G) = Edges – Nodes
+2
• The cyclomatic complexity, V(G), of a flow graph G, is also defined as V(G) = predicate
nodes + 1
From the flow graph of the figure, the cyclomatic complexity would be:
• 1–11
• 1–2–3–4–5–10–1–11
• 1–2–3–6–7–9–10–1–11
• 1–2–3–6–8–9–10–1–11
• Determine the test cases that allow execution of each previous paths.
• Execute each test case and verify that the results are as expected.
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.
This technique usually considers the state, outputs, and inputs of a system during a specific period.
Based on the type of software that is tested, it checks for the behavioral changes of a system
in a particular state or another state while maintaining the same inputs.
The test cases for this technique are created by checking the sequence of transitions and state
or events among the inputs.
The whole set of test cases will have the traversal of the expected output values and all states.
CHAPTER-9
SAMPLE SOURCE CODE
Design.html
<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Remote User</title>
<link href="https://fonts.googleapis.com/css?family=Russo+One" rel="stylesheet">
<style>
body{background: url("{% static 'bg.jpg' %}");
background-size:cover;
font-family: 'Russo One', sans-serif;
background-color: #000000;
}
h1{
color:white;
}
.topnav {
overflow: hidden;
background-color: #812;
}
.topnav a {
float: left;
color: #FFFFFF;
text-align: center;
<div class="topnav">
<a class="active" href="{% url 'Add_DataSet_Details' %}">POST CROPS DATA SETS</a>
<a href="{% url 'Predict_Crop_Yiled_OnDataSets' %}">PREDICT CROP YIELD AND
PRODUCTION </a>
<a href="{% url 'ViewYourProfile' %}">VIEW YOUR PROFILE</a>
<a href="{% url 'login' %}">LOGOUT</a>
</div>
<div class="mainholder">
{% block userblock %}
{% endblock %}
</div>
</body>
</html>
Login.html
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"
id="bootstrap-css">
{% load static %}
<!DOCTYPE html>
<html lang="en">
<title>Login</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-
fit=no">
<head>
<style>
body {background: url("{% static 'bg.jpg' %}");
}
.container-fluid {padding:50px;}
.container{background-color:white;padding:50px; }
#title{font-family: 'Fredoka One', cursive;
}
.text-uppercase{
font-family: 'Righteous', cursive;
}
.style1 {color: #FF0000}
.style4 {color: #FF0000; font-weight: bold; }
.style5 {
font-family: 'Righteous', cursive;
color: #FF0000;
font-weight: bold;
}
</style>
</head>
<body>
<div class="container-fluid">
<div >
<h2 class="style1 text-center" id="title"><strong>Agricultural Crop
Recommendations based on Productivity and Season
</strong></h2>
<p class="text-center">
<div class="col-md-2">
<! null >
</div>
<div class="col-md-5">
<form method="POST" role="form">
{% csrf_token %}
<fieldset>
{% load static %}
<img src="{% static '/login.jpg' %}" alt="My
image">
<p class="style5"> Login Using Your
Account: </p>
<div class="form-group">
<input type="text"
name="username" class="form-control input-lg" placeholder="User Name" required>
</div>
<div class="form-group">
<input type="password"
name="password" class="form-control input-lg" placeholder="Password" required>
</div>
<div>
<input type="submit"
name="submit1" class="btn btn-md" value="sign_in">
</div></br>
<div>
</div>
</body>
</html>
Register.html
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"
id="bootstrap-css">
{% load static %}
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-
fit=no">
<style type="text/css">
<!--
.style1 {
color: #FF0000;
font-weight: bold;
}
-->
</style>
<head>
}
</style>
</head>
<body>
<div class="container-fluid">
<div>
<h2 class="text-center style1" id="title">Agricultural Crop
Recommendations based on Productivity and Season
</h2>
<p class="text-center">
<span class="style1"><small id="passwordHelpInline"
class="text-muted">Recommender System, Machine Learning and Data Science, Knowledge
Discovery in Databases, Naive Bayes
</small></span></p>
<hr>
<div class="row">
<div class="col-md-5">
<form role="form" method="POST" >
{% csrf_token %}
<fieldset>
{% load static %}
<img src="{% static '/Register.jpg' %}" alt="My
image"><br>
<span class="style1">REGISTER YOUR
DETAILS HERE !!! </span>
<div class="form-group">
<input type="text"
name="username" id="username" placeholder="User Name" required>
</div>
<div class="form-group">
<input type="email" name="email"
id="email" placeholder="Email Address" required>
</div>
<div class="form-group">
<input type="password"
name="password" id="password" placeholder="Password" required>
</div>
<div class="form-group">
<input type="number"
name="phoneno" id="phoneno" placeholder="Mobile Number" required>
</div>
<div class="form-group">
</div>
<div class="form-check">
<label class="form-check-label"></label>
</div>
<div>
<input type="submit"
class="btn btn-lg btn-primary" name="submit" value="sign_up" >
</div>
</fieldset>
<div><br>
<button class="btn btn-lg "><a href="{% url
'login' %}">User Login</a></button>
</div>
</form>
</div>
<div class="col-md-2">
<! null >
</div>
</div>
</body>
</html>
ViewYourProfile.html
{% extends 'RUser/design.html' %}
{% block userblock %}
<link rel="icon" href="images/icon.png" type="image/x-icon" />
<link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Righteous"
rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Fredoka+One" rel="stylesheet">
<style>
body {background-color:#000000;}
.container-fluid {padding:50px;}
.container{background-color:white;padding:50px; }
#title{font-family: 'Fredoka One', cursive;
}
.text-uppercase{
font-family: 'Righteous', cursive;
}
.style1 {
color: #FF0000;
font-weight: bold;
}
</style>
<body>
<div class="container-fluid">
<div class="container">
<div class="row">
<div class="col-md-5">
<form role="form" method="POST" >
{% csrf_token %}
<fieldset>
<p class="text-uppercase pull-center
style1">YOUR PROFILE DETAILS !!! </p>
<hr>
<div class="form-group">
<P><span class="style1">USER NAME</span> =
{{object.username}}</P>
</div>
<div class="form-group">
<P><span class="style1">EMAIL</span> = {{object.email}}</P>
</div>
<div class="form-group">
<P><span class="style1">PASSWORD</span> = {{object.password}}</P>
</div>
<div class="form-group">
<p><span class="style1">MOBILE NO</span> = {{object.phoneno}}</p>
</div>
<div class="form-group">
<p><span class="style1">COUNTRY</span> = {{object.country}}</p>
</div>
<div class="form-group">
<p><span class="style1">STATE</span> = {{object.state}}</p>
</div>
<div class="form-group">
<p><span class="style1">CITY</span> = {{object.city}}</p>
</div>
</fieldset>
</form>
</div>
<div class="col-md-2">
<! null >
</div>
</div>
</div>
</div>
{% endblock %}
CHAPTER-10
RESULTS
Below figure shows the program running on pycharm.
Below figure shows the admin login page of Agricultural Crop Recommendations based on
Productivity and Season. Here service Provider will login.
Below figure shows the user login page of Agricultural Crop Recommendations based on
Productivity and Season. Here user will login.
Here user uploaded crop dataset will be trained with Logistic Regression.
Below figure shows the labelled data after training with ML algorithms.
Below figure shows the predict crop yield of Agricultural Crop Recommendations based on
Productivity and Season. Here user will upload the crop details to predict his crop yield.
CHAPTER-11
CONCLUSION
In this project, significance of management of crops was studied vastly. Farmers need assistance
with recent technology to grow their crops. Proper prediction of crops can be informed to
agriculturists in time basis. Many Machine Learning techniques have been used to analyze the
agriculture parameters. Some of the techniques in different aspects of agriculture are studied by a
literature study. Blooming Neural networks, soft computing techniques plays significant part in
providing recommendations. Considering the parameter like production and season, more
personalized and relevant recommendations can be given.
FUTURE ENHANCEMENTS
In future, Blooming Neural networks, Soft computing techniques plays significant part in
providing recommendations. Considering the parameter like production and season, more
personalized and relevant recommendations can be given to farmers which makes them to yield
good volume of production
CHAPTER-12
BIBLIOGRAPHY
[1] U. Paschen, C. Pitt, and J. Kietzmann, ‘‘Artificial intelligence: Building blocks and an
innovation typology,’’ Bus. Horizons, vol. 63, no. 2, pp. 147–155, Mar. 2020.
[2] P. Yu, Z. Xia, J. Fei, and S. K. Jha, ‘‘An application review of artificial intelligence in
prevention and cure of COVID-19 pandemic,’’ Comput., Mater. Continua, vol. 65, no. 1, pp. 743–
760, 2020.
[3] L. Shen, X. Chen, Z. Pan, K. Fan, F. Li, and J. Lei, ‘‘No-reference stereoscopic image quality
assessment based on global and local content characteristics,’’ Neurocomputing, vol. 424, no. 2,
pp. 132–142, Feb. 2021.
[4] H. Beck, ‘‘Banking is essential, banks are not. The future of financial intermediation in the
age of the Internet,’’ Netnomics, vol. 3, no. 1, pp. 7–22, 2001.
[5] G. N. F. Weiss, K. Pelger, and A. Horsch, ‘‘Mitigating adverse selection in P2P lending–
empirical evidence from prosper.com,’’ SSRN Electron. J., vol. 19, no. 7, pp. 65–93, 2010.
[6] Y. Houston, C. Jongrong, J. H. Cliff, and H. Y. Chih, ‘‘E-commerce, R&D, and productivity:
Firm-level evidence from Taiwan,’’ Inf. Econ. Policy, vol. 18, no. 5, pp. 561–569, 2013.
[7] F. Allen, J. Mcandrews, and P. Strahan, ‘‘E-finance: An introduction,’’ Center Financial Inst.
Work. Papers, vol. 22, no. 1, pp. 25–27, 2012.