Client Management System

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

HIGH RESOULTION ANIMATED SCENES FROM STILLS

MINI PROJECT
A project report submitted in partial fulfillment of
The requirements for the award of the degree of

BACHELOR OF COMPUTER APPLICATION


to the
PERIYAR UNIVERSITY, SALEM - 11
Submitted By
D.THAVASI
C21UG207CAP023

UNIQUE COLLEGE OF ARTS AND SCIENCE


Affiliated toPeriyar University
KARAPATTU, UTHANGARAI-635 207
MARCH 2024
UNIQUE COLLEGE OF ARTS AND SCIENCE
Affiliated to PeriyarUniversity
KARAPATTU, UTHANGARAI-635 207

MARCH - 2024
MNI PROJECT WORK
HIGH RESOLUTION ANIMATED SCENES FROM STILLS
Bonafide Work Done By
D.THAVASI
C21UG207CAP023

BACHELOR OF COMPUTER APPLICATION


PERIYAR UNIVERSITY, SALEM-11

INTERNAL GUIDE HEAD OF THE DEPARTMENT

Submitted for the Viva Voce Examination held on ____________

Internal Examiner External Examiner


CERTIFICATE

This is to certificate that the project work entitled “Client

Management System (CMS)” submitted to UNIQUE COLLEGE OF

ARTS AND SCIENCE, KARAPATTU,UTHANGARAI-635 207

requirements for the award of degree of project work done by

D.THAVASI, (Register No: C21UG207CAP023,) under my

supervision and guidance.

Date: Signature of the Guide


Place:

(P.Sankar.,M.Sc.,B.Ed.,M.,phil.,B.A(E).,B.Sc(Geo)
DECLARATION

I hereby that the project work entitled as “Client Management


System (CMS)” submitted to Unique College of Arts and
Science, in partial fulfillment of the requirement for the award
of degree of bachelorof Science is the project work carried out
by me under the Guidance of
(P.Sankar.,M.Sc.,B.Ed.,M.,phil.,B.A(E).,B.Sc(Geo)., Assistant
professor department of computer Application during the
year2024.To the work reported here is not of any other thesis or
work of which a degree or an award was conferred on an earlier
to one or any other candidate.

Place: Signature of the Candidate


Date: (D.THAVSI)
ACKNOWLEDGMENT
The completion of this brings a sense of satisfaction, but it is never completed without
thanking the persons who responsible for the successful completion.
First and foremost we wish to express my thanks to the almighty God who is the real one
to help us through the preparation of this project.
I extend my sincere gratitude to our Chairman cum PrincipalDr.K.Arul.,MBA. M.Phil.,
Ph.D.,and to the Secretary Thiru. Tamilarasufor their motivation and encouragement.
I thank our beloved Class InchargeMr.POOPALAN------,M.Sc,B.Ed, for being the
source of inspiration.
I would like to extend my thinks to
(P.Sankar.,M.Sc.,B.Ed.,M.,phil.,B.A(E).,B.Sc(Geo)., Head of the Department of
Bachelour Computer Application for his motivation and encouragement throughout the project
work.

I express my thanks to (P.Sankar.,M.Sc.,B.Ed.,M.,phil.,B.A(E).,B.Sc(Geo)


Assistant professor and my internal guide for his valuable guidance for my project work that
made me to complete the project in a much determined way within a stipulated time.
I also wish to express our sincere fellings of gratitude to our Unique College of Arts and
Science, Karapattu for providing support during this project.
I thank my family numbers and friendsfor their immersive encouragement and all my
family and friends for their help rendered to me in many ways to complete the project.
I am thankful to all those who have directly helped us in successful completion of our
project.
D.THAVASI
Table of Contents
Sl. No Contents Page No
1 Abstract 1

2 Introduction 1

3 System study 3

3.1 Vision Document 3

3.2 Software Requirement Specification 4


3.3 Supplementary Specification 5
4 System Design 8
4.1 Software Architecture 10
5 System Development 11
5.1 Review Tools 12
6 Testing Methodology 15
6.1 Test Strategy 16
7 Conclusion 19
8 Bibliography 20
9 Appendices 21
9.1 Project Proposal Document 22
9.2 Software Development Plan 23
9.3 Risk List 24
9.4 User Documentation 26
9.5 Sample Code 27
9.6 Sample Screen Shots 35
ACKNOWLEDGEMENT
I have taken efforts in this project. However, it would not have been possible
without the kind support and help of my faculty members and friends. I would like
to extend my sincere thanks to all of them.

I am highly indebted to (Name of your Mentor) for their guidance and constant
supervision as well as for providing necessary information regarding the project &
also for their support in completing the project. I am extremely thankful to him for
providing such a nice support and guidance, although he had busy schedule
managing the corporate affairs.

I would like to express my gratitude towards my parents & member of (College


Name) for their kind co-operation and encouragement which help me in
completion of this project.

I am thankful to and fortunate enough to get constant encouragement, support and


guidance from all Teaching staffs of [Department name] which helped us in
successfully completing our project work.
Abstract
Client Management System (CMS) is an established concept which is used to
manage client lifecycle through various technologies and process oriented tools.
This study identifies how web application can be utilized for improved client
management and to understand the potential of web application in the business
environment.
Introduction
Introduction:-
Client Management System is software application which is used to manage a
company's interaction with current and potential clients. Client management
system is an automatic system which delivers data processing in very high speed in
systematic manner.

In Client Management System we use PHP and MySQL Database. This project
keeps the records of clients. Client Management System has two module i.e. admin
and client.
Admin Module
1. Dashboard: In this section, admin can briefly view the total services, total
clients, total today's sales, total yesterday's sales, total seven's sales and total
sales.
2. Services: In this section, admin can manage services (Add/Update).
3. Add Clients: In this section, admin can add new clients
4. Clients List: In this section, admin can update the client details and add services
which are provided by admin.
5. Invoices: In this section, admin can view invoices of the client and also take
print of invoice.
6. Reports: In this section admin can view the clients details and check the sales
reports (month wise/year wise) in a particular period.
7. Search Invoice: In this section, admin can search clients invoice with the help
of his/her invoice number.
Admin can also update his profile, change the password and recover the password.
Client Module
1. Dashboard: It is a welcome page for a client.
2. Invoices: In this section, client can view invoices of the client and also take
print of invoice.
3. Search Invoice: In this section, client can search his/her invoice with the help of
invoice number.
Client can also update his/her profile, change the password and recover the
password.
Objective

The main objective of the Client Management System project is to have a fully
automated Client Management System. This system will enable to draw the details
of the client. This Client Management System will definitely reduce the time,
energy and money wasted in manually searching the details of the clients. With the
help of this software, all the services and clients can be properly channelized.

Existing System

The present scenario offers manual data entry. A lot of time is wasted in creating
the reports as well as maintaining them. In case, if any query arises to get the
information about the client, the whole report is re-typed or xeroxed. This seriously
affects the authentication of the system. This Client Management System is totally
outdated and involves high risk of ambiguity and redundancy.

Proposed System

The proposed Client Management System is to have everything completely


automated and computerized. The software is very easy to use and manage even
for a non technical person. The redundancy and ambiguity will be removed by
assigning every client a unique number (i.e Account Id).
Requirement Specification
Hardware Configuration :

Client Side:
AMfgdfRA RAM 512 MB

Hard disk 10 GB

Processor 1.0 GHz

Server side:
RAM 1 GB

Hard disk 20 GB

Processor 2.0 GHz


Software Requirement:

Client Side:

Google Chrome or any compatible


Web Browser browser
Operating System
Windows or any equivalent OS

Server Side:

Web Server APACHE

Server side Language PHP5.6 or above version

Database Server MYSQL

Google Chrome or any compatible


Web Browser browser

Operating System Windows or any equivalent OS

APACHE
The Apache HTTP Server Project is an effort to develop and maintain an open-
source HTTP server for modern operating systems including UNIX and Windows.
The goal of this project is to provide a secure, efficient and extensible server that
provides HTTP services in sync with the current HTTP standards.
The Apache HTTP Server ("httpd") was launched in 1995 and it has been the most
popular web server on the Internet since April 1996. It has celebrated its 20th
birthday as a project in February 2015.

PHP
• PHP stands for PHP: Hypertext Preprocessor.

• PHP is a server-side scripting language, like


ASP.
• PHP scripts are executed on the server.
• PHP supports many databases (MYSQL, Informix, Oracle, Sybase,
Solid, Generic ODBC, etc.).

• PHP is an open source software .


• PHP is free to download and use.

MYSQL
• MYSQL is a database server

• MYSQL is ideal for both small and large


applications
• MYSQL supports standard SQL
• MYSQL compiles on a number of platforms
• MYSQL is free to download and use
How to access MySQL: http://localhost/phpmyadmin
Analysis and Design
Analysis:
The present scenario offers manual data entry. A lot of time is wasted in creating
the reports as well as maintaining them. In case, if any query arises to get the
information about the client, the whole report is re-typed or Xeroxed. This
seriously affects the authentication of the system. This Client Management System
is totally outdated and involves high risk of ambiguity and redundancy.
Disadvantage of present system:
• Not user friendly: The present system not user friendly because data is not
stored in structure and proper format.
• Manual Control: All report calculation is done manually so there is a
chance of error.
• Lots of paper work: Visitors maintain in the register so lots of paper
require storing details.
• Time consuming

Design Introduction:
Design is the first step in the development phase for any techniques and principles
for the purpose of defining a device, a process or system in sufficient detail to
permit its physical realization.
Once the software requirements have been analyzed and specified the software
design involves three technical activities - design, coding, implementation and
testing that are required to build and verify the software.
The design activities are of main importance in this phase, because in this activity,
decisions ultimately affecting the success of the software implementation and its
ease of maintenance are made. These decisions have the final bearing upon
reliability and maintainability of the system. Design is the only way to accurately
translate the customer’s requirements into finished software or a system.
Design is the place where quality is fostered in development. Software design is a
process through which requirements are translated into a representation of
software. Software design is conducted in two steps. Preliminary design is
concerned with the transformation of requirements into data
UML Diagrams:
Actor:
A coherent set of roles that users of use cases play when interacting with the
use `cases.

Use case: A description of sequence of actions, including variants, that a system


performs that yields an observable result of value of an actor.

UML stands for Unified Modeling Language. UML is a language for specifying,
visualizing and documenting the system. This is the step while developing any
product after analysis. The goal from this is to produce a model of the entities
involved in the project which later need to be built. The representation of the
entities that are to be used in the product being developed need to be designed.
USECASE DIAGRAMS:
Use case diagrams model behavior within a system and helps the developers
understand of what the user require. The stick man represents what’s called an
actor.
Use case diagram can be useful for getting an overall view of the system and
clarifying who can do and more importantly what they can’t do.
Use case diagram consists of use cases and actors and shows the interaction
between the use case and actors.
• The purpose is to show the interactions between the use case and actor.
• To represent the system requirements from user’s perspective.
• An actor could be the end-user of the system or an external system.
USECASE DIAGRAM: A Use case is a description of set of sequence of actions.
Graphically it is rendered as an ellipse with solid line including only its name. Use
case diagram is a behavioral diagram that shows a set of use cases and actors and
their relationship. It is an association between the use cases and actors. An actor
represents a real-world object. Primary Actor – Sender, Secondary Actor
Receiver.

Use Case Diagrams:


Admin Dashboard

Add Services
Manage Services

(Update Details)

Add Clients

Clients List

(Update and Assign Services

Invoice

Generate Reports

Search Invoice

Update Profile

Change Password

Password Recovery
Client
Dashboard

Invoice

Search Invoice

Update Profile

Change Password

Password Recovery

Class Diagram:
A description of set of objects that share the same attributes operations,
relationships, and semantics
ER Diagram:
The Entity-Relationship (ER) model was originally proposed by Peter in 1976
[Chen76] as a way to unify the network and relational database views. Simply
stated the ER model is a conceptual data model that views the real world as entities
and relationships. A basic component of the model is the Entity-Relationship
diagram which is used to visually represent data objects. Since Chen wrote his
paper the model has been extended and today it is commonly used for database
design for the database designer, the utility of the ER model is:
• It maps well to the relational model. The constructs used in the ER model
can easily be transformed into relational tables.
• It is simple and easy to understand with a minimum of training. Therefore,
the model can be used by the database designer to communicate the design
to the end user.
• In addition, the model can be used as a design plan by the database
developer to implement a data model in specific database management
software.

ER Notation
There is no standard for representing data objects in ER diagrams. Each modeling
methodology uses its own notation. The original notation used by Chen is widely
used in academics texts and journals but rarely seen in either CASE tools or
publications by non-academics. Today, there are a number of notations used;
among the more common are Bachman, crow's foot, and IDEFIX.
All notational styles represent entities as rectangular boxes and relationships as
lines connecting boxes. Each style uses a special set of symbols to represent the
cardinality of a connection. The notation used in this document is from Martin. The
symbols used for the basic ER constructs are:
• Entities are represented by labeled rectangles. The label is the name of the
entity. Entity names should be singular nouns.
• Relationships are represented by a solid line connecting two entities. The
name of the relationship is written above the line. Relationship names should
be verbs
• Attributes, when included, are listed inside the entity rectangle. Attributes
which are identifiers are underlined. Attribute names should be singular
nouns.
• Cardinality of many is represented by a line ending in a crow's foot. If the
crow's foot is omitted, the cardinality is one.
Existence is represented by placing a circle or a perpendicular bar on the line.
Mandatory existence is shown by the bar (looks like a 1) next to the entity for an
instance is required. Optional existence is shown by placing a circle next to the
entity that is optional.

ER Diagram
MySQL Data Tables:
Admin Table :(Table name is admin)
This store admin personal and login details.

Client Table (Table name is tblclient)

Invoice Table: (Table name is tblinvoice)


This store the invoice detail
Service Table: (Table name is tblservices)

Implementation and System Testing


After all phase have been perfectly done, the system will be implemented to the
server and the system can be used.

System Testing

The goal of the system testing process was to determine all faults in our project .The
program was subjected to a set of test inputs and many explanations were made and based
on these explanations it will be decided whether the program behaves as expected or not.
Our Project went through two levels of testing
1. Unit testing
2. Integration testing

UNIT TESTING
Unit testing is commenced when a unit has been created and effectively
reviewed .In order to test a single module we need to provide a complete
environment i.e. besides the section we would require
• The procedures belonging to other units that the unit under test calls

• Non local data structures that module accesses


• A procedure to call the functions of the unit under test with
appropriate parameters

1. Test for the admin module

• Testing admin login form-This form is used for log in of administrator of


the system. In this form we enter the username and password if both are
correct administration page will open otherwise if any of data is wrong it
will get redirected back to the login page and again ask the details

• Report Generation: admin can generate report from the main database.

INTEGRATION TESTING

In the Integration testing we test various combination of the project module by


providing the input.
The primary objective is to test the module interfaces in order to confirm that no
errors are occurring when one module invokes the other module.
CODING FOR ADMIN MODULE
ADMIN PROFILE
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
if (strlen($_SESSION['clientmsaid']==0)) {
header('location:logout.php');
} else{
if(isset($_POST['submit']))
{
$adminid=$_SESSION['clientmsaid'];
$AName=$_POST['adminname'];
$mobno=$_POST['mobilenumber'];
$email=$_POST['email'];
$sql="update tbladmin set
AdminName=:adminname,MobileNumber=:mobilenumber,Email=:email where
ID=:aid";
$query = $dbh->prepare($sql);
$query->bindParam(':adminname',$AName,PDO::PARAM_STR);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->bindParam(':mobilenumber',$mobno,PDO::PARAM_STR);
$query->bindParam(':aid',$adminid,PDO::PARAM_STR);
$query->execute();
echo '<script>alert("Your profile has been updated")</script>';
echo "<script>window.location.href='admin-profile.php'</script>";
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Client Management Sysytem|| Admin Profile</title>
<script type="application/x-javascript">addEventListener("load", function()
{ setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); }
</script>
<!-- Bootstrap Core CSS -->
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<!-- Custom CSS -->
<link href="css/style.css" rel='stylesheet' type='text/css' />
<!-- Graph CSS -->
<link href="css/font-awesome.css" rel="stylesheet">
<!--jQuery -->
<link href='//fonts.googleapis.com/css?
family=Roboto:700,500,300,100italic,100,400'rel='stylesheet' type='text/css'>
<!-- lined-icons -->
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<!-- //lined-icons -->
<scriptsrc="js/jquery-1.10.2.min.js"></script>
<!--clock init-->
<scriptsrc="js/css3clock.js"></script>
<!--Easy Pie Chart-->
<!--skycons-icons-->
<scriptsrc="js/skycons.js"></script>
<!--//skycons-icons-->
</head>
<body>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="inner-content">
<?phpinclude_once('includes/header.php');?>
<!--//outer-wp-->
<div class="outter-wp">
<!--/sub-heard-part-->
<div class="sub-heard-part">
<ol class="breadcrumb m-b-0">
<li><a href="dashboard.php">Home</a></li>
<li class="active">Profile</li>
</ol>
</div>
<!--/sub-heard-part-->
<!--/forms-->
<div class="forms-main">
<h2 class="inner-tittle">Admin Profile </h2>
<div class="graph-form">
<div class="form-body">
<form method="post">
<?php
$sql="SELECT * from tbladmin";
$query = $dbh ->prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $row)
{ ?>
<div class="form-group"><label for="exampleInputEmail1">Admin
Name</label><input type="text" name="adminname" value="<?php echo $row-
>AdminName;?>" class="form-control" required='true'></div>
<div class="form-group"><label for="exampleInputEmail1">User
Name</label><input type="text" name="username" value="<?php echo $row-
>UserName;?>" class="form-control" readonly=""></div>
<div class="form-group"><label for="exampleInputEmail1">Contact
Number</label><input type="text" name="mobilenumber" value="<?php echo $row-
>MobileNumber;?>" class="form-control" maxlength='10' required='true' pattern="[0-
9]+"></div>
<div class="form-group"><label for="exampleInputEmail1">Email
address</label><input type="email" name="email" value="<?php echo $row->Email;?
>" class="form-control" required='true'></div>
<div class="form-group"><label for="exampleInputPassword1">Admin
Registration Date</label><input type="text" name="" value="<?php echo $row-
>AdminRegdate;?>" readonly="" class="form-control"></div><?php $cnt=$cnt+1;}} ?>
<button type="submit" class="btnbtn-default" name="submit"
id="submit">Update</button></form>
</div>
</div>
</div>
</div>
<?phpinclude_once('includes/footer.php');?>
</div>
</div>
<?phpinclude_once('includes/sidebar.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;
$(".sidebar-icon").click(function() {
if (toggle)
{
$(".page-container").addClass("sidebar-
collapsed").removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else
{
$(".page-container").removeClass("sidebar-
collapsed").addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
}
toggle = !toggle;
});
</script>
<!--js -->
<scriptsrc="js/jquery.nicescroll.js"></script>
<scriptsrc="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<scriptsrc="js/bootstrap.min.js"></script>
</body>
</html>
<?php } ?>

FORGOT PASSWORD
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');

if(isset($_POST['submit']))
{
$email=$_POST['email'];
$mobile=$_POST['mobile'];
$newpassword=md5($_POST['newpassword']);
$sql ="SELECT Email FROM tbladmin WHERE Email=:email and
MobileNumber=:mobile";
$query= $dbh ->prepare($sql);
$query->bindParam(':email', $email, PDO::PARAM_STR);
$query->bindParam(':mobile', $mobile, PDO::PARAM_STR);
$query->execute();
$results = $query ->fetchAll(PDO::FETCH_OBJ);
if($query ->rowCount() > 0)
{
$con="update tbladmin set Password=:newpassword where Email=:email and
MobileNumber=:mobile";
$chngpwd1 = $dbh->prepare($con);
$chngpwd1->bindParam(':email', $email, PDO::PARAM_STR);
$chngpwd1->bindParam(':mobile', $mobile, PDO::PARAM_STR);
$chngpwd1->bindParam(':newpassword', $newpassword, PDO::PARAM_STR);
$chngpwd1->execute();
echo "<script>alert('Your Password succesfully changed');</script>";
}
else {
echo "<script>alert('Email id or Mobile no is invalid');</script>";
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Client Management System||Forgot Password Page</title>
<script type="application/x-javascript">addEventListener("load", function()
{ setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); }
</script>
<!-- Bootstrap Core CSS -->
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<!-- Custom CSS -->
<link href="css/style.css" rel='stylesheet' type='text/css' />
<!-- Graph CSS -->
<link href="css/font-awesome.css" rel="stylesheet">
<!--jQuery -->
<link href='//fonts.googleapis.com/css?
family=Roboto:700,500,300,100italic,100,400'rel='stylesheet' type='text/css'>
<!-- lined-icons -->
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<!-- //lined-icons -->
<scriptsrc="js/jquery-1.10.2.min.js"></script>
<!--clock init-->
<script type="text/javascript">
function valid()
{
if(document.chngpwd.newpassword.value!= document.chngpwd.confirmpassword.value)
{
alert("New Password and Confirm Password Field do not match !!");
document.chngpwd.confirmpassword.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<div class="error_page">

<div class="error-top">
<h2 class="inner-tittle page">CMS</h2>
<div class="login">
<div class="buttons login">
<h3 class="inner-tittle t-inner" style="color:
lightblue">Forgot Password</h3>
</div>
<form id="login" method="post" name="chngpwd"
onSubmit="return valid();">
<input type="text" class="text" placeholder="E-
mail Address" name="email" required="true">
<input type="text" class="text"
placeholder="Mobile Number" required="true" name="mobile" maxlength="10"
pattern="[0-9]+">
<input type="password" placeholder="New
Password" name="newpassword" required="true">
<input type="password" placeholder="Confirm
Password" name="confirmpassword" required="true">
<div class="submit"><input type="submit"
onclick="myFunction()" value="Reset" name="submit" ></div>
<div class="clearfix"></div>
<div class="new">
<p><a href="index.php">Already have an
account</a></p>
<div class="clearfix"></div>
</div>
</form>
</div>
</div
<!--//login-top-->
</div>
<!--//login-->
<!--footer section start-->
<div class="footer">
<?phpinclude_once('includes/footer.php');?>
</div>
<!--footer section end-->
<!--/404-->
<!--js -->
<scriptsrc="js/jquery.nicescroll.js"></script>
<scriptsrc="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<scriptsrc="js/bootstrap.min.js"></script>
</body>
</html>
CODING FOR CLIENT MODULE
CLIENT PROFILE
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
if (strlen($_SESSION['clientmsuid']==0)) {
header('location:logout.php');
} else{
if(isset($_POST['submit']))
{
$uid=$_SESSION['clientmsuid'];
$cname=$_POST['cname'];
$comname=$_POST['comname'];
$address=$_POST['address'];
$city=$_POST['city'];
$state=$_POST['state'];
$zcode=$_POST['zcode'];
$cellphnumber=$_POST['cellphnumber'];
$ophnumber=$_POST['ophnumber'];
$email=$_POST['email'];
$websiteadd=$_POST['websiteadd'];
$sql="update tblclient set
ContactName=:cname,CompanyName=:comname,Address=:address,City=:city,State=:st
ate,ZipCode=:zcode,Cellphnumber=:cellphnumber,Otherphnumber=:ophnumber,Email=:
email,WebsiteAddress=:websiteadd where ID=:uid";
$query = $dbh->prepare($sql);
$query->bindParam(':cname',$cname,PDO::PARAM_STR);
$query->bindParam(':comname',$comname,PDO::PARAM_STR);
$query->bindParam(':address',$address,PDO::PARAM_STR);
$query->bindParam(':city',$city,PDO::PARAM_STR);
$query->bindParam(':state',$state,PDO::PARAM_STR);
$query->bindParam(':zcode',$zcode,PDO::PARAM_STR);
$query->bindParam(':cellphnumber',$cellphnumber,PDO::PARAM_STR);
$query->bindParam(':ophnumber',$ophnumber,PDO::PARAM_STR);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->bindParam(':websiteadd',$websiteadd,PDO::PARAM_STR);
$query->bindParam(':uid',$uid,PDO::PARAM_STR);
$query->execute();
if($query ->rowCount() > 0)
{
echo '<script>alert("Your profile has been updated")</script>';
echo "<script>window.location.href ='client-profile.php'</script>";
}
else
{
echo '<script>alert("Something Went Wrong. Please try again")</script>';
}
}
?>
INVOICES
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
if (strlen($_SESSION['clientmsuid']==0)) {
header('location:logout.php');
} else{
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Client Management Sysytem || Invoice </title>
<script type="application/x-javascript">addEventListener("load", function()
{ setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); }
</script>
<!-- Bootstrap Core CSS -->
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<!-- Custom CSS -->
<link href="css/style.css" rel='stylesheet' type='text/css' />
<!-- Graph CSS -->
<link href="css/font-awesome.css" rel="stylesheet">
<!--jQuery -->
<link href='//fonts.googleapis.com/css?
family=Roboto:700,500,300,100italic,100,400'rel='stylesheet' type='text/css'>
<!-- lined-icons -->
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<!-- /js -->
<scriptsrc="js/jquery-1.10.2.min.js"></script>
<!-- //js-->
</head>
<body>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="inner-content">
<!-- header-starts -->
<?phpinclude_once('includes/header.php');?>
<!-- //header-ends -->
<!--outter-wp-->
<div class="outter-wp">
<!--sub-heard-part-->
<div class="sub-heard-part">
<ol class="breadcrumb m-b-0">
<li><a
href="dashboard.php">Home</a></li>
<li class="active">Invoice</li>
</ol>
</div>
<!--//sub-heard-part-->
<div class="graph-visual tables-main">

<h3 class="inner-tittle two">Invoice </h3>


<div class="graph">
<div class="tables">
<table class="table"
border="1"><thead><tr><th>#</th>
<th>Invoice Id</th>
<th>Company
Name</th>
<th>Contact
Name</th>
<th>Invoice
Date</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php

$uid=$_SESSION['clientmsuid'];
$sql="select distinct
tblclient.ContactName,tblclient.CompanyName,tblinvoice.BillingId,tblinvoice.PostingDa
te from tblclient
jointblinvoice on tblclient.ID=tblinvoice.Userid where tblinvoice.Userid=:uid";
$query = $dbh ->prepare($sql);
$query->bindParam(':uid',$uid,PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);

$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $row)
{ ?>
<tr class="active">
<th scope="row"><?
php echo htmlentities($cnt);?></th>
<td><?php echo
htmlentities($row->BillingId);?></td>
<td><?php echo
htmlentities($row->CompanyName);?></td>
<td><?php echo
htmlentities($row->ContactName);?></td>
<td><?php echo
htmlentities($row->PostingDate);?></td>

<td><a href="view-
invoice.php?invoiceid=<?php echo $row->BillingId;?>">View</a></td>
</tr>
<?php
$cnt=$cnt+1;}} ?>
</tbody></table>
</div>
</div>
</div>
<!--//graph-visual-->
</div>
<!--//outer-wp-->
<?phpinclude_once('includes/footer.php');?>
</div>
</div>
<!--//content-inner-->
<!--/sidebar-menu-->
<?phpinclude_once('includes/sidebar.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;
$(".sidebar-icon").click(function() {
if (toggle)
{
$(".page-container").addClass("sidebar-
collapsed").removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else
{
$(".page-container").removeClass("sidebar-
collapsed").addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
}
toggle = !toggle;
});
</script>
<!--js -->
<scriptsrc="js/jquery.nicescroll.js"></script>
<scriptsrc="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<scriptsrc="js/bootstrap.min.js"></script>
</body>
</html>
<?php } ?

VIEW INVOICES
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
if (strlen($_SESSION['clientmsuid']==0)) {
header('location:logout.php');
} else{
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Client Management Sysytem || View Invoice </title>
<script type="application/x-javascript">addEventListener("load", function()
{ setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); }
</script>
<!-- Bootstrap Core CSS -->
<link href="css/bootstrap.min.css" rel='stylesheet' type='text/css' />
<!-- Custom CSS -->
<link href="css/style.css" rel='stylesheet' type='text/css' />
<!-- Graph CSS -->
<link href="css/font-awesome.css" rel="stylesheet">
<!--jQuery -->
<link href='//fonts.googleapis.com/css?
family=Roboto:700,500,300,100italic,100,400'rel='stylesheet' type='text/css'>
<!-- lined-icons -->
<link rel="stylesheet" href="css/icon-font.min.css" type='text/css' />
<!-- /js -->
<scriptsrc="js/jquery-1.10.2.min.js"></script>
<!-- //js-->
</head>
<body>
<div class="page-container">
<!--/content-inner-->
<div class="left-content">
<div class="inner-content">
<!-- header-starts -->
<?phpinclude_once('includes/header.php');?>
<!-- //header-ends -->
<!--outter-wp-->
<div class="outter-wp">
<!--sub-heard-part-->
<div class="sub-heard-part">
<ol class="breadcrumb m-b-0">
<li><a
href="dashboard.php">Home</a></li>
<li class="active">View Invoice</li>
</ol>
</div>
<!--//sub-heard-part-->
<div class="graph-visual tables-main" id="exampl">

<h3 class="inner-tittle two">Invoice Details </h3>


<?php
$invid=intval($_GET['invoiceid']);
$sql="select distinct
tblclient.ContactName,tblclient.CompanyName,tblclient.Workphnumber,tblclient.Email,tbl
client.AccountID,tblinvoice.BillingId,tblinvoice.PostingDate from tblclient
jointblinvoice on tblclient.ID=tblinvoice.Userid where tblinvoice.BillingId=:invid";
$query = $dbh ->prepare($sql);
$query->bindParam(':invid',$invid,PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $row)
{ ?>
<div class="graph">
<div class="tables">
<h4>Invoice #<?php echo $invid;?
></h4>

<table class="table table-bordered" width="100%" border="1">


<tr>
<thcolspan="8">Client Details</th>
</tr>
<tr>
<th>Comapny Name</th>
<td><?php echo htmlentities($row-
>CompanyName);?></td>
<th>Contact Name</th>
<td><?php echo htmlentities($row-
>ContactName);?></td>
<th>Contact no.</th>
<td><?php echo htmlentities($row-
>Workphnumber);?></td>
<th>Email </th>
<td><?php echo htmlentities($row-
>Email);?></td>
</tr>
<tr>
<th>Account ID</th>
<td><?php echo htmlentities($row-
>AccountID);?></td>
<th>Invoice Date</th>
<td colspan="6"><?php echo
htmlentities($row->PostingDate);?></td>
</tr>
<?php $cnt=$cnt+1;}} ?>
</table>
<table class="table table-bordered" width="100%" border="1">
<tr>
<thcolspan="3">Services Details</th>
</tr>
<tr>
<th>#</th>
<th>Service</th>
<th>Cost</th>
</tr>
<?php
$ret="select tblservices.ServiceName,tblservices.ServicePrice
from tblinvoice
jointblservices on tblservices.ID=tblinvoice.ServiceId
wheretblinvoice.BillingId=:invid";
$query1 = $dbh ->prepare($ret);
$query1->bindParam(':invid',$invid,PDO::PARAM_STR);
$query1->execute();
$results=$query1->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query1->rowCount() > 0)
{
foreach($results as $row1)
{ ?>
<tr>
<th><?php echo $cnt;?></th>
<td><?php echo $row1->ServiceName?></td>
<td><?php echo "$".$subtotal=$row1->ServicePrice?></td>
</tr>
<?php $cnt=$cnt+1;}
$gtotal+=$subtotal;
} ?>
<tr>
<thcolspan="2" style="text-align:center">Grand Total</th>
<th><?php echo "$".$gtotal?></th>
</tr>
</table>
<p style="margin-top:1%" align="center">
<i class="fafa-print fa-2x" style="cursor: pointer;" OnClick="CallPrint(this.value)" ></i>
</p>
</div>

</div>
</div>
<!--//graph-visual-->
</div>
<!--//outer-wp-->
<?phpinclude_once('includes/footer.php');?>
</div>
</div>
<!--//content-inner-->
<!--/sidebar-menu-->
<?phpinclude_once('includes/sidebar.php');?>
<div class="clearfix"></div>
</div>
<script>
var toggle = true;

$(".sidebar-icon").click(function() {
if (toggle)
{
$(".page-container").addClass("sidebar-
collapsed").removeClass("sidebar-collapsed-back");
$("#menu span").css({"position":"absolute"});
}
else
{
$(".page-container").removeClass("sidebar-
collapsed").addClass("sidebar-collapsed-back");
setTimeout(function() {
$("#menu span").css({"position":"relative"});
}, 400);
}
toggle = !toggle;
});
</script>
<!--js -->
<scriptsrc="js/jquery.nicescroll.js"></script>
<scriptsrc="js/scripts.js"></script>
<!-- Bootstrap Core JavaScript -->
<scriptsrc="js/bootstrap.min.js"></script>
<script>
functionCallPrint(strid) {
varprtContent = document.getElementById("exampl");
varWinPrint = window.open('', '',
'left=0,top=0,width=800,height=900,toolbar=0,scrollbars=0,status=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
}
</script>
</body>
</html>
<?php } ?>
EVALUATION
Project URL: http://localhost/vpms
Home Page
Admin Login Page

Dashboard
Profile

Change Password
Add Services

Manage Services
Update Services
Add Clients
Client List

Assign Services
Edit Client Detail
Invoice Detail

Invoice Print
Between Dates Report
Sales Report
Search Invoice

Forgot Password
Client Login page

Dashboard
Client Profile
Invoice

Invoice Detail
Search Invoice

Forgot Password
CONCLUSION:
This Application provides a computerized and automated version of Client
Management System which will benefit the companies and their clients.

It makes entire process online and can generate reports. It has a facility of client’s
login where clients can view their invoice details.

The Application was designed in such a way that future changes can be
done easily. The following conclusions can be deduced from the development of
the project.

• Automation of the entire system improves the productivity.


• It provides a friendly graphical user interface which proves to be
better when compared to the existing system.
• It gives appropriate access to the authorized users depending on their
permissions.
• It effectively overcomes the delay in communications.
• Updating of information becomes so easier.
• System security, data security and reliability are the striking features.
• The System has adequate scope for modification in future if it is
necessary.

References
For PHP
• https://www.w3schools.com/php/default.asp
• https://www.sitepoint.com/php/
• https://www.php.net/
For MySQL
• https://www.mysql.com/
• http://www.mysqltutorial.org

For XAMPP
• https://www.apachefriends.org/download.html

You might also like