Вы находитесь на странице: 1из 83

PROJECT REPORT

on
“HELPER’S LIST”

Submitted to
Rashtrasant Tukdoji Maharaj Nagpur University,Nagpur
In Partial Fulfillment of the requirement of

Bachelor of Commerce (Computer Application)

Submitted by

Vandana Mahobiya
Dinky Setiya
Rishabh Sambarkar

Under the Guidance of


Prof. Megha Nanhe

Dr. Ambedkar Institute of Management Studies &


Research Deeksha Bhoomi Nagpur-440012
(2019-2020)
CERTIFICATE

This is to certify that Vandana Mahobiya, Dinky Setiya & Rishabh


Sambarkar has satisfactorily completed the project work entitled
“Helper’s list” in less than one academic session. This also certify that
this project work is the result of the candidate’s own work and is of
sufficiently high standard to warrant its presentation for the B.Com
(Computer Application ) program.
To the best of my knowledge this project or its part has not been

submitted to this university or any other university for any

Degree/Diploma.

Guide Name
Prof.Megha Nanhe

Internal Examiner External Examiner

Place:Nagpur

Date: Director
DECLARATION

We, Vandana Mahobiya, Dinky Setiya & Rishabh Sambarkar


hereby declare that the project entitled “Helper’s list” is the outcome of

our own research work based on personal study during academic session

2019 – 2020 and has not been submitted previously for award of any

degree or diploma to this university or any other university.

Vandana Mahobiya

Dinky Setiya

Rishabh Sambarkar
ACKNOWLEDGEMENT

“Words have never expressed human sentiments. This only an attempt to

express our deep gratitude which comes from our heart.”

It is a great pleasure for us to express our deep feeling of gratitude to our

respected guide Prof. Megha Nanhe(Assistant Professor, Dr.

Ambedkar Institute of Management Studies & Research, Nagpur) for

his great encouragement and unfailing support which provided needed

moral and confidence to carry on our work.

We are grateful to the Dr. S. S. Fulzele, (Director, Dr. Ambedkar

Institute of Management Studies & Research, Nagpur) for making all

facilities available for our work.

It is with profound gratitude that we wish to express our indebtedness to

Dr. Nirzar Kulkarni (Associate Director ,Dr. Ambedkar Institute of

Management Studies & Research, Nagpur) for his invaluable guidance

and supervision in completion of this project work.

We are grateful to our parents for their lovable support. Last but not the

least we are thankful to our friends and other faculty member for their

direct and indirect help for completion of this work.


Content Page
1. Introduction
2. Objective
3. Preliminary System Analysis
o Preliminary Investigation.
o Present System in Use.
o Flaws in Present System.
o Need of New System.
o Feasibility Study.
o Project Category
4. Software Engineering Paradigm Applied
o Modules
o System / Modular Chart.
5. Software & Hardware Requirement Specification.
6. Detailed System Analysis.
o Data Structures and Tables.
o Entity-Relationship Diagram.
7. System Design.
o Page Design.
o Source Code.
o Input screen & Output Screen.
8. System Security Measures.
9. Implementation, Evaluation and Maintenance.
10. Future Scope of the project.
11. Suggestion & Conclusion
12. Bibliography& References.
Index

Sr.no Topic Page no.

1 Introduction

2 Objective

3 Preliminary System Analysis

o Preliminary Investigation.
o Present System in Use.
o Flaws in Present System.
o Need of New System.
o Feasibility Study
o Project category
4 Software engineering Paradigm applied

o Modules
o System / Modular Chart.
5 Software and hardware requirement specification.

6 Detail systm analysis

o Data Structures and Tables.

o Entity-Relationship Diagram

7 System design

o Page Design.
o Source Code.
o Input screen & Output Screen
8 System security measures

9 Implementation , evaluation and maintenance

10 Future scope of the project

11 Suggestion and conclusion

12 Bibliography and references


Introduction:

When someone need aid with small but major household tasks, the
trouble arises when service skilled persons are unavailable or the trusted
providers are impossible to find, who delivers consistently flawless
service on instance.
Our online system for household services provides the most expedient
and annoys free way to get your domestic work done. We aim to help in
providing optimal solutions to all your household troubles with more
efficiency, ease and majorly, a delicate touch.
A single click system describes booking highly skilled in-house
professionals and gets your service done on time.
Customers’ overall willingness to pay is significantly and positively
correlated with the expectation that fee-based services would be better,
and with the belief that “pay for what you get” is the right thing to do.
Keeping that in sense our proposed system is basically a marketplace for
household services and it is the platform where the rates were
standardized and there is no necessitate haggling over prices.
Several aspects like painting, pest control, home cleaning, plumbing,
electrical works and carpentry services are involved in a system to
provide happy and healthy home atmosphere in order to satisfy
consumers.
Objectives

 The primary objective of the online system for household services


is about delivering the home services at the door step just by one
click.

 This paper discusses about main theme of the online home


services, numerous services provided and how the ordering and
delivery of services takes place.Online system for household
services can be used by any authorized user intending to seek for
household services through an ingenious web based system or a
mobile application.

 To provide an authenticated and authorized login module for the


users such as service seekers, service providers and the admin, by
providing appropriate credentials at the time of registration.

 To develop a web based online system for opting household


services and to develop an identical mobile application for opting
the services.

 To design a interactive User Interface for seeking services on the


go.

 To provide a secured online payment gateway for service seekers.

 To acknowledge the conformation of services opted by the users.


Preliminary system analysis

Preliminary system study is the first stage of system development


life cycle. In practice, the initial system study involves the
preparation of a System proposal which lists the Problem
Definition, Objectives of the Study, Terms of reference for Study,
Constraints, Expected benefits of the new system

 Preliminary Investigation

First we are investigating the market place where the


small businesses are working. We are asking some
question about making helper’slistwebsite. Then we are
providing some more adverting option such as website
and contact form. We got more response about this idea
and then we can take the decision to make this website
where the all things are available for local people.

 Present System In Use


In present scenario, people are buried up in a heavy work culture,
as everyone is engaged with busy schedules, and hectic tasks which
make them deviate from family life. If any issues encounter
unexpectedly, it distracts them and makes them choose over the
work they have to accomplish primarily. It is important to manage
both professional and family life. In such circumstances ,every one
of us would have fantasized about a kind of house which doesn’t
have any leaks in pipes, if it doesn’t have any mess in fixing a
furniture and a kind of house which never face any maintenance
issues and every one of us have thought that a life would be much
better if no point of issue arises in getting a service at your door
step and if there is no mess in bargaining a labor for home service.
 Flaws in Present System
This project is not an exception too. The following are the flaws in
the present system.

There is no security for the project anybody can change the


coding there should some security for coding. So nobody can
change the code.

Admin cannot edit anything.

There is no login form so it is not necessary for the user to register


first. Just open the website and go through it.

 Need Of New System


Today's world is the computer world. With the help of the
computer we can give Quicker and good information to customer.
It also keeps the record of the visitors.

We know that each of the best services in the market is very


tedious and time consuming job. So it today's need to have
something which provide is the information in a simple way. So
we provide the website for the customer convenience.

With the help of this website people can avail the information
according to the his requirements. This website also provides a
great convenience to the people all over the world.
 Feasibility study
Many feasibility studies are disillusioning for both users and analysts.
First the study often presupposes that when the feasibility document
being prepared, the analyst is in a position to evaluate solutions. Second
most studies tend to overlook the confusion inherent in system
development-the constraint & the assumed attitudes. If the feasibility
study is to serve as a decision document, it must answer three key
questions:
1. Is there a new and better way to do the job that will benefit the
user?
2. What are the costs and savings of the alternative(s)?
3. What is recommended?
The most successful system project are necessarily
the biggest or most visible in a business but rather those that truly
meet user expectations than for any other reason.
 Project Category

About PHP

A number of dynamic features involved in PHP makes exigent task


for both programmers and tools to reason about programs. while
features such as eval are being detached over time, more inhibited
dynamic features such as variable properties are becoming more
general [11]. Preliminarily as a collection of scripts for building
personal homepages, PHP is now one of the most widespread
programming languages for building server-side web applications.
Like other scripting languages, PHP includes a number of dynamic
language features, such as an eval expression to run code provided
at runtime as strings. special methods (referred to as magic
methods) that handle accesses of object fields and uses of methods
that are either not distinct or not evident and the ability to use
expressions instead of literal identifiers, to give the names of
variables, functions, methods, classes in new expressions, and
While these features often make the programmer’s job easier[12].
Word Press and Media Wiki explores a use of variable features,
magic methods, and evils have changed over time [13]. Word Press
explains trend in usage of features like Variables, Function Calls,
Method Calls, Object Creation, and Property Uses. The major
challenge for resolving software configuration errors is to find the
violating configuration options, a challenge that is aggravated in
multi-layer systems. Multi-layersystems consist of multiple layers,
each of which hides the complexity of a lower layer, and has its
own objects and configuration mechanisms .
Software engineering Paradigm applied

Modules

Registration Module

Customers who want to avail our services are invited to


register for a free account in our portal with few simple
steps, by providing valid credentials a customer is requested
to confirm account creation. Once they are done with
registration, a confirmation mail about a new account with
verification link is directed to the Email-id provided. Now a
customer is free to use our services when they are done
with account verification.

Service Module

When customers want to schedule a service, they can do it


by logging in to their account. The portal is specialized with
an interactive user interface which provides attractive way
of booking a service, where customers are requested to
provide the details about the services required. If required
customers are asked to upload the pictures of their
particulars, if they are confused with any of the services.
When done, the request is submitted and it is directed to
payment page for the payments to be done.

Payment Module

Once the payment is done, a confirmation


acknowledgement is forwarded to the user about all the
details of services opted and also an onsite confirmation is
displayed on the website. When the service is booked and
confirmed, service men from our organization will reach
you to deliver the service.
 Software and hardware requirement specification

 Software requirement:

 Hardware requirement:
Detailed system analysis

o DATA STRUCTURE

User

Helper’s list

Result
Request for the service
Payment /
refund

Website
(helper’s list)

Service providers Feedback


DATA TABLES
o Entity-relationship diagram
o Entity-relationship diagram involves three actors which include a
Admin, Service provider, and a Customer. Admin has the beginner
rights to access and modify the website where he/she needs to
login to do so. Then next to admin comes the customer who wants
avail our services should precede with the registration and login
process. If required a customer can upload a file that describes
about the services. At last a service provider who is the one who
provides a service, where they should also go with the registration
and login process and they should proceed with files uploaded
and once the service is confirmed they are intimated to provide
the service and when done after service if the customer is
unsatisfied with it based on the customers review if required they
should provide the re-service.
System design
Page design
Source code
o Log in :-

<?php

include_once "./include/header.php";

include_once "./msg/login.php";

?>

<div class="container" style="margin-top: 50px; width: 450px;">

<div class="card">

<img src="./images/logo.png" style="height: 150px; width:


150px; margin-left: 130px" class="card-img-top"

alt="...">

<div class="card-body">

<div class="card-title">

<h3 class="text-center">Login for Helper's List


Providers</h3>

</div>

<hr>

<form action="scripts/login.php" method="post">

<div class="form-group">

<label for="">Contact No.</label>

<input id="contact"

oninput="this.value = this.value.replace(/[^0-9.]/g,
'').replace(/(\..*)\./g, '$1');"
name="contact" type="text" class="form-control"
placeholder="Enter Your Contact No."

minlength="10" maxlength="10" required>

</div>

<div class="form-group">

<label for="">Password</label>

<input id="password" name="password"


type="password" class="form-control"

placeholder="Enter Password" minlength="4"


required>

</div>

<button style="margin-top: 30px;" class="btn btn-block


btn-primary" type="submit" name="login"

id="login">Login</button>

</form>

</div>

</div>

</div>

<?php include_once "./include/footer.php";

o Booking:-

<?php

include_once "./include/header.php";

include_once "./scripts/DB.php";
if (!isset($_GET['provider'])) {

header('Location: index.php');

exit();

$provider = DB::query("SELECT * FROM providers WHERE id=?",


[$_GET['provider']])->fetch(PDO::FETCH_OBJ);

if ($provider === false) {

header('Location: index.php');

exit();

include_once "msg/booking.php";

?>

<div class="container" style="margin-top: 30px;">

<div class="card text-center">

<div class="card-header">

<h3>Details about <?= $provider->name; ?></h3>

</div>

<div class="container" style="margin-top: 30px;">

<div class="row">

<div class="col">

<img style="height: 250px"

src="images/<?= $provider->photo; ?>">


</div>

</div>

</div>

<div class="card-body">

<table class="table">

<tr>

<th>Name</th>

<td>

<?= $provider->name; ?>

</td>

<th>Profession</th>

<td>

<?= $provider->profession;?>

</td>

</tr>

<tr>

<th>Address</th>

<td>

<?= $provider->adder1; ?>,

<?= $provider->adder2; ?>

</td>

<th>Pincode</th>
<td>

<?= $provider->city; ?>

</td>

</tr>

</table>

</div>

</div>

</div>

<div class="container" style="margin-bottom: 60px;margin-top:


20px;">

<div class="card">

<div class="card-body">

<div class="card-title">

<h3 class="text-center">Book Appointment from <?=


$provider->name; ?>

</h3>

</div>

<hr>

<form action="scripts/bookhall.php" method="post">

<input type="hidden" name="provider"


value="<?= $provider->id; ?>">

<div class="form-group">

<label for="">First Name</label>

<input id="fname" name="fname" type="text"


class="form-control" placeholder="First Name" required>

</div>

<div class="form-group">

<label for="">Last Name</label>

<input id="lname" name="lname" type="text"


class="form-control" placeholder="Last Name" required>

</div>

<div class="form-group">

<label for="">Contact No.</label>

<input id="contact" name="contact" type="text"


class="form-control" placeholder="Contact No."

minlength="10" maxlength="10"

oninput="this.value = this.value.replace(/[^0-9.]/g,
'').replace(/(\..*)\./g, '$1');" required>

</div>

<div class="form-group">

<label for="">Address</label>
<input id="adder" name="adder" type="text"
class="form-control" placeholder="Address"

maxlength="255" required>

</div>

<div class="form-group">

<label for="">Date</label>

<input class="form-control" type="date" name="date"


id="date" required>

</div>

<div class="form-group">

<label for="">Payment Mode</label>

<select class="form-control" name="payment"


id="payment" required>

<option value="cash">Cash</option>

<option value="card">Debit Card</option>

<option value="card">Net
Banking</option>

</select>

</div>

<div class="form-group">

<label for="">Problem</label>
<textarea id="queries" name="queries" class="form-
control" maxlength="255"

placeholder="Any queries..?"></textarea>

</div>

<button style="margin-top: 30px" class="btn btn-block


btn-primary" type="submit" name="book"

id="book">Book

Hall</button>

</form>

</div>

</div>

</div>

<?php include_once "include/footer.php";

o Delete bookings

<?php

include_once "scripts/checklogin.php";

include_once "scripts/helpers.php";

include_once "scripts/DB.php";

if (!check("admin")) {
header('Location: logout.php');

exit();

if (isset($_GET['id'])) {

$input = clean($_GET);

$isRemoved = DB::query("DELETE FROM bookings WHERE id=?",


[$input['id']]);

if ($isRemoved) {

header('Location: admin.php?msg=success');

exit();

} else {

header('Location: admin.php?msg=failed');

exit();

o Index

<?php

include_once "./include/header.php";

$cities = ["441001", "441002", "441003", "441004", "441005",


"441006", "441007", "441008", "441009"];
?>

<h2 class="text-center" style="margin-top: 20px">Helper's


List</h2>

<hr>

<div class="container" style="margin-top:20px; margin-bottom:


60px;">

<div class="row">

<div class="form-group col-5">

<label for="">Pincode</label>

<select class="form-control" name="city" id="city">

<option value="none">-- Select Pincode --</option>

<?php foreach ($cities as $city) : ?>

<option value="<?= $city ?>"> <?= $city ?>

</option>

<?php endforeach; ?>

</select>

</div>

<div class="form-group col-5">

<label for="">Who's Required</label>


<select class="form-control" name="profession"
id="profession">

<option value="none">Select Profession</option>

<option value="electrician">Electrician</option>

<option value="plumber">Plumber</option>

<option value="mobile">Mobile Repairer</option>

<option value="maid">Maid</option>

</select>

</div>

<div class="form-group col-2">

<label for="">Action</label>

<button id="search" class="form-control btn btn-success"


type="button">Search</button>

</div>

</div>

<div class="table-responsive">

<table id="providers" class="table">

<thead>

<tr>

<th>Photo</th>

<th>Name</th>

<th>Address</th>
<th>Profession</th>

<th>Action</th>

</tr>

</thead>

<tbody>

<tr>

<td colspan='5'>Select Pincode and profession..</td>

</tr>

</tbody>

</table>

</div>

</div>

<script src="js/jquery.js"></script>

<script>

$(function() {

$("#search").click(function() {

var city = $("#city").val();

var profession = $("#profession").val();

if (city == "none" || profession == "none") {

alert("Don't leave fields empty!");

tbody = "<tr><td colspan='5'>please </td></tr>";


} else {

$.post('scripts/searchproviders.php', {

city: city,

profession: profession

}, function(res) {

var providers = JSON.parse(res);

var tbody = "";

if (providers.failed == true) {

tbody = "<tr><td colspan='5'>No Service Providers


found...</td></tr>";

} else {

providers.forEach(function(provider, i) {

tbody += "<tr>" +

"<td><img style='height:150px' src='images/" +


provider

.photo +

"'/></td>" +

"<td>" + provider.name + "</td>" +

"<td>" + provider.adder1 + ",<br>" +


provider.adder2 +

",<br>" +

provider.city + "</td>" +

"<td>" + provider.profession + "</td>" +


"<td><a href='booking.php?provider=" +
provider.id +

"' class='btn btn-primary btn-


block'>Book</a></td>";

});

$("#providers tbody").html(tbody);

});

});

});

</script>

<?php include_once "./include/footer.php";

o Admin

<?php

include_once "scripts/checklogin.php";

include_once "scripts/DB.php";

include_once "include/header.php";

if (!check("admin")) {

header('Location: logout.php');

exit();

}
$sql = "SELECT b.*, p.name AS provider_name FROM bookings
AS b, providers AS p WHERE b.provider_id = p.id ORDER BY b.date
DESC";

$bookings = DB::query($sql)->fetchAll(PDO::FETCH_OBJ);

include_once "msg/admin.php";

?>

<div class="container" style="margin-top: 30px; margin-bottom:


60px;">

<h2 class="text-center"> Bookings </h2>

<div class="table-responsive">

<table class="table">

<tr>

<th>Name</th>

<th>Contact</th>

<th>Address</th>

<th>Date</th>

<th>Payment Method</th>

<th>Queries</th>

<th>Provider Name</th>

<th>Action</th>
</tr>

<?php foreach ($bookings as $booking): ?>

<tr>

<td>

<?= $booking->fname; ?> <?= $booking->lname; ?>

</td>

<td>

<?= $booking->contact; ?>

</td>

<td>

<?= $booking->adder; ?>

</td>

<td>

<?= $booking->date; ?>

</td>

<td>

<?= $booking->payment; ?>

</td>

<td>

<?= $booking->queries; ?>

</td>

<td>

<?= $booking->provider_name; ?>


</td>

<td>

<a class="btn btn-danger"

href="deletebooking.php?id=<?= $booking->id;
?>">Remove</a>

</td>

</tr>

<?php endforeach; ?>

</table>

</div>

</div>

<?php include_once "include/footer.php";

o Register

<?php include_once "./include/header.php"; ?>

<?php

$cities = ["441001", "441002", "441003", "441004", "441005",


"441006", "441007", "441008", "441009"];

?>

<?php include_once "msg/register.php"; ?>

<div class="container" style="margin-top: 30px; max-width:


800px;margin-bottom: 60px;">
<div class="card">

<div class="card-body">

<div class="card-title">

<h3 class="text-center">Register as Helper's List


Provider</h3>

</div>

<hr>

<form action="scripts/register.php" method="post"


enctype="multipart/form-data">

<div class="form-group">

<label for="">Name</label>

<input id="name" name="name" type="text"


class="form-control" placeholder="Name" required>

</div>

<div class="form-group">

<label for="">Contact No.</label>

<input id="contact"

oninput="this.value = this.value.replace(/[^0-9.]/g,
'').replace(/(\..*)\./g, '$1');"

name="contact" type="text" class="form-control"


placeholder="Contact" minlength="10"

maxlength="10" required>
</div>

<div class="form-group">

<label for="">Address Line 1</label>

<input id="adder1" name="adder1" type="text"


class="form-control" placeholder="Enter Address line-1"

required>

</div>

<div class="form-group">

<label for="">Address Line 2</label>

<input id="adder2" name="adder2" type="text"


class="form-control" placeholder="Enter Address line-2"

required>

</div>

<div class="form-group">

<label for="">Pincode</label>

<select class="form-control" name="city" id="city">

<?php foreach ($cities as $city) : ?>

<option value="<?= $city ?>"> <?= $city ?>

</option>

<?php endforeach; ?>

</select>
</div>

<div class="form-group">

<label for="">Photo(Square Size)</label>

<input id="photo" name="photo" type="file"


class="form-control-file" placeholder="Select Photo 1"

required>

</div>

<div class="form-group">

<label for="">Add Description</label>

<textarea name="descr" id="descr" class="form-


control" cols="30" rows="5"

placeholder="Tell something about you..."


required></textarea>

</div>

<div class="form-group">

<label for="">Password</label>

<input id="password" name="password"


type="password" class="form-control"

placeholder="Enter 6 Character Password"


minlength="4" required>

</div>
<div class="form-group">

<label for="">Profession</label>

<select class="form-control" name="profession"


id="profession">

<option value="electrician">Electrician</option>

<option value="plumber">Plumber</option>

<option value="mobile">Mobile Repairer</option>

<option
value="maid">maid</option>

</select>

</div>

<button style="margin-top: 30px;" class="btn btn-block


btn-primary" type="submit" name="register"

id="register">Register</button>

</form>

</div>

</div>

</div>

<?php include_once "./include/footer.php";


o Provider

<?php

include_once "scripts/checklogin.php";

include_once "include/header.php";

if (!check()) {

header('Location: logout.php');

exit();

$provider = $_SESSION['user'];

$cities = ["441001", "441002", "441003", "441004", "441005",


"441006", "441007", "441008", "441009"];

?>

<div class="container" style="margin-top: 30px; margin-bottom:


60px;">

<div class="card">

<div class="card-body">

<div class="card-title">

<h3 class="text-center">Update Marriage Hall


Information</h3>

</div>

<hr>
<form action="scripts/updatehall.php" method="post"
enctype="multipart/form-data">

<div class="form-group">

<label for="">Name</label>

<input value="<?= $provider->name; ?>" id="name"

name="name" type="text" class="form-control"


placeholder="Name" required>

</div>

<div class="form-group">

<label for="">Contact No.</label>

<input value="<?= $provider->contact; ?>"

id="contact" name="contact" type="text"


class="form-control" placeholder="Contact"

minlength="10" maxlength="10" required>

</div>

<div class="form-group">

<label for="">Address Line 1</label>

<input value="<?= $provider->adder1; ?>"

id="adder1" name="adder1" type="text"


class="form-control" placeholder="Enter Address line-1"

required>

</div>
<div class="form-group">

<label for="">Address

Line 2</label>

<input value="<?= $provider->adder2; ?>"

id="adder2" name="adder2" type="text"


class="form-control" placeholder="Enter Address line-2"

required>

</div>

<div class="form-group">

<label for="">Pincode</label>

<select value="<?= $provider->city; ?>"

class="form-control" name="city" id="city">

<?php foreach ($cities as $city) : ?>

<option value="<?= $city ?>"> <?= $city ?>

</option>

<?php endforeach; ?>

</select>

</div>

<div class="form-group">

<div class="row">

<div class="col-2 text-center">


<img style=" height: 100px;"

src="images/<?= $provider->photo; ?>">

<div class="text-center">Old Photo</div>

</div>

<div class="col">

<label for="">New Photo</label>

<input id="photo" name="photo" type="file"


class="form-control-file"

placeholder="Select Photo 1" required>

</div>

</div>

</div>

<div class="form-group" style="margin-top: 15px;">

<label for="">Description</label>

<textarea name="descr" id="descr" class="form-


control" cols="30" rows="5"

placeholder="Add Description About Your Hall"

required><?= $provider->descr; ?></textarea>

</div>

<div class="form-group">

<label for="">Password</label>

<input value="<?= $provider->password; ?>"


id="password" name="password" type="password"
class="form-control"

placeholder="Enter 6 Character Password"


minlength="4" required>

</div>

<div class="form-group">

<label for="">Profession</label>

<select class="form-control" name="profession"


id="profession">

<option value="electrician">Electrician</option>

<option value="plumber">Plumber</option>

<option value="mobile">Mobile Repairer</option>

</select>

</div>

<button style="margin-top: 20px;" class="btn btn-success


btn-block" type="submit" name="register"

id="register">Update</button>

</form>

</div>

</div>

</div>
<?php include_once "./include/footer.php";

o Manage hall

 Book hall

<?php

include_once "scripts/checklogin.php";

include_once "include/header.php";

include_once "scripts/DB.php";

if (!check("admin")) {

header('Location: logout.php');

exit();

$stmt = DB::query("SELECT * FROM providers");

$providers = $stmt->fetchAll(PDO::FETCH_OBJ);

include_once "msg/managehall.php";

?>

<div class="container" style="margin-top: 30px; margin-bottom:


60px;">

<div class="table-responsive">

<table class="table">
<tr>

<th>Photo</th>

<th>Name</th>

<th>Contact</th>

<th>Address</th>

<th>Profession</th>

<th>Action</th>

</tr>

<?php foreach ($providers as $provider): ?>

<tr>

<td>

<img style="height: 150px"

src="images/<?= $provider->photo; ?>"

alt="photo">

</td>

<td><?= $provider->name; ?>

</td>

<td><?= $provider->contact; ?>

</td>

<td>

<?= $provider->adder1; ?>,<br>

<?= $provider->adder2 ?>,<br>

<?= $provider->city; ?>


</td>

<td><?= $provider->profession; ?>

</td>

<td>

<form action="deletehall.php" method="post">

<input type="hidden" name="id"

value="<?= $provider->id ;?>">

<button type="submit" name="remove" class="btn


btn-danger btn-block">Remove</a>

</form>

</td>

</tr>

<?php endforeach; ?>

</table>

</div>

</div>

<?php include_once "include/footer.php";

o Script

<?php

require_once 'helpers.php';

require_once 'DB.php';
if (isset($_POST['book'])) {

$input = clean($_POST);

$provider = $_POST['provider'];

$fname = $_POST['fname'];

$lname = $_POST['lname'];

$contact = $_POST['contact'];

$adder = $_POST['adder'];

$date = $_POST['date'];

$queries = $_POST['queries'];

$payment = $_POST['payment'];

$sql = "INSERT INTO bookings values(DEFAULT, ?, ?, ?, ?, ?, ?, ?,


?)";

$isBooked = DB::query($sql, [

$provider, $fname, $lname, $contact, $adder, $date,


$payment, $queries

]);

if ($isBooked) {

header("Location:
../booking.php?provider=$provider&msg=success");

exit();
} else {

header("Location:
../booking.php?provider=$provider&msg=failed");

exit();

 Check login

<?php

require_once 'session.php';

function check($type = null)

if (is_null($type)) {

return isset($_SESSION['user']);

} elseif (isset($_SESSION['user'])) {

return $_SESSION['user']->name == $type;

return false;

}
 Db

<?php

class DB

const HOST = "localhost";

const DBNAME = "services";

const USERNAME = "root";

const PASSWORD = "";

/**

* PDOStatement object used by Database class

* @var \PDOStatement

*/

protected static $_stmt = null;

/**

* method returns the connection to the database

* @throws \PDOException

* @return PDO connection object

*/

public static function getConnection()

{
try {

$conn = new
PDO("mysql:host=".self::HOST.";dbname=".self::DBNAME, self::USERNAME,
self::PASSWORD, []);

$conn->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

echo $e->getMessage();

return $conn;

/**

* Query performs query on database

* @param string $sql SQL query to be performed

* @param array $param Parameters to be bound

* @return PDOStatement

*/

public static function query($sql, $params = array())

try {

self::$_stmt = self::getConnection()->prepare($sql);

if (strstr($sql, "SELECT") === false) {

return self::$_stmt->execute($params);
}

if (empty($params)) {

self::$_stmt->execute();

} else {

self::$_stmt->execute($params);

return self::$_stmt;

} catch (PDOException $e) {

echo $e->getMessage();

public static function getStmt()

return self::$_stmt;

 Helpers

<?php

function clean($data = array())

{
foreach ($data as $key => $val) {

$data[$key] = trim($val);

$data[$key] = stripslashes($val);

$data[$key] = htmlspecialchars($val);

return $data;

function upload($file, $allowed = ['png', 'jpg', 'jpeg', 'gif'])

$a = explode('.', $file['name']) ?: '';

$ext = end($a);

if (array_search($ext, $allowed) === false) {

return false;

$dest = uniqid().'.'.$ext;

if (move_uploaded_file($file['tmp_name'],
'../images/'.$dest)) {

return $dest;

return false;

}
 Login

<?php

require_once 'session.php';

require_once 'DB.php';

require_once 'helpers.php';

if (isset($_POST['login'])) {

$input = clean($_POST);

$contact = $input['contact'];

$password = $input['password'];

if ($contact == "7070808080" && $password ==


"admin123") {

$s = new stdClass();

$s->name = "admin";

$_SESSION['user'] = $s;

header('Location: ../admin.php');

exit();

} else {

$stmt = DB::query(
"SELECT * FROM providers WHERE contact=? AND
password=?",

[$contact , $password]

);

$provider = $stmt->fetch(PDO::FETCH_OBJ);

if (isset($provider->name)) {

$_SESSION['user'] = $provider;

header('Location: ../provider.php');

exit();

} else {

header('Location: ../login.php?msg=failed');

exit();

 Register

<?php

require_once 'session.php';

require_once 'DB.php';

require_once 'helpers.php';
if (isset($_POST['register'])) {

$input = clean($_POST);

$name = $input['name'];

$contact = $input['contact'];

$descr = $input['descr'];

$adder1 = $input['adder1'];

$adder2 = $input['adder2'];

$city = $input['city'];

$password = $input['password'];

$profession = $input['profession'];

$photo = $_FILES['photo'];

$file1 = upload($photo);

if ($file1 === false) {

header('Location', '../register.php?msg=file');

exit();

$isProviderCreated = DB::query("INSERT INTO providers


values(DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?)", [
$name,$contact,$descr,$adder1,$adder2,$city,$password,$
file1, $profession

]);

if ($isProviderCreated) {

header('Location: ../register.php?msg=success');

exit();

} else {

unlink('../storage/'.$file1);

header('Location: ../register.php?msg=failed');

exit();

 Search providers

<?php

require_once 'helpers.php';

require_once 'DB.php';

if (isset($_POST['city']) && isset($_POST['profession'])) {

$input = clean($_POST);

$city = $input['city'];
$profession = $input['profession'];

$sql = "SELECT * FROM `providers` WHERE city=? AND


profession=?";

$stmt = DB::query($sql, [

$city, $profession

]);

$providers = $stmt->fetchAll(PDO::FETCH_OBJ);

if (count($providers) > 0) {

echo json_encode($providers);

} else {

echo '{"failed": true }';

 Session

<?php

if (session_status() == PHP_SESSION_NONE) {

session_start();

}
 Update hall

<?php

include_once "session.php";

include_once "checklogin.php";

include_once "DB.php";

include_once "helpers.php";

if (!check()) {

header('Location: logout.php');

exit();

if (isset($_POST['register'])) {

$input = clean($_POST);

$name = $input['name'];

$contact = $input['contact'];

$descr = $input['descr'];

$adder1 = $input['adder1'];

$adder2 = $input['adder2'];

$city = $input['city'];

$password = $input['password'];
$profession = $input['profession'];

$photo = $_FILES['photo'];

$file1 = upload($photo);

if ($file1 === false) {

header('Location', '../register.php?msg=file');

exit();

$isProviderCreated = DB::query(

"UPDATE providers SET name=?, contact=?, adder1=?,


adder2=?, city=?, photo=?, descr=?, password=?,
profession=? WHERE id=?",

[$name,$contact,$adder1,$adder2,$city,$file1, $descr,
$password, $profession,$_SESSION['user']->id]

);

if ($isProviderCreated) {

unlink($_SESSION['user']->photo);

header('Location: ../logout.php');

exit();

} else {
unlink('../storage/'.$file1);

echo "";

header('Location: ../logout.php');

exit();

o Msg

 Admin

<?php if (isset($_GET['msg'])): ?>

<div class="container" style="margin-top: 30px">

<?php if ($_GET['msg'] == 'success'): ?>

<div class="alert alert-success">

<h3>Success</h3>

<p>Booking removed successfully.</p>

</div>

<?php elseif ($_GET['msg'] == 'failed'): ?>

<div class="alert alert-danger">

<h3>Failure</h3>

<p>Problem while removing booking! Please try again


later!</p>

</div>

<?php endif; ?>

</div>

<?php endif;
 Booking

<?php if (isset($_GET['msg'])): ?>


<div class="container" style="margin-top: 30px">
<?php if ($_GET['msg'] == "success"): ?>
<div class="alert alert-success">
<h4>Success</h4>
<p>Booked appointment successfully, We'll contact you soon.</p>
</div>
<?php elseif ($_GET['msg'] == "failed"): ?>
<div class="alert alert-danger">
<h4>Failure</h4>
<p>Problem while booking appointment! Please try again later!</p>
</div>
<?php endif; ?>
</div>
<?php endif;

 Login

?php if (isset($_GET['msg']) && $_GET['msg'] == "failed"): ?>

<div class="container" style="margin-top: 30px">

<div class="alert alert-danger">

<h4>Login</h3>

<p>Incorrect credentials! Please try again.</p>

</div>

</div>

<?php endif;

 Main

- CREATE DATABASE services

CREATE TABLE providers


(

id integer unsigned AUTO_INCREMENT PRIMARY KEY,

name varchar(255) NOT NULL,

contact varchar(20) NOT NULL,

descr varchar(1000) NOT NULL,

adder1 varchar(255) NOT NULL,

adder2 varchar(255) NOT NULL,

city varchar(50) NOT NULL,

password varchar(255) NOT NULL,

photo varchar(255) NOT NULL,

profession varchar(255) NOT NULL

);

CREATE TABLE bookings

id integer unsigned AUTO_INCREMENT PRIMARY KEY,

provider_id integer unsigned NOT NULL,

fname varchar(255) NOT NULL,

lname varchar(255) NOT NULL,

contact varchar(20) NOT NULL,

adder varchar(255) NOT NULL,

date date NOT NULL,

payment varchar(30) NOT NULL,


queries varchar(255) NOT NULL

);

 Manage hall

<?php if (isset($_GET['msg'])): ?>

<div class="container" style="margin-top: 30px">

<?php if ($_GET['msg'] == 'success'): ?>

<div class="alert alert-success">

<h3>Success</h3>

<p>Providers data deleted successfully.</p>

</div>

<?php elseif ($_GET['msg'] == 'failed'): ?>

<div class="alert alert-danger">

<h3>Failure</h3>

<p>Problem while deleting providers data! Please try


again later!</p>

</div>

<?php endif; ?>

</div>

<?php endif;

 Register

<?php if (isset($_GET['msg'])): ?>

<div class="container" style="margin-top: 30px">

<?php if ($_GET['msg'] == 'success'): ?>


<div class="alert alert-success">

<h4>Registering</h4>

<p>Service provider registered.</p>

</div>

<?php elseif ($_GET['msg'] == 'failed'): ?>

<div class="alert alert-danger">

<h4>Failed</h4>

<p>Problem while Registering! Please try again


later!</p>

</div>

<?php elseif ($_GET['msg'] == 'file'): ?>

<div class="alert alert-danger">

<h4>Problem While Uploding Photo</h4>

<p>Problem while Uploding Photo! Please Try again


later!</p>

</div>

<?php endif; ?>

</div>

<?php endif;
o Include

 Footer

<footer

style="border-top: 1px solid #333;width: 100%; position:


fixed; bottom: 0px;text-align: center;height: 40px; line-
height: 40px;background: #353a3f; ">

Vandana Mahobiya, Dinky Setiya & Rishabh Sambarkar


&copy; <?= date("Y") ?>

</footer>

</body>

</html>

 Header

<?php require_once "scripts/session.php"; ?>


<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">

<link rel="stylesheet" href="./css/bootstrap.min.css">

<style>
nav a.nav-link {
color: #fff !important;
}
</style>

<title>Home Services</title>
</head>

<body>
<nav class="nav bg-dark">
<?php if (!isset($_SESSION['user'])): ?>
<a class="nav-link active" href="index.php">Find Service
Provider</a>
<a class="nav-link" href="login.php">Login</a>
<a class="nav-link" href="register.php">Register Service
Provider</a>
<a class="nav-link" href="about.php">Feedback & Review</a>

<?php elseif ($_SESSION['user']->name == 'admin'): ?>


<a class="nav-link" href="managehall.php">Manage Providers</a>
<a class="nav-link" href="admin.php">Manage Booking</a>
<a class="nav-link" href="logout.php">Log Out</a>

<?php else: ?>


<a class="nav-link" href="logout.php">Log Out</a>
<?php endif; ?>

</nav>

o About

<?php include_once "./include/header.php"; ?>

<?php

$cities = ["441001", "441002", "441003", "441004", "441005",


"441006", "441007", "441008", "441009"];

?>

<?php include_once "msg/register.php"; ?>

<div class="container" style="margin-top: 30px; max-width:


800px;margin-bottom: 60px;">

<div class="card">

<div class="card-body">
<div class="card-title">

<h3 class="text-center">Feedback & Review</h3>

</div>

<hr>

<form action="#" method="post"


enctype="multipart/form-data">

<div class="form-group">

<label for="">Name</label>

<input id="name" name="name" type="text"


class="form-control" placeholder="Name" required>

</div>

<div class="form-group">

<label for="">Contact No.</label>

<input id="contact"

oninput="this.value = this.value.replace(/[^0-9.]/g,
'').replace(/(\..*)\./g, '$1');"

name="contact" type="text" class="form-control"


placeholder="Contact" minlength="10"

maxlength="10" required>

</div>

<div class="form-group">
<label for="">Address Line 1</label>

<input id="adder1" name="adder1" type="text"


class="form-control" placeholder="Enter Address line-1"

required>

</div>

<div class="form-group">

<label for="">Address Line 2</label>

<input id="adder2" name="adder2" type="text"


class="form-control" placeholder="Enter Address line-2"

required>

</div>

<div class="form-group">

<label for="">Feedback & Review</label>

<textarea name="descr" id="descr" class="form-


control" cols="30" rows="5"

placeholder="Tell something about you..."


required></textarea>

</div>
<button style="margin-top: 30px;" class="btn btn-block
btn-primary" type="submit" name="register"

id="register">Submit</button>

</form>

</div>

</div>

</div>

<?php include_once "./include/footer.php";

o Delete hall

<?php

include_once "scripts/checklogin.php";

include_once "scripts/helpers.php";

include_once "scripts/DB.php";

if (!check("admin")) {

header('Location: logout.php');

exit();

}
if (isset($_POST['remove'])) {

$input = clean($_POST);

$isRemoved = DB::query("DELETE FROM providers WHERE


id=?", [$input['id']]);

if ($isRemoved) {

header('Location: managehall.php?msg=success');

exit();

} else {

header('Location: managehall.php?msg=failed');

exit();

o Readme.md

#### Login Info

- Admin:

- Mobile No.: 8698545475

- Password : admin123

o Logout

<?php

include_once "scripts/session.php";
if (isset($_SESSION['user'])) {

$_SESSION['user'] = null;

session_unset();

session_destroy();

header('Location: login.php');

exit();

o Services

-- phpMyAdmin SQL Dump

-- version 4.8.2

-- https://www.phpmyadmin.net/

--

-- Host: 127.0.0.1

-- Generation Time: Feb 16, 2020 at 09:54 AM

-- Server version: 10.1.34-MariaDB

-- PHP Version: 5.6.32

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

SET AUTOCOMMIT = 0;

START TRANSACTION;
SET time_zone = "+00:00";

/*!40101 SET
@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET
@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS
*/;

/*!40101 SET
@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION
*/;

/*!40101 SET NAMES utf8mb4 */;

--

-- Database: `services`

--

-- --------------------------------------------------------

--

-- Table structure for table `bookings`

--

CREATE TABLE `bookings` (

`id` int(10) UNSIGNED NOT NULL,


`provider_id` int(10) UNSIGNED NOT NULL,

`fname` varchar(255) NOT NULL,

`lname` varchar(255) NOT NULL,

`contact` varchar(20) NOT NULL,

`adder` varchar(255) NOT NULL,

`date` date NOT NULL,

`payment` varchar(30) NOT NULL,

`queries` varchar(255) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Dumping data for table `bookings`

--

INSERT INTO `bookings` (`id`, `provider_id`, `fname`, `lname`,


`contact`, `adder`, `date`, `payment`, `queries`) VALUES

(1, 1, 'Saurabh', 'kshatriya', '9764607101', 'Kamptee', '2020-02-20',


'cash', 'water lekage');

-- --------------------------------------------------------

--

-- Table structure for table `providers`

--
CREATE TABLE `providers` (

`id` int(10) UNSIGNED NOT NULL,

`name` varchar(255) NOT NULL,

`contact` varchar(20) NOT NULL,

`descr` varchar(1000) NOT NULL,

`adder1` varchar(255) NOT NULL,

`adder2` varchar(255) NOT NULL,

`city` varchar(50) NOT NULL,

`password` varchar(255) NOT NULL,

`photo` varchar(255) NOT NULL,

`profession` varchar(255) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Dumping data for table `providers`

--

INSERT INTO `providers` (`id`, `name`, `contact`, `descr`, `adder1`,


`adder2`, `city`, `password`, `photo`, `profession`) VALUES

(1, 'Ramesh kumar', '9842721351', 'Professional plumber',


'Nagpur', 'Maharashtra', '441001', '123456', '5e48fe857c410.jpg',
'plumber'),
(2, 'kumar swami', '8246983214', 'Professional Electrician',
'Dharampeth, Nagpur', 'Maharashtra', '441001', '123456',
'5e48ff56901a3.jpg', 'electrician'),

(3, 'Rakesh Sharma', '9765441231', 'Professional Mobile


Repairing', 'Itwari, Nagpur', 'Maharashtra', '441002', '123456',
'5e48ffaf0530d.jpg', 'mobile repair');

--

-- Indexes for dumped tables

--

--

-- Indexes for table `bookings`

--

ALTER TABLE `bookings`

ADD PRIMARY KEY (`id`);

--

-- Indexes for table `providers`

--

ALTER TABLE `providers`

ADD PRIMARY KEY (`id`);

--

-- AUTO_INCREMENT for dumped tables


--

--

-- AUTO_INCREMENT for table `bookings`

--

ALTER TABLE `bookings`

MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,


AUTO_INCREMENT=2;

--

-- AUTO_INCREMENT for table `providers`

--

ALTER TABLE `providers`

MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,


AUTO_INCREMENT=4;

COMMIT;

/*!40101 SET
CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

/*!40101 SET
CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

/*!40101 SET
COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
o License

MIT License

Copyright (c) 2019 vkubre

Permission is hereby granted, free of charge, to any person


obtaining a copy

of this software and associated documentation files (the


"Software"), to deal

in the Software without restriction, including without limitation


the rights

to use, copy, modify, merge, publish, distribute, sublicense,


and/or sell

copies of the Software, and to permit persons to whom the


Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be


included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF


ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF


MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,


DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR


OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR


OTHER DEALINGS IN THE

SOFTWARE.
o Future scope of the project

The online household services application provides some of the home


services which are most frequently used. This system accommodates the
changing needs of the end user. The overall system can be designed so
that its capacity can be increased in response to the further requirements
for which the application provides an appropriate service overseas.
Further this application can be prolonged by merely adding up the
required services and additional payment systems.

o Suggestion & conclusion

To reduce burden in finding in-house solutions for the services, the


proposed system provides several services by providing service
specialists at your doorstep in one click. A systematic mobile
environment to system clients offer sease in accessing our services
in a more comfortable way. With well qualified and background
demonstrated professionals we make all your home cleaning,
plumbing, furniture maintenance, electrical works, appliance
repair, house painting, vehicle service and many other services to
be done in a click anytime from anywhere as easy as available.
o Bibliography & references.
1. Shahrzad Shahriari, Mohammadreza Shahriari, Saeid gheiji. “ ECommerce
And It Impactson Global Trend And Market”.International Journal of
Research – Granthaalayah. Vol.3 (Iss.4): April, 2015.
2. L.RichardYe, Yue Jeff Zhang, Dat-DaoNguyen, James Chiu,“Fee-based
online services: Exploring consumers’willingness to pay ”. Journal of
International Technologyand Information Management.
3. Bo Zhang, Ruihan Yong, Meizi Li, Jianguo Pan, Jifeng Huanglaa, “ A Hybrid
Trust Evaluation Framework for E-commerce in Online Social Network: ”.
2169-3536 (c) 2016 IEEE. Translations and content mining are permitted for
academic research
4. Chenggang Zhen,Peng Cheng. “Construction of campus trading platform
based on third-party online payment ” 2nd International Conference on
Industrial and Information Systems,IEEE,2010
5. Sujit Kumar Basak,Irene Govender.“Examining the Impact of Privacy,
Security, and Trust on the TAM and TTF Models for Ecommerce Consumers:
A Pilot Study”,IEEE, 2009.
6. CAl Yrnn-ping, WANG Yu-ying, “Simple Said about Online Payment Risks
and Preventive Measure ”, China located International Conference on
Infonnation Systems for Crisis Response and Management,IEEE,

Вам также может понравиться