Complete Format V
Complete Format V
1
COMPLAINT MANAGEMENT SYSTEM
INTRODUCTION
The main objective of this Complaint Management system is to focus on the issues related to
internal system. Complaint Management system is a platform independent application, so this
web application can be accessed anywhere in the system. This is also developed for reduces
the communication cost between the staffs and to provide the efficient service to their staffs.
The system need to provide the services to the user who is accessing this system from the
collected information and this system gathering Call Registration about the issues to provide
services. This system which could enhance the day to day activities of the business with
efficiency and correctness. Once the call Registered by the staff/user, it should be assigned to
service engineers and update the calls as quickly as possible. There are various modules
involved in the system.
1.1 Background:
This research focus on creating and Complaint Management System using database, forms
and reports. This is computerized result system. The manual method of customer academic
complaint management is found to be tedious, especially when carried out for a large number
of customers, this makes the entire process time-consuming and error prone. Complaint
Management System presents a single platform that is used to manage the processing of all
personal and academic records for any user.
1.2 Objectives:
The main objective of the Project on COMPLAINT MANAGEMENT SYSTEM is to
manage the fast processing of complaint of customers, the reliable method of complaining.
The status of acknowledgement can be determined.
2
COMPLAINT MANAGEMENT SYSTEM
1.3.2 Scope:
This policy applies to all complaints made by a customer or other stakeholder about TAFE
NSW’s services, systems, facilities or service delivery. Online Complaint Management
System provides an online way of solving the problems faced by the public by saving time
and eradicate corruption, And The ability of providing many of the reports on the system, and
add to Facilitate the process of submitting a complaint
1.3.3 Applicability:
take reasonable steps to ensure that people making complaints are not adversely
affected because a complaint has been made by them or on their behalf
ensure that complaints made about a staff member are handled by someone other than
the person about whom the complaint is made, and
ensure that reviews about how a complaint was managed is conducted by a person other
than the original decision maker.
3
COMPLAINT MANAGEMENT SYSTEM
1.4 Achievements:
The main objective of the is to provide the complaints of Organization in a simple
way.
This project is useful for customer and institutions for getting the complaint in simple
manner.
The system is intended for customer .and the privileges that are provided to customer
are to read and execute his/her result by providing user name and password for secure
login and in case of new customer the registration is available. And the guest user has
the privilege only to read.
The whole complaints will be under the control of the administrator and the admin as
the full privileges to read, write and execute the complaint.
The security and safety is the most factors in this project.
4
CHAPTER 2
Tools:
o XAMPP Server:
XAMPP stands for Cross-Platform (X), Apache (A), Maria DB (M), PHP (P) and Perl
(P). It is a simple, lightweight Apache distribution that makes it extremely easy for
developers to create a local web server for testing and deployment purposes. Everything
needed to set up a web server – server application (Apache), database (Maria DB), and
scripting language (PHP) – is included in an extractable file. XAMPP is also cross-
platform, which means it works equally well on Linux, Mac and Windows. Since most
actual web server deployments use the same components as XAMPP, it makes
transitioning from a local test server to a live server extremely easy as well. Officially,
XAMPP's designers intended it for use only as a development tool, to allow website
designers and programmers to test their work on their own computers without any access.
6
CHAPTER 3
7
3. Requirement and Analysis
3.1 Problem Definition:
To create an Complaint Management System using ‘PHP’ language involving concept of
searching and sorting its analysis. This software will contain all the necessary information
regarding customer’s record.
To develop a portal that will manage
A business analyst, sometimes titled system analyst, is responsible for analyzing the
business needs for their clients and stakeholders to help identify business problems
and propose solutions.
8
3.3. Planning and Scheduling:
GANTT CHART:
Gantt charts are a project planning tool that can be used to represents the timing of tasks
required to complete a project, because Gantt charts are simple to understand and easy to
construct, they are used by most project managers for all but the most complex projects.
In a Gantt chart, each task takes up one row, Dates run along the top in increments of days,
weeks or months, depending on the total length of the project. The expected time for each
Task is represented by a horizontal bar whose left end marks the expected beginning of the
task and whose right end marks the expected completion date. Tasks may run sequentially, in
parallel or overlapping. As the project progresses, the chart is updated by filling in the bars to
a length proportional the fraction of work that has been accomplished on the task. This way,
one can get a quick reading of project progress by drawing a vertical line through the chart at
the current date. Completed tasks lie to the left of the line and are completely filled in current
tasks cross the line and are behind schedule if their filled-in section is to the left of the line
and ahead of schedule if the filledin section stops to the right of the line. Future tasks lie
completely to the right of the line. In constructing a Gantt chart, keep the tasks to a
manageable number (no more than 15 or 20) so that the chart fits on a single page. More
complex projects may require subordinate charts which detail the timing of all the subtasks
which make up one of the main tasks. For team projects, it often helps to have an additional
column containing numbers or initials, which identify that on the team is responsible for the
task. Often the project has important events, which you would like to appear on the project
timeline, but which are not tasks. For example, you may wish to highlights when a prototype
is complete or the date of design review. We planned our project using according to the Gantt
chart as shown as follow.
1. Requirement
Analysis 100%
2.
Design Planning 100%
3.
Coding 100%
4. Implementation
100%
5. Integration
100%
6. Testing 100%
7. Final
Deployment 100%
8. Documentation
100%
9. Submission
100%
10
3.4 Software and Hardware Requirements:
Software requirements:
Operating system : WINDOWS10
Hardware requirements:
Hard disk : 150GB
RAM : 2GB
11
3.6 Conceptual Model
Component is a physical Part of a system that conforms to and provides realization of set of
interfaces. A component is a self-contained unit that encapsulates state and behaviour of
various set of classifiers. A component provides set of classes and interfaces with some
functionality and GUI interfaces which may be required to in several services.
12
CHAPTER 4
13
4. SYSTEM DESIGN
Systems design is the process of defining the architecture, components, modules, interfaces,
and data for a system to satisfy specified requirements of the user. During this phase, the
team focused on planning efforts for both the testing and data entry activities of the
computerized SRMIS. This is often conducted via modelling such as UML, ER-Diagram and
Use Case Diagram.
4.1 Basic Modules
A basic module is a separate unit of software or hardware. Typical characteristics of modular
component include probability, which allows them to be used in a variety of systems.
Module description
This system contains seven module which are following
1. Complaint Module 2. customer Module 3.Complaint Type Module
3. Complaint Type Module: The main purpose for developing this module is to manage the
exam type.so all exam type will be managed by admin. admin can edit or delete the exam
type.
4. Registration Module: The main purpose for developing this module is to manage the
exam result.so all exam results will be managed by admin and customers will be able to see
the exam result.
5. Customer Module: The main purpose of this module is to provide all the information of
the customer. We have develop all type of CRUD (Create, Read, and delete)
6. Login Module: The main purpose for developing this module is to manage the mark.so all
mark will manage by admin.
14
4.2 Data Design:
Data flow Diagram:
Complaint Management System data flow diagram is often use as a preliminary step to create
an overview of the result without going into great detail, which can later be elavorated.it
normally consists of overall application dataflow and processes of the result.it contain all of
the user flow and their entities such all the flow of customer, exam, class, subject, result,
teacher, semester.
A data flow diagram (DFD) is a significant modelling technique for analysing and
constructing information processes, DFD literally means an illustration that explain the
course or movement of information in approves. DFD illustrates this flow of information in a
process based on the input and output. A DFD can be referred to as a process model.
Additionally, a DFD can be utilized to visualize data processing or a structured design. A
DFD illustrates technical or business processes with the help of the external data stored, the
data flowing from process to another, and the result, designer usually draw a context-level
DFD showing the relationship between the entities inside and outside of a system as one
single step.
15
DFD Level 1:
dfd1
16
DFD Level 2 of customer information
Class Details:
Result Details:
18
Column Name Data Type Size Constraints
Customer Details:
Architectural design:
19
The software needs the architectural design to represents the design of software.IEEE defines
architectural design as “the process of defining a collection of hardware and software
components and their interfaces to establish the framework for the development of a
computer system. “The software that is built for computer-based systems can exhibit one of
these many architectural styles. Each style will describe a system category that consists of:
20
Data integrity is the overall completeness, accuracy and consistency of data. This can be
indicated by the absence of alteration between two instances or between two updates of data
record, meaning data is intact and unchanged. Data integrity is usually imposed during the
database design phase through the use of standard procedures and rules. Data integrity can be
maintained through the use of various error-checking methods and validation procedures.
Table: 1 Admin
Password varchar
Role string
Table: 2 Customers
Subject string
latitude number
longitude number
Attributes
Relations
o Many-to-many
o Many-to-one
o One-to-many
o One-to-one
Weak entity
22
Attribute That define the various attribute
of entity
23
4.3.2 Data Structures:
Activity Diagram
Activity diagrams describe the workflow behavior of a system. Activity diagram are similar
to state diagrams because activities are the state of doing something.
The diagram describes the state of activities by showing the sequence of activities performed.
Activity diagrams can show activities that are conditional or parallel.
Activity diagram are mainly used as flow chart consists of activities performed by the system.
But activity diagram are not exactly a flow chart as they have some additional capabilities.
These additional capabilities include branching, parallel flow, swim lane etc.
Before drawing an activity diagram we must have a clear understanding about the elements
used in activity diagram is the activity itself.an activity is a functional performed by the
system. After the identifying the activities we need to understand how they are associated
with constraints and conditions.so before drawing an activity diagram we should identify the
following elements:
Activities
Association
Conditions
Constraints
Once the above mentioned parameters are identified we need to make a mental layout of the
entire flow.
What to use activity diagrams:
Activity diagrams should be used in conjunction with other modeling techniques such as the
interaction diagrams and state diagrams. The main reason to use activity diagrams is to model
the workflow behind the system being designed. Activity diagrams are also useful for
analyzing a use case by describing what actions needs to take place and when they should
occur, describing a complicated sequential algorithm; and modeling applications with parallel
processes.
24
Figure 4.3.2.1 Activity Diagram
25
operations, of the class.lines,which may have arrows at one or both ends, connect the boxes.
These lines define the relationship also called associations, between that describes the
structure of a system by showing systems.Classes, their attributes, operations, and the
relationship among the classes. The class diagram is the main building block of object
oriented modelling.it is used both for general conceptual modelling of the systematics of the
application, and for detailed modelling translating the models into programming code.
Classes are composed of three things a name attributes, and operations, represented with
boxes which contain three parts:
A class with three sections.
The upper part holds the name of the class
The middle part contains the attributes of the class.
The bottom part gives the methods or operations the class can take or undertake.
26
A sequence diagram in unified modelling language (UML) is a kind of interaction diagram
that shows how processes operate with one another and in whatorder.it is a construct of a
message sequence chart. Sequence diagrams are sometimes called event-trace diagrams, even
scenarios, and timing diagrams.
The sequence diagram is used primarily to show the interactions between objects in the
sequential order that those interactions occur. Much like the class diagram, developers
typically think sequence diagrams were meant exclusively for them.
However, an organizations business staff can find sequence diagrams useful to communicate
how the business currently works by showing how various business objects interact. Besides
documenting an organizations current affairs, a business-level sequence diagram can be used
as a requirements document to communicate requirements for a future system
implementation. During the requirements phase of a project analysts can take use cases to the
next level by providing a more formal level of refinement. When that occurs, use cases are
often refined into one or more sequence diagrams.
27
A use case diagram in the unified modelling language (UML) is a type of behavioural
diagram defined by and created from a use case analysis. Its purpose is to present a graphical
overview of the functionality provided by a system in terms of actors, their goals (represented
a use cases), and any dependencies between those use cases.
The main purpose of a use case diagram is to show what system functions are performed for
which actor. Roles of the actors in the system can be depicted.
An actor is represents a user or another system that will interact with the system you are
modelling. A use case is an external view of the system that represents some action the user
might perform in order to com
Use case
Actor
28
Figure:4.3.4.1 Use Case Diagram
29
4.5 Security Issue:-
It’s probably safe to say that the security of your networks and systems is something you are
concerned about. In truth, the majority of businesses do have security measures in place. The
question you therefore need to ask yourself is if the measures you have implemented are
sufficient enough. To help answer that question, here are five common security flaws
business owners should be aware of. If you are providing integrated security service to your
clients, whether it is physical / electronic security services, special event security service,
access control solutions, consulting Services, this invoice template could help you create
professional bills with easy and quick.
Just like the other free bill templates available here on InvoicingTemplate.com, this
integrated security invoicing template has a client# cell, you can use this as your customer
account number. This client# is automatically generated, like the invoice numbering sub-
system that assigns increment and unique numbers to each invoice, is based on a counter
implemented by Invoice Manager for Excel (namely Uniform Invoice Software) backend
database.
When you request, make, receive, record, or otherwise process a payment through the Bill
Service, we collect information about the payment transaction and the transacting parties,
such as the date, time and location(s) of the transaction, identifying information of the sender
and recipient, the payment or transfer amount(s), bank account information for the sender
and/or recipient, a description of the transaction, and the Service Fees charged by Bill.
30
4.6 Test Case Design:
Purpose Comment
If the admin id and password will be Admin will also be able to know the
correctly entered in the textbox then current data of the user.
he can add data details and user
registration.
If the user fills the id and password By correct Id and password user can
correctly then he/she can update the be access to know the data of their
current data. system.
31
1.Enter user Email Valid user Email and Then he/she will go to next
2.Enter Password password page and choose his user
3.Click Login name.
1.Enter Employee Id Valid user Id and password Then he goes to login page
2.Enter password and update current data and
3.Click login reason to change.
32
CHAPTER NO 5
33
The following lines will give you an introduction into the implementation of projects in
sustainable sanitation and water management, and highlights key aspects that have to be
taken into account for a successful implementation.
Advantages:
Disadvantage:-
Poor financial planning and technology can lead to budget constraints in the midst of
implementation.
The decision on when a project is complete often causes friction between
implementers and the community. Completion for the implementer is quite
straightforward. It is defined by contracts, drawings, and statutes.
Communities have a more practical approach to completion. Once the Project
produces the benefits for which they agreed to undertake it they see no reason to
spend further time, effort and money on it.
Putting the action plan into operation. Achieving tangible change and improvements.
Ensuring that new infrastructure, new institutions and new resources are sustainable in
every aspect. Ensuring transparency with regard to finances.
34
The goal of code efficiency is to reduce resource consumption and completion
time as much as possible with minimum risk to the business or operating
environment. The software product quality can be accessed and evaluated with the
help of the efficiency of the code used.
Recommendation for code efficiency include:
To remove unnecessary code or code that goes to redundant processing. To
make use of optimal memory and nonvolatile storage.
To ensure the best speed or run time for completing the algorithm. To
make use of reusable components wherever possible.
To make use of error and execution handling at all layers of software, such
as the user interface, logic and data flow.
To create programming code that ensures data integrity and consistency.
To develop programming code that’s compliant with the design logic and
flow to make use of coding practices applicable to the related software. To
optimize the use of data access and data management practices.
To use the best keywords, data types and variable, and other available
programming concepts to implement the related algorithm.
35
<ul class="nav nav-tabs">
<li class="active" disabled="disabled"><a href="login.php"><span class="glyphicon
glyphicon-user"></span>Staff:</a></li>
<li><a href="../index.php"><span class='glyphicon glyphicon-
envelope'></span>Complaints</a></li>
<li><a href="feedback.php"><span class='glyphicon glyphicon-
send'></span>Feedback</a></li>
</ul>
<div class="row">
<div class="col-md-8" style="padding-top:100px;padding-left: 300px;">
<?php
if(isset($_POST['submit'])){
$uname=$_POST['username'];
$pwd=$_POST['password'];
$msg=$db->login($uname,$pwd);
echo $msg;
}
?> <form action="login.php" method="POST" class="form-horizontal">
<div class="form-group">
<label class="col-md-2" for="username">Username:</label>
<div class="col-md-6">
<input type="text" name="username" id="username" placeholder="Username..."
class="form-control">
</div>
</div>
<div class="form-group">
<label class="col-md-2" for="password">Password:</label>
<div class="col-md-6">
<input type="password" name="password" id="password" placeholder="******"
class="form-control">
</div>
</div>
<div class="form-group">
<label class="col-md-2"> </label>
<div class="col-md-6"><input type="submit" name="submit" value="Login" class="btn btn-
success"></div>
</div>
COMPLAINT MANAGEMENT SYSTEM
</form>
</div>
<div class="col-md-4" style="padding-top: 100px;">
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="text-danger"><span class="glyphicon glyphicon-warning-sign"></span>Only
Authorised Staff Allowed</h3>
</div>
<div class="panel-body">
<p class="text-success">
36
Please Provide The Correct <b>Username</b> And <b>Password</b> To Login Staff or
System Administrator
</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Index:-
<?php
//include("includes/database.php");
include("logo.php");
?>
<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="css/main.css">
<body style="background: #F5F5DC;">
<div class="nav" style="background: #F5F5DC;">
<ul class="nav nav-tabs">
<li class="active" disabled='disabled'><a href="index.php"><span class="glyphicon
glyphicon-envelope"></span> Complaints</a></li>
<li><a href="includes/feedback.php"><span class="glyphicon glyphicon-
send"></span> FeedBack</a></li>
</ul>
<center><h3 style="font-weight: bold;">COMPLAINT MANAGEMENT
SYSTEM</h3></center>
<div class="pull-right">
<ul class="nav nav-pills">
<li class="active"><a href="includes/login.php"><span class="glyphicon glyphicon-eye-
open"></span> Login</a></li>
</ul>
</div>
</div>
COMPLAINT MANAGEMENT SYSTEM
37
<div class="form-group">
<label for="fac" class="text-warning">Select Faculty To Complain To:</label>
<select id="fac" name="faculty" class="form-control" style="background: #F5F5DC;">
<option>Faculty Of Science And Technology</option>
<option value="#">Other Faculties</option>
</select>
<textarea name="complaint" class="form-control" placeholder="Type Complaint Here..."
style="height: 200px;background: #F0FFF0;"></textarea>
</div>
<div class="form-group">
<input type="submit" name="submit" value="Send Complaint" class="btn btn-success btn-lg
btn-block" >
</div>
</form>
</div>
<div style="padding-top: 25px;">
<div class="col-md-6 panel panel-info">
<div class='panel-heading'>
<h4 class="panel-title">Complaint Management System</h4>
</div>
<div class="panel-body">
<p class="text-warning">Type Complaint in the Field ,You Will Receive A Reference ID,
which You Will Use To Get Your FeedBack </p>
</div>
<ul class="list-group">
<?php
//after submit message with reference ID is sent to student
require("includes/database.php");
if(isset($_POST['submit'])){
$complaint=$_POST['complaint'];
$date=date("Y-m-d H:m:s");
$faculty=$_POST['faculty'];
$result=$db->query("INSERT INTO complaints
VALUES('','$complaint','pending','$date','$faculty')");
if(!empty($result)){
38
<h4 class="modal-title" id="myModalLabel"><span class="glyphicon glyphicon-
ok"></span> Success
</h4>
</div> <div class="modal-body">Complaint Submitted Successfully, Copy the Reference
Number For Accessing Your Feedback</div>
<div class="modal-footer"> <button type="button" class="btn btn-default" data-
dismiss="modal" id="close-btn">Close </button>
<button type="button" class="btn btn-primary" id="continue-btn">Continue</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal -->
</div>';
$str="SELECT cid FROM complaints ORDER BY cid DESC LIMIT 1";
$query=$db->query($str);
$rows=$db->fetch($query);
//print_r($rows);
$cid=0;
foreach($rows as $row){
$cid=$row;
}
if($cid == 0){ $cid=''; }
$str="INSERT INTO feedback VALUES('','null','null','$cid','','pending')";
$qu=$db->query($str);
if(!$qu){
echo "<li class='list-group-item'><h5 class='alert alert-danger'>Error Getting Reference
ID</h5></li>";
}else{
//SELECT * FROM users INNER JOIN emergency ON users.user_id=emergency.user_id
WHERE emergency.status='pending' ORDER BY dtime DESC
$get="SELECT refid FROM feedback INNER JOIN complaints ON
feedback.cid=complaints.cid WHERE complaints.cid='$cid' ";
$q=$db->query($get);
$rows=$db->fetch($q);
foreach($rows as $row){
echo "<li class='list-group-item'><h3 class='alert alert-success' style='text-align:center;font-
weight:bold;'>CmSxRf".$row."IdFy</h3></li>
}else{
39
echo "<li class='list-group-item'><h5 class='alert alert-danger'>Fatal Error Occured, Failed to
Send Complaint</h5></li>";
}
?>
<div class="panel panel-success">
<div class="panel-heading">
<?php if(isset($_POST['mail'])){
$names=$_POST['names'];
$phone=$_POST['phone'];
$email =$_POST['email'];
$faculty =$_POST['faculty'];
$refid=$_POST['refer'];
$x=str_replace('CmSxRf','', $refid);
$id=str_replace('IdFy','', $x);
if(!empty($names)||!empty($phone)||!empty($email)||!empty($faculty)||!empty($refid)){
$operation="INSERT INTO mailing VALUES('','$names','$phone','$email','$faculty','$id')";
$query=$db->query($operation);
if(mysqli_affected_rows($db->connection) > 0){
echo "<span class='glyphicon glyphicon-ok'>Success We shall Send Your Feedback As SMS
and Email</span>";
}else{
echo "<span class='text-danger glyphicon glyphicon-remove'>An Error Occured..Please Tray
Again Later</span>";
}
}else{
echo "<h5 class='text-danger'>Fill In All Fields To Receive Feedback as SMS or
Email</h5>";
}
} ?>
</div>
<div class="panel-body" style="display: none;" id="form_mail">
<form action="index.php" method="POST">
<input type="hidden" name="refer" id="form_refid" value="">
COMPLAINT MANAGEMENT SYSTEM
<div class="form-group">
<label for="names">Names:</label>
<input type="text" name="names" placeholder="Type Your Names Here..." class="form-
control" id="names">
</div>
<div class="form-group">
<label id="phone">Phone Contact:</label>
<input type="text" name="phone" placeholder="Type Your Phone Contact Here..."
id="phone" class="form-control">
</div>
40
<div class="form-group">
<label for="email">Email:</label>
<input type="email" name="email" id="email" class="form-control">
</div>
<div class="form-group">
<label for="fac">Faculty Or Department:</label>
<input type="text" name="faculty" id="fac" class="form-control" placeholder="Type Your
Faculty Here...">
</div>
<div class="form-group">
<input type="submit" name="mail" value="Finish" class="btn btn-success btn-block">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="js/staff.js"></script>
<script type="text/javascript" src="js/custom.js"></script>
</body>
</html>
Admin:-
<?php if(!isset($_GET['sid']))
header("location: login.php"); ?>
<?php include("database.php"); ?>
<!DOCTYPE html>
<html>
<link rel="stylesheet" type="text/css" href="../css/bootstrap.css">
<body style="background: #F5F5DC;">
<div class="container-fluid">
<?php include("logo.php"); ?>
<ul class="nav nav-tabs">
42
echo "<h4 class='alert alert-success'><span class='glyphicon glyphicon-
ok'></span> Staff Registered Successfully</h4>";
}
}
}
?>
<form action="admin.php?sid=<?php echo $_GET['sid']; ?>&uname=<?php echo
$_GET['uname']; ?>" method="POST" class="form-horizontal">
<div class="form-group">
<label class="col-md-2" for="username">Username:</label>
<div class="col-md-6">
<input type="text" name="username" id="username" placeholder="Type Staff Username
Here..." class="form-control">
</div>
</div>
<div class="form-group">
<label class="col-md-2" for="password">Password:</label>
<div class="col-md-6">
<input type="password" name="password" id="password" class="form-control">
</div>
</div>
<div class="form-group">
<label class="col-md-2" for="cpassword">Confirm Password:</label>
<div class="col-md-6">
<input type="password" name="cpassword" id="cpassword" class="form-control">
</div>
</div>
<input type="hidden" name="role" value="staff">
<div class="form-group">
<label class="col-md-2" for="full_names">Full Names</label>
<div class="col-md-6">
<input type="text" name="full_names" id="full_names" class="form-control">
</div>
</div>
<div class="form-group">
<label class="col-md-2"> </label>
<div class="col-md-6" >
COMPLAINT MANAGEMENT SYSTEM
<input type="submit" name="staff" value="Register" class="btn btn-success btn-block">
</div>
</div>
</form>
</div>
</div>
<!-- Admin-->
<div class="panel panel-info" style="display: none;" id="admin-div" style="background:
#F5F5DC;">
43
<div class="panel-heading">
<center><h4 class="panel-title">Register Admin:<span class="glyphicon glyphicon-
dashboard"></span></h4></center>
</div>
<div class="panel-body" style="background: #F5F5DC;" >
<?php
if(isset($_POST['admin'])){
if($_POST['password'] != $_POST['cpassword'])
echo "<h4 class='alert alert-danger'>Passwords Dont Match,Please Try Again</h4>";
else{
$username=$_POST['username'];
$pwd=$_POST['cpassword'];
$full=$_POST['full_names'];
$role=$_POST['role'];
$admin="INSERT INTO staff VALUES('','$username','$pwd','$full','$role')";
$admin_q=$db->query($admin);
$flag=mysqli_affected_rows($db->connection);
if($flag>0){
echo "<h4 class='alert alert-success'><span class='glyphicon glyphicon-
ok'></span> Admin Registered Successfully</h4>";
}
}
}
?>
<form action="admin.php?sid=<?php echo $_GET['sid']; ?>&uname=<?php echo
$_GET['uname']; ?>" method="POST" class="form-horizontal">
<div class="form-group">
<label class="col-md-2" for="username">Username:</label>
<div class="col-md-6">
<input type="text" name="username" id="username" placeholder="Type Admin Username
Here..." class="form-control">
</div>
</div>
<div class="form-group">
<label class="col-md-2" for="password">Password:</label>
<div class="col-md-6">
<input type="password" name="password" id="password" class="form-control">
COMPLAINT MANAGEMENT SYSTEM
</div>
</div>
<div class="form-group">
<label class="col-md-2" for="cpassword">Confirm Password:</label>
<div class="col-md-6">
<input type="password" name="cpassword" id="password" class="form-control">
</div>
</div>
44
<input type="hidden" name="role" value="admin">
<div class="form-group">
<label class="col-md-2" for="full_names">Full Names</label>
<div class="col-md-6">
<input type="text" name="full_names" id="full_names" class="form-control">
</div>
</div>
<div class="form-group">
<label class="col-md-2"> </label>
<div class="col-md-6" >
<input type="submit" name="admin" value="Register" class="btn btn-success btn-block">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="../js/staff.js"></script>
</body>
</html>
Functions:-
<?php
function clean($username,$password){
$uname1=str_replace('\'','',$username);
$uname2=str_replace("'",'',$uname1);
$pwd1=str_replace("'",'',$password);
$pwd2=str_replace('\'','',$pwd1);
return $uname2.'|'.$pwd2;
}
?>
Users:-
<?php if(!isset($_GET['sid']))
header("location: login.php"); ?>
<?php include("database.php"); ?>
<!DOCTYPE html>
<html>
45
<link rel="stylesheet" type="text/css" href="../css/bootstrap.css">
<body style="background: #F5F5DC;">
<div class="container-fluid">
<?php include("logo.php"); ?>
<ul class="nav nav-tabs">
<li class="active" disabled="disabled"><a href="admin.php?sid=<?php echo $_GET['sid'];
?>&uname=<?php echo $_GET['uname']; ?>"><span class="glyphicon glyphicon-
dashboard"></span>Admin:<i class="text-danger"><?php echo
$_GET['uname'];?></i></a></li>
<li><a href="admin-view.php?sid=<?php echo $_GET['sid']; ?>&uname=<?php echo
$_GET['uname']; ?>"><span class='glyphicon glyphicon-
envelope'></span>Complaints</a></li>
<li><a href="users.php?sid=<?php echo $_GET['sid']; ?>&uname=<?php echo
$_GET['uname']; ?>"><span class="glyphicon glyphicon-user"></span>Users</a></li>
</ul>
<div class="pull-right" style="padding-bottom: 30px;">
<ul class="nav nav-pills">
<li class="active"><a href="../index.php"><span class="glyphicon glyphicon-eye-
close"></span> LogOut</a></li>
</ul>
</div>
<div class="row" style="padding-top: 70px;">
<!--
-click on link to activate admin or staff account to create nd submit form to staff table
-Display List of All staff in users table.
-->
<div class="col-md-6">
<div class="panel panel-info" style="background: #F5F5DC;">
<div class="panel-heading">
<h4 class="panel-title">Admins:<span class="glyphicon glyphicon-cog"></span></h4>
</div>
<div class="panel-body">
<?php
$str1="SELECT * FROM staff WHERE role='admin' ";
$query=mysqli_query($db->connection,$str1);
?>
<ul class="list-group">
<?php
$count=1;
while($rows=mysqli_fetch_array($query)){
COMPLAINT MANAGEMENT SYSTEM
echo "<li class='list-group-item'>".$count.' <b class="text-
success">'.$rows['full_name']."</b></li>";
$count++;
}
?>
</ul>
</div>
</div>
46
</div>
<div class="col-md-6">
<div class="panel panel-info" style="background: #F5F5DC;">
<div class="panel-heading">
<h4 class="panel-title">Respondent Staff:<span class="glyphicon glyphicon-
user"></span></h4>
</div>
<div class="panel-body">
<?php
$str1="SELECT * FROM staff WHERE role='staff' ";
$query=mysqli_query($db->connection,$str1);
?>
<ul class="list-group">
<?php
$c=1;
while($rows=mysqli_fetch_array($query)){
echo "<li class='list-group-item'>".$c.' <b class="text-
success">'.$rows['full_name']."</b></li>";
$c++;
}
?>
</ul>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="../js/staff.js"></script>
</body>
</html>
Database:-
<?php
require("functions.php");
class database{
public $connection;
47
private $host="localhost";
private $user="root";
private $pwd="";
private $db="cms";
public function __construct(){
$this->connect();
}
public function connect(){
$this->connection=mysqli_connect($this->host,$this->user,$this->pwd,$this->db);
if(!$this->connection){ echo "Error ,Failed to Connect to Database <font
color='red'>".mysqli_connect_errno()."</font>"; }
}
/**
method to execute querys
*/
public function query($sql=""){
$query=mysqli_query($this->connection,$sql);
if($query){return $query; }else{return false;}
}
public function fetch($query){
$fetch=mysqli_fetch_array($query);
return $fetch;
}
public function login($username,$password){
$string=explode("|",clean($username,$password));
$name=$string[0];//username
$pwd=$string[1];//password
$search="SELECT * FROM staff WHERE username='$name' AND password='$pwd' ";
$query=$this->query($search);
$fetch=$this->fetch($query);
if($fetch['role']=='staff'){
$id=$fetch['sid'];
$uname=$fetch['username'];
header("location: staff.php?sid=$id&uname=$uname");
}else{
$search_admin="SELECT * FROM staff WHERE username='$name' AND
password='$pwd' AND role='admin' ";
$q=$this->query($search_admin);
$f=$this->fetch($q);
if($f['role']=='admin'){
COMPLAINT MANAGEMENT SYSTEM
$id=$f['sid'];
$uname=$fetch['username'];
header("location: admin-view.php?sid=$id&uname=$uname");
}else{
return "<h4 class='alert alert-danger'>Incorrect Username or Password</h4>";
}
48
}
}
}
$db=new database();
?>
Logo:-
<div class="row">
<center>
</div>
</center>
</div>
Staff:-
<?php if(!isset($_GET['sid']))
header("location: login.php"); ?>
<?php include("database.php"); ?>
<!DOCTYPE html>
<html>
<link rel="stylesheet" type="text/css" href="../css/bootstrap.css">
<body style="background: #F5F5DC;">
<div class="container-fluid">
<?php include("logo.php"); ?>
<ul class="nav nav-tabs">
<li class="active" disabled="disabled"><a href="staff.php?sid=<?php echo $_GET['sid'];
?>&uname=<?php echo $_GET['uname']; ?>"><span class="glyphicon glyphicon-
user"></span>Respondent:
<?php
if(isset($_GET['uname']))
echo "<i class='text-warning' style='font-weight:bold;'>".$_GET['uname']."</i>";
COMPLAINT MANAGEMENT SYSTEM
?></a></li>
<li><a href="complaints.php?sid=<?php echo $_GET['sid']; ?>&uname=<?php echo
$_GET['uname']; ?>"><span class='glyphicon glyphicon-envelope'></span>Complaints</a></li>
</ul>
<div class="pull-right">
<ul class="nav nav-pills">
<li class="active"><a href="../index.php"><span class="glyphicon glyphicon-eye-
close"></span> LogOut</a></li>
</ul>
49
</div>
<div class="row">
<div class="col-md-8">
<div class="panel panel-success" style="height: 500px;overflow: auto;background: #F5F5DC;">
<div class="panel-heading">
<?php /*
$pending=0;
$done=0;
$tot=0;
$get="SELECT * FROM complaints ";
$get_pend="SELECT * FROM complaints WHERE status='pending' ";
$get_done="SELECT * FROM feedback WHERE status='done' ";
$qp=mysqli_query($db->connection,$get_pend);
$qd=mysqli_query($db->connection,$get_done);
$qt=mysqli_query($db->connection,$get);
while($row=mysqli_fetch_array($qp)){ $pending++; }
while($row=mysqli_fetch_array($qd)){ $done++; }
while($row=mysqli_fetch_array($qt)){ $tot++; }
?>
<center><h4 class="panel-title">Pending Complaints:<?php
echo $pending; */
?>
<!-- Answered Complaints:<?php// echo $done; ?>
Total Complaints:<?php //echo $tot; ?>
</h4></center> -->
<?php
$staffid=$_GET['sid'];
$str="SELECT * FROM forwarded INNER JOIN staff ON forwarded.sid=staff.sid WHERE
forwarded.respondent_id='$staffid' ";
$q=$db->query($str);
if($q){
while($row=mysqli_fetch_array($q)){
echo "<center><h4 class='text-danger'>Forwarded By:".$row['full_name']." AT
".$row['dtime']."</h4></center>";
break;
}
}
?>
</div>
<div class="panel-body">
COMPLAINT MANAGEMENT SYSTEM
<!--
-display link of the complaint when clicked a div shows up for reply to feedback
-->
<table class="table" style="background: #F5F5DC;">
<tr class="active">
<th>#</th>
<th><span class="glyphicon glyphicon-bullhorn"></span> Complaint:</th>
<th><span class="glyphicon glyphicon-calendar"></span> Date:</th>
<th>
<span class="glyphicon glyphicon-send"></span>
</th>
</tr>
50
<?php
//query database to display complaint table data
//$str="SELECT * FROM complaints WHERE status='pending' ORDER BY cid DESC";
$id=$_GET['sid'];
$str="SELECT * FROM complaints INNER JOIN forwarded ON complaints.cid=forwarded.cid
WHERE forwarded.respondent_id='$id' AND complaints.status='pending' ";
$count=1;
$query=mysqli_query($db->connection,$str);
while($rows=mysqli_fetch_array($query)){
echo "<tr>";
echo "<td>".$count."</td>";
echo "<td><a href='#' id='".$rows['cid']."'>Complaint Sent On</td>";
echo "<td><a href='#' id='".$rows['cid']."'> ".$rows['dtime']."</a></td>";
echo "<td><a href='#' id='".$rows['cid']."' onclick=javascript:show(".$rows['cid'].");
>Reply <span class='glyphicon glyphicon-pencil'></span></a>
<input id='desc_".$rows['cid']."' type='hidden' value='".$rows['complaint_description']."' />
</td>";
echo "</tr>";
$count++;
}
?>
</table>
</div>
</div>
</div>
<div class="col-md-4" style="display: none;" id="reply-field">
<?php
/**
* Submit reply to feedback table
**/
if(isset($_POST['replys'])){
$reply=$_POST['reply'];
$id=$_POST['cid_s'];
$sid=$_GET['sid'];
$date=date("Y-m-d H:m:s");
$status='done';
51
mail($mail_fetch['email'],'Complaint Feedback',$reply);
echo "<h5 class='text-success'>Email Sent Successfully to <h4 class='text-
danger'>".$mail_fetch['names']."</h4></h5>";
}else{
echo "<h4 class='text-danger'>Email Address or Contact Was Not Provided</h4>";
}
if($flg >0 ){
echo "<h4 class='alert alert-success'><span class='glyphicon glyphicon-ok'></span>Complaint
Answered</h4>";
}
}else{
echo "<h4 class='alert alert-danger'><span class='glyphicon glyphicon-warning-
sign'></span>Complaint Not Successfully Answered</h4>";
}
}
?>
<div style="padding-top: 50px;">
<div class="panel panel-info" style="background: #F0F8FF;">
<div class="panel-heading">
<h4 class="panel-title">Reply Complaint:</h4>
</div>
<div class="panel-body">
<b>
<div style="width:100%px; word-wrap: break-word;">
<span id="complaint_text" class="text-success"></span>
</div>
</b>
<hr />
<form action="staff.php?sid=<?php echo $_GET['sid']; ?>&uname=<?php echo $_GET['uname']; ?>"
method="POST">
<div class="form-group">
<input type="hidden" name="cid_s" id="cid_s" value="" >
COMPLAINT MANAGEMENT SYSTEM
<textarea name="reply" placeholder="Reply Complaint Here..." class="form-control"
style="height:100px;" required="required"></textarea>
<div class="form-group" style="padding-top: 10px;"><input type="submit" name="replys"
value="Reply" class="btn btn-success btn-block"></div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function show(id){
if(id >= 0 ){
document.getElementById("reply-field").style.display='block';
52
var body=document.getElementById("desc_"+id).value;
document.getElementById("complaint_text").innerHTML=body;
document.getElementById("cid_s").value=id;
//alert(id);
}else{
document.getElementById("reply-field").style.display='none';
}
}
window.onload=show(1);
</script>
<script type="text/javascript" src="../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="../js/staff.js"></script>
</body>
</html>
Check:-
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function codeAddress() {
alert('ok');
}
window.onload = codeAddress;
</script>
</head>
<body>
COMPLAINT MANAGEMENT SYSTEM
</body>
</html>
Head:-
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/bootstrap.css">
<title>CMS</title>
</head>
<body style="background: #F5F5DC;">
<script type="text/javascript" src="../js/bootstrap.min.js"></script>
<div class="container-fluid">
<?php include("logo.php"); ?>
<ul class="nav nav-tabs">
<li disabled='disabled'><a href="../index.php"><span class="glyphicon glyphicon-
envelope"></span> Complaints</a></li>
53
<li class="active"><a href="feedback.php"><span class="glyphicon glyphicon-
send"></span> FeedBack</a></li>
</ul>
<div class="pull-right">
<ul class="nav nav-pills">
<li class="active"><a href="login.php"><span class="glyphicon glyphicon-eye-
open"></span> Login</a></li>
</ul>
</div>
54
COMPLAINT MANAGEMENT SYSTEM
Bottom up Approach
Testing can be performed starting from smallest and lowest level modules and
proceeding one at a time. For each module in bottom up testing a short program
executes the module and provides the needed data so that the module is asked to
perform the way it will when embedded within the larger system. When bottom level
modules are tested attention turns to those on the next level that use the lower level
ones they are tested individually and then linked with the previously examined lower
Level modules.
Module Testing :
In this strategy some test cases are generated as input conditions that fully execute
all functional requirement for the program .This testing has been used to find errors in
the following categories.
Interface errors
Errors in data structure or external database access.
Performance error
Initialization and termination errors.
In this testing only the output is checked for correctness. The logical flow of data is not
checked.
55
COMPLAINT MANAGEMENT SYSTEM
Below are the different strategies, the way they are executed and their limitations as well
advantages.
Advantage:-
Convenient for small systems.
56
COMPLAINT MANAGEMENT SYSTEM
Disadvantage:
Fault localizations are difficult.
Given the sheer number of interfaces that need to be tested in this approach.
Link to be tested could be missed easily.
At the first stage driver did not being update the latitude and longitude then after some
changes driver update location work properly and stored in database.
57
COMPLAINT MANAGEMENT SYSTEM
Do not assume
Do not assume functionality and features of your software applications while
preparing test case. Stick to the specification Documents.
58
COMPLAINT MANAGEMENT SYSTEM
As the name suggests it’s the technique that defines the testing of boundaries for a specified
range of values.
Repeatable and self-standing: The test case should generate the same results every
time no matter who tests it. After creating test cases, get them reviewed by your
colleagues. After creating test cases, get them reviewed by your colleagues. Your
peers can another defect in your test case design, which you may easily miss.
59
COMPLAINT MANAGEMENT SYSTEM
Steps:-
60
CHAPTER NO: 6
61
COMPLAINT MANAGEMENT SYSTEM
RESULT & DISCUSSION
6. RESULT & DISCUSSION
6.1 Test Report
Check response
When valid admin Id : Admin Login should be successful
User id Password : Admin .Admin can add user details.
and
Password is entered
Check response
When valid admin Email : [email protected] Login should be successful user
Email Password : 123@vib can know their data current
and update of bill as well as
Password is entered information.
Check response
When valid Name Name: vibhav Login should be successful, user
and Password : vibhav123 can view their data as well as the
Password is entered bill information
62
COMPLAINT MANAGEMENT SYSTEM
63
COMPLAINT MANAGEMENT SYSTEM
64
COMPLAINT MANAGEMENT SYSTEM
65
COMPLAINT MANAGEMENT SYSTEM
66
COMPLAINT MANAGEMENT SYSTEM
67
COMPLAINT MANAGEMENT SYSTEM
CONCLUSION
application software has been computed successfully and was also tested successfully by
taking “test cases”. It is user friendly, and has required options, which can be utilized by the
user to perform the desired operations. application software meets the information
requirements specified to a great extent. The system has been designed keeping in view the
present and future requirements in mind and made very flexible. The goals that are achieved
by the software are Instant access , Improved productivity, Optimum utilization of resources ,
Efficient management of records.
1. The first advantage is that it offers a paperless mode of transaction which is also
environmentally friendly and clutter free for both the receiver and sender of the electronic
billing.
2. The online complaint system services are one of the least expensive forms of complaint
system when compared to the traditional billing.
3. The electronic complaint system is absolutely hassling free as one can protect the bill with
the help of password and can be opened only by the recipient.
4. The electronic complaint services are both customer friendly and also beneficial for the bill
generators as there is focus on the process rather than on the mode of bill dispatch.
5. The electronic complaint also provides a great advantage of saving time and efforts that are
normally lost in a traditional complaint system .besides there is no loss of bill when making
use of the online mode of billing.
68
ONLINE COMPLAINT SYSTEM
automate manual transaction in Billing. However, the study has focused on the following:
The proposed automated system should generate reports of daily and monthly sales
For security and privacy of the management, the Complaint System comply two log-
69
ONLINE COMPLAINT SYSTEM
7.3 Future scope of the project
Create Manage
transparency Subscriiption
1st Qtr
2nd Qtr
3rd Qtr
Manual
Customer 4th Qtr
Database Minimize
This work opens a number of paths for future research. The research can be extended in
several directions and some of them are summarized below: x the scope of this study is
limited to only those languages which are based on Java such as AspectJ etc. This work could
be extended to be implemented on AOP languages like AspectC, AspectC++, AspectL (Lisp),
Aspect XML, and Aspect Android etc., which can further be included in the proposed
framework. X The results obtained from the present work are quite informative and
researchers would find them helpful for implementation in real-life projects. x Since the
values of software metrics have been computed on distinct class modules manually, so there
is a need to develop an automated tool to predict the testability of a software system based on
Aspect Oriented Technology. The tool shall calculate the testability at an early stage of
software development life cycle, i.e. from UML diagrams defined at design level. x A
standardized automated tool could also be designed for all the UML diagrams of Aspect
Oriented Systems. We have tried to make such type of software .which satisfy the above
given requirement.
70
COMPLAINT MANAGEMENT SYSTEM
REFERENCES
Google for problem solving
http://www.phpworld.com
https://www.tutorialspoint.com/php/
http://www.phppoint.com/php-tutorial/
http://www.xamppserver.com/en/
71