Professional Documents
Culture Documents
Design and Implementation of An Online Farm Marketing System
Design and Implementation of An Online Farm Marketing System
Design and Implementation of An Online Farm Marketing System
INTRODUCTION
and development. This sector not only meets food demands of population but also
provides raw material for industry besides providing surplus for exports. Despite
the face this sector has witnessed many high points and low points in recent years,
overall growth has remained satisfactory. This sector has a proven great potential
to support the nation’s economy both now and in the future if due consideration is
given to solve rising issues. Reasonable agriculture growth and improvement rely
on how concerns various partners particularly farmers who are facing several risks
in farm production and marketing of their farm produce, are adequately addressed
(Mawazo, Michael & ko, 2014). Regularly, farmers need to bear value reduction in
frequent food surpluses and deficiencies have featured the need to modernize
marketing system framework so that goal situations can be handled. Marketing can
place or areas where buyers and sellers gather and interact for buying and selling
central role of assembling rural agricultural produce from scattered and vast
production areas and distribute these commodities further to consumers and other
storage, promotion and sale of agricultural products (Metkewar & Acharya, 2016).
these products flow from farm producers to consumers. While some of these major
activities are performed on farmers’ farm, the others are carried out off-farm by
Agricultural farm products differ from industrial products due to their perishable
to aid in displaying farm produce from farmers across the country to meet major
stakeholders in need of this farm products. This will assist in growing the economy
of the country when international investors invest in the farm produce seen on the
This research work was undertaken to solve the various challenges encounter in
showcasing and delivering goods and services to different client around the globe.
successfully executed. Most shops are experienced some draw back in their
operation due to the current shopping system (manual shopping) which are:
iv. It does not give a customer the incredible convenience to shop at any time of
Internet and the system administrator to approve requests shoppers can buy
products anywhere and a database that will maintain the products detail
information.
1.3 Objective of the Study
The main aim and object of this study is to design and implement an online farm
ii. Enhance link between Farmers and end product users in urban areas
iii. Ease the distribution of farm products across the country through
technology.
1.5 million people. Recently, this sector has shown 8 to 10 percent growth rate per
middlemen in the market chain) remain one of the most controversial issues in
Africa’s agricultural economy. It is argued that middlemen exploit marginal
farmers and hamper their legitimate share which can be solved with the use of
automating in itself a cart system that stores all sales details prior to when the user
i. The system will also incorporate in its design a billing system that will
display the total sales and product at the close of each transaction.
ii. The system will not incorporate in its development all the functions of a
Usually, every work has some limitations and this study is not exempted. The two
major limitations of this study are the high programming technique as well as
JQUERY and MYSQL prevents the researcher to have an in depth study and
analysis on the subject matter. While the issue of financial constraint limits the
frequency of investigation to/from the institution toward gathering the necessary
Market - a regular gathering of people for the purchase and sale of provisions,
livestock, and other commodities. A regular gathering of people for the purchase
3.1 Methodology
series of steps, methods, techniques and procedures which governs the collection,
analysis and design of a particular project. In the dynamic world, the subject
methodology, system analysis and design mainly deal with the software
defined as the analysis of the principles of methods, rules and postulates employed
design work and ensure that a higher degree of accuracy and efficiency is adopted.
The design methodology used helps to ensure that a thorough study of the present
system is carried out, thus helping the project designer to completely understand
the modus operandi of the present existing system so as to know how the new
The System will adopt the object oriented approach to system design, which has
abstractions of the system attributes and behaviours using necessary tools such as
Object oriented analysis and design methodology is used to analyze the present
system as well as to design the proposed system with the primary aim of;
2. Finding and identifying business objects. To achieve this task, the steps
a) Review each use case to find potential objects (which are usually noun
4. Model the behavior of each object using state chart diagram. MrsEze, u.f
(2008).
During the course of this study, the researcher applied different method of finding
3.1.1 Interview
The researcher visited the human resource (HR) unit of the college and other firms
random job seekers were also interviewed. The facts and answers incurred from the
discussion made it possible for the researcher to begin the design of the
computerized system.
The researcher visited some libraries and made references to already written
document for more details concerning this study. To this effect, the fact provided
by the referenced materials made it possible for the completion of the project.
3.2.3 Internet
Other relevant materials needed for the completion of this project work were
gotten from the internet through search engines like google, dock-dock-go, etc.
During the feasibility study, we realized that most farmers are operating on manual
(offline) method of marketing their produce which involve going to the local
markets and display their produce in order to be purchased which consumes a lot
of time and strength before the customer will search for the goods needed. These
Analysis is an integral part of the development cycle of any system. The proposed
new system will make use of files and records in table’s prepared using database to
produce based on web technologies. Having analysed the existing system, there is
need for an alternative system; the proposed system (online farm marketing
Convenience
Consistency of Data
Reliability
Increases Productivity
Variety
The constraints discovered in the existing system during the course of carrying out
The main reason the new system is being designed is to switch over from offline
purchase and sale of farm produce. This new system will be designed using
HTML, CSS, Javascript, PHP, and MySQL such that it will enhance link to
It gives access for creating a database file structure for storing and retrieval
of information.
Online Farm
Market
Homepage
CHAPTER FOUR
Before implementing the actual design of the project, a few user interface designs
were constructed to visualize the user interaction with the system as they browse
feedback system for a boutique. When the user types in the URL of the online store
in the address field of the browser, a Web Server is contacted to get the requested
information, Apache Server acts as the Web Server. The sole task of a Web Server
HTTP response. The first thing Apache does when a request comes in is to decide
how to handle the request. Its decision is based upon the requested file's extension.
For example, if the requested file has the .php extension, Apache will route the
The PHP Engine then gets the requested file, and if necessary, contacts the
database through MySQL for the required file and then the information is sent back
information about a vendor’s products and services, ask questions, select items
they wish to purchase, and submit payment information. Vendors need to be able
to track customer inquiries and preferences and process their orders. So, a well-
commerce site
In a static Web page, content is determined at the time when the page is created.
As users access a static page, the page always displays the same information.
dynamic Web page, content varies based on user input and data received from
external sources. We use the term “data-based Web pages” to refer to dynamic
Web pages deriving some or all of their content from data files or databases.
A data-based Web page is requested when a user clicks a hyperlink or the submit
button on a Web page form. If the request comes from clicking a hyperlink, the
link specifies either a Web server program or a Web page that calls a Web server
program. In some cases, the program performs a static query, such as “Display all
items from the Inventory”. Although this query requires no user input, the results
vary depending on when the query is made. If the request is generated when the
user clicks a form’s submit button, instead of a hyperlink, the Web server program
typically uses the form inputs to create a query. For example, the user might select
five products to be purchased and then submit the input to the Web server program.
The Web server program then services the order, generating a dynamic Web page
response to confirm the transaction. In either case, the Web server is responsible
for formatting the query results by adding HTML tags. The Web server program
then sends the program’s output back to the client’s browser as a Web page.
The input interface presents a form with text, label and command buttons. The text
boxes allow users to type in text while the command button is used to initiate
events that execute some server/client site codes. In designing the input interface,
of which the input form is one, a data structure that binds the input data to a table
was drawn. The binding was done by simply using the form objects to relate the
respective fields as contained in the database design. The sample input form
The output is rendered mostly on the screen. In other words, all outputs from this
system is only presented to the screen, the specification was designed in such a
way that they give good representation on the computer screen. The output format
is basically the report form. It displays the list of all items in the shopping cart and
The diagram below depicts the file designs that make up the system and the
Client Register
Identity
Make Purchase Provider
Web Customer
Credit
Checkout payment
New Customer service
PayPal
4.5 Database Design
In this section, the basic structure of the tables composing the database for the
project are shown along with information about primary and foreign keys.
The researcher will be talking about the system platform used, IDE (integrated
The system platform used is windows 10. Also the IDE (integrated development
environment) used is Sublime text 3 the latest version and the programming
language used is PHP previously known as personal home page. PHP was created
designed for creating dynamic web pages and web pages that effectively work with
databases.
Several reasons ride the choice of using PHP for this system, one of which is its
extensive portability and use over several web host servers on the internet. Also
PHP possesses several inbuilt functions which allow it to integrate well with the
widely used and accepted database storage management system for the web-
MySQL. Due to its wide use, several documentations are available online which
will guarantee that materials about any aspect of its use will be easily found.
4.7 System Requirements
Number Description
1 PC with 2 GB hard-disk
Number Description
with MS-office
Atomic: All operations in the transaction are executed properly. In other words,
they make up a single unit of work. For example, if a customer moves and a
transaction is used to reflect that change in the database, all parts of the address
(street, city, state, etc) must be changed as an atomic action, rather than changing
database. All the relationships between data in a database are maintained correctly.
For example, if customer information uses a tax rate from a state tax table, the state
entered for the customer must exist in the state tax table.
concurrently. Changes made by other clients cannot affect the current changes. For
example, if two data entry operators try to make a change to the same customer at
the same time, one of two things occurs: either one operator's changes are accepted
and the other is notified that the changes were not made, or both operators are
notified that their changes were not made. In either case, the customer data is not
Durability: Changes the transaction has performed persist in the database. Once a
set of commands is complete, those commands are undone and the data is restored
Transaction processing is particularly important for Web applications that use data
access, since Web applications are distributed among many different clients. In a
Web application, databases are a shared resource, and having many different
clients distributed over a wide area can present these key problems:
Contention for resources. Several clients might try to change the same
record at the same time. This problem gets worse the more clients you have.
Unexpected failures. The Internet is not the most reliable network, even if
your Web application and Web server are 100 percent reliable. Clients can
or by power failures.
Web application life cycle. Web applications do not follow the same life
cycle as Windows applications —Web forms live for only an instant, and a
client can leave your application at any point by simply typing a new
1. Begin a transaction.
4. If errors occurred, restore the database to its state at the beginning of the
Suppose two users try to add the same product to the shopping cart and try to place
an order at the exact same time. An update should be done to the Products table
after the order is placed, but if only the latest transaction is noted down, the
product quantity will differ in the real world. This situation has to be handled as in
operations that succeeds or fails as a logical unit. That is, either both the updates
PROGRAM INTERFACES
APPENDIX II
<!DOCTYPE html>
<style>
#header{
height:70vh;
width:calc(100%);
position:relative;
top:-1em;
#header:before{
content:"";
position:absolute;
height:calc(100%);
width:calc(100%);
background-size:cover;
background-repeat:no-repeat;
}
#header>div{
position:absolute;
height:calc(100%);
width:calc(100%);
z-index:2;
#top-Nav a.nav-link.active {
color: #343a40;
font-weight: 900;
position: relative;
#top-Nav a.nav-link.active:before {
content: "";
position: absolute;
width: 33.33%;
left: 33.33%;
bottom: 0;
@media (max-width:760px){
#top-Nav a.nav-link.active {
background: #343a40db;
color: #fff;
#top-Nav a.nav-link.active:before {
content: "";
position: absolute;
width: 100%;
left: 0;
bottom: 0;
h1.w-100.text-center.site-title.px-5{
font-size:2.5em !important;
</style>
<div class="wrapper">
<script>
alert_toast("<?php echo $_settings->flashdata('success') ?>",'success')
</script>
<?php endif;?>
</div>
</div>
<div class="container">
<?php
include '404.html';
}else{
if(is_dir($page))
include $page.'/index.php';
else
include $page.'.php';
?>
</div>
</section>
<h5 class="modal-title"></h5>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<div class="modal-content">
<h5 class="modal-title">Confirmation</h5>
</div>
<div id="delete_content"></div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<div class="modal-content">
<div class="modal-header rounded-0">
<h5 class="modal-title"></h5>
</button>
</div>
</div>
</div>
</div>
</div>
<div class="modal-content">
</div>
</div>
</div>
</div>
</html>
<!DOCTYPE html>
<script>
start_loader()
</script>
<style>
body{
width:calc(100%);
height:calc(100%);
background-repeat: no-repeat;
background-size:cover;
#logo-img{
width:15em;
height:15em;
object-fit:scale-down;
object-position:center center;
}
#system_name{
color:#fff;
</style>
<script>
</script>
<?php endif;?>
<div class="login-box">
</div>
<div class="card-body">
<p class="login-box-msg">Sign in to start your session</p>
<div class="input-group-append">
<div class="input-group-text">
</div>
</div>
</div>
<div class="input-group-append">
<div class="input-group-text">
</div>
</div>
</div>
<div class="col-8">
<div class="col-4">
</div>
</div>
</div>
</form>
</p> -->
</div>
</div>
</div>
<script src="plugins/jquery/jquery.min.js"></script>
<script src="plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="dist/js/adminlte.min.js"></script>
<script>
$(function(){
end_loader();
$('#cclogin-frm').submit(function(e){
e.preventDefault();
$('.err-msg').remove();
var el = $('<div>')
el.addClass("alert err-msg")
el.hide()
if(_this[0].checkValidity() == false){
_this[0].reportValidity();
return false;
start_loader();
$.ajax({
url:_base_url_+"classes/Login.php?f=login_client",
cache: false,
contentType: false,
processData: false,
method: 'POST',
type: 'POST',
dataType: 'json',
error:err=>{
console.error(err)
_this.prepend(el)
el.show('.modal')
end_loader();
},
success:function(resp){
location.href= './';
el.addClass('alert-danger').text(resp.msg);
_this.prepend(el)
el.show('.modal')
}else{
console.error(resp)
$("html, body").scrollTop(0);
end_loader()
})
})
})
</script>
</body>
</html>
<style>
</style>
<div class="contain-fluid">
<div class="container-fluid">
<h3 class="text-center">Welcome</h3>
<hr>
<div class="welcome-content">
</div>
</div>
</div>
</div>
<h3 class="text-center"><b>Products</b></h3>
<center><hr class="w-25"></center>
<?php
while($row = $products->fetch_assoc()):
?>
</div>
<div class="card-body border-top border-gray">
</div>
<div class="d-flex">
</div>
<div class="d-flex">
</div>
</div>
</a>
</div>
</div>
<div class="text-center">
</div>
</div>
</div>
<h2 class="text-center">About</h2>
<div>
</div>
</div>
</div>
</div>
<!DOCTYPE html>
<html lang="en" class="" style="height: auto;">
<body class="hold-transition">
<script>
start_loader()
</script>
<style>
html,body{
height: calc(100%);
width: calc(100%);
body{
width:calc(100%);
height:calc(100%);
background-repeat: no-repeat;
background-size:cover;
#logo-img{
width:15em;
height:15em;
object-fit:scale-down;
object-position:center center;
}
#system_name{
color:#fff;
#cimg{
width:200px;
height:200px;
object-fit:scale-down;
object-position:center center
</style>
<script>
</script>
<div class="col-5">
</div>
</div>
<div class="card-body">
<div class="row">
</div>
</div>
</div>
<option>Male</option>
<option>Female</option>
</select>
</div>
</div>
</div>
<div class="row">
</div>
</div>
<div class="row">
<div class="form-group col-md-6">
</div>
</div>
<div class="row">
<label for="password"
class="control-label">Password</label>
</span>
</div>
</div>
</div>
</span>
</div>
</div>
</div>
</div>
<div class="row">
</div>
</div>
<div class="row">
</div>
<div class="col-8">
</div>
<div class="col-4">
</div>
</div>
</div>
</form>
</p> -->
</div>
</div>
</div>
</div>
</div>
<script>
function displayImg(input,_this) {
$('#cimg').attr('src', e.target.result);
reader.readAsDataURL(input.files[0]);
}else{
$(function(){
end_loader();
$('body').height($(window).height())
$('.select2').select2({
width:'100%'
})
$('.select2-selection').addClass("form-border")
$('.pass_view').click(function(){
if(type == 'password'){
_el.find('input').attr('type','text').focus()
$(this).find('i.fa').removeClass('fa-eye-slash').addClass('fa-eye')
}else{
_el.find('input').attr('type','password').focus()
$(this).find('i.fa').addClass('fa-eye-slash').removeClass('fa-eye')
})
$('#cregister-frm').submit(function(e){
e.preventDefault();
$('.err-msg').remove();
var el = $('<div>')
el.addClass("alert err-msg")
el.hide()
if(_this[0].checkValidity() == false){
_this[0].reportValidity();
return false;
if($('#password').val() != $('#cpassword').val()){
_this.append(el)
el.show('slow')
$('html,body').scrollTop(0)
return false;
start_loader();
$.ajax({
url:_base_url_+"classes/Users.php?f=save_client",
cache: false,
contentType: false,
processData: false,
method: 'POST',
type: 'POST',
dataType: 'json',
error:err=>{
console.error(err)
_this.prepend(el)
el.show('.modal')
end_loader();
},
success:function(resp){
location.href= './login.php';
_this.prepend(el)
el.show('.modal')
}else{
console.error(resp)
$("html, body").scrollTop(0);
end_loader()
})
})
})
</script>
</body>
</html>
<?php
foreach($user->fetch_array() as $k =>$v){
$$k = $v;
}
?>
<script>
</script>
<?php endif;?>
<style>
#cimg{
width:200px;
height:200px;
object-fit:scale-down;
object-position:center center
</style>
<div class="card-body">
<div class="container-fluid">
<div id="msg"></div>
</div>
</div>
</div>
</select>
</div>
</div>
</div>
<div class="row">
</div>
</div>
<div class="row">
</div>
</div>
<div class="row">
</span>
</div>
</div>
</div>
</span>
</div>
</div>
</div>
</div>
<div class="row">
</div>
</div>
<div class="row">
</div>
</div>
<div class="row">
<div class="form-group col-md-6">
<label for="oldpassword"
class="control-label">Enter Current Password</label>
<input type="password"
id="oldpassword" name="oldpassword" class="form-control form-control-sm
form-control-border" reqiured>
<div class="input-group-
append bg-transparent border-top-0 border-left-0 border-right-0 rounded-0">
<span class="input-
group-text bg-transparent border-top-0 border-left-0 border-right-0 rounded-0">
<a
href="javascript:void(0)" class="text-reset text-decoration-none pass_view"> <i
class="fa fa-eye-slash"></i></a>
</span>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
function displayImg(input,_this) {
$('#cimg').attr('src', e.target.result);
reader.readAsDataURL(input.files[0]);
}else{
$(function(){
$('.pass_view').click(function(){
if(type == 'password'){
_el.find('input').attr('type','text').focus()
$(this).find('i.fa').removeClass('fa-eye-
slash').addClass('fa-eye')
}else{
_el.find('input').attr('type','password').focus()
$(this).find('i.fa').addClass('fa-eye-
slash').removeClass('fa-eye')
})
$('#manage-user').submit(function(e){
e.preventDefault();
$('.err-msg').remove();
var el = $('<div>')
el.addClass("alert err-msg")
el.hide()
if(_this[0].checkValidity() == false){
_this[0].reportValidity();
return false;
if($('#password').val() != $('#cpassword').val()){
_this.prepend(el)
el.show('slow')
$('html,body').scrollTop(0)
return false;
start_loader();
$.ajax({
url:_base_url_+"classes/Users.php?f=save_client",
cache: false,
contentType: false,
processData: false,
method: 'POST',
type: 'POST',
dataType: 'json',
error:err=>{
console.error(err)
el.addClass('alert-danger').text("An error
occured");
_this.prepend(el)
el.show('.modal')
end_loader();
},
success:function(resp){
if(typeof resp =='object' && resp.status ==
'success'){
location.reload();
el.addClass('alert-danger').text(resp.msg);
_this.prepend(el)
el.show('.modal')
}else{
console.error(resp)
$("html, body").scrollTop(0);
end_loader()
})
})
})
</script>