Doctor Appointment1
Doctor Appointment1
Project Report
Submitted By,
S. SAHAYA ANUSHA(20193221506235)
M. SAHAYA MISBA(20193221506236)
V. SAHAYA SOFIA(20193221506237)
1
ST. JOHN’S COLLEGE OF ARTS & SCIENCE
(Affiliated to Manonmaniam Sundaranar University, Tirunelveli)
AMMANDIVILAI-629702
This Project is submitted for the Viva-Voce held at St. Johns College Of Arts
And Science, Ammandivillai on ……………....
2
DECLARATION
3
ACKNOWLEDGEMENT
With immense pleasure, I praise and thank almighty for enabling me to complete
this project in time to his mighty grace and blessing
We also express our gratitude and sincere thanks to all the teaching and non-
teaching staff of Computer Science.
Finally, yet importantly, we would like to express our heartfelt thanks to our
beloved parents and friends for their help and wishes for the successful
completion of this project report.
S.SAHAYA ANUSHA(20193221506235)
M.SAHAYA MISBA(20193221506236)
V.SAHAYA SOFIA(20193221506237)
4
CONTENTS
TITLE PG NO
1) INTRODUCTION 7
2) SYSTEM SPECIFICATION 9
3) SYSTEM ANALYSIS 11
4) LANGUAGE DESCRIPTION 13
5) PROJECT DESCRIPTION 18
6) SYSTEM DESIGN 22
7) DATABASE DESIGN 29
8) SOURCE CODE 35
9) SCREEN SHOT 53
11) CONCLUSION 70
13) BIBLIOGRAPHY 74
5
ABSTRACT
The project entitled “Doctor Appointment System” was designed and developed
in PHP, MySQL and Bootstrap. The purpose of the study is to implement an
online database system that caters the doctor appointment scheduling, reservation
and records management of consultation for a hospital or clinic. In this era of
pandemic, medical clinic and hospital imposed strict guidelines on the number of
person who can enter their facility. Consultations to doctors are also very limited
and can facilitate a limited number of patients. The online system for appointment
and consultation is one of the solutions that can be used in order to give the people
a way on how to contact their doctors and reserve an appointment for
consultation. The implementation of the said project will help hospital and clinic
provide better client management while ease and comfort is the advantage on the
patient end. The analysis and implementation result shows that the project is
feasible and implementation is highly recommended by the researchers. This
software is supported to eliminate and in some cases reduce the hardships faced
by this existing system. Moreover this system is designed for the particular need
of the company to carry out operations in a smooth and effective manner. The
application is reduced as much as possible to avoid errors while entering the data.
It also provides error message while entering invalid data. No formal knowledge
is needed for the user to use this system. Thus by this all it proves it is user-
friendly. Doctor Appointment System , as described above, can lead to error free,
secure, reliable and fast management system. It can assist the user to concentrate
on their other activities rather to concentrate on the record keeping. Thus it will
help organization in better utilization of resources.
6
INTRODUCTION
7
1.INTRODUCTION
This project is developed a PHP based web page name “Doctor Appointment
System” that covers all the aspects of making appointment of doctors. It enables
healthcare providers to improve operational effectiveness, reduce costs, reduce
medical errors, reduce time consumption and enhance delivery of quality of
care. This system help reduce the problems occur when using the manual
system and helps patients to skip endless queues. The important thing is it will
become easier for the data record and retrieval.
This software also stores all the patient details, patient profile and etc. This
system enables doctors and clinic assistant to manage patient records and
appointments. User can enter their details and they can select doctors to make
appointments. Other than that, the system is user friendly and it can help the
clinic to manage their appointments. The system helps to avoid making
duplicate appointments. Users can view available doctor and his timings and
can make appointments according to it. The system also has an administration
can add/remove patients, doctors and departments and search for appointments.
The system also allows doctors to log in. Doctor can edit their profile and view
their upcoming appointments, patient etc. The database of the doctor
appointment system can hold up to more individual’s information. The
appointment process can be done for multiple user at a time. The targeted to
groups of appointment management system are the doctors and patient of an
hospital. Online systems make patient management easier and more efficient. In
online scheduling systems for appointments also have management of patient
health records as part of the package. The organization can create a single point
from which to save, update, manage and analyze patient information. Our
system will provides best result and save their valuable time too.
8
SYSTEM SPECIFICATION
9
2. SYSTEM SPECIFICATION
HARDWARE SPECIFICATION
• Speed: 2.42GHZ
• RAM: 8GB
SOFTWARE SPECIFICATION
• Web browser: Mozilla Firefox, Google Chrome, Apple Safari or any Web
based browser.
10
SYSTEM ANALYSIS
11
3. SYSTEM ANALYSIS
EXISTING SYSTEM
Presently people are making appointments manually. This is a time consuming
process, patient has to physically go to the clinic in order to make appointment.
Some clinicsprovide the opportunity to make appointment by placing phone call.
But in this case, people are often left unattended.
• Time consuming.
• Lack of efficiency
• Needs to be physically present at the clinic
• Can’t make appointment in advance for long intervals
PROPOSED SYSTEM
The use of proposed system will avoid the problem of the existing system and w
also get a new system for managing information under the Doctor appointment
system. The proposed system offers:
12
LANGUAGE DESCRIPTION
13
4. LANGUAGE DESCRIPTION
14
companies as it helps control the costs of web development. One of the major
benefits of PHP is that it is platform independent, meaning it can be used on Mac
OS, Windows, Linux and supports most web browsers. It also supports all the
major web servers, making it easy to deploy on different systems and platforms
at minimal additional cost. As a veteran scripting language that is widely used,
PHP now has a large and loyal community base to support it. There are tons of
tutorials, FAQs, and tips to help new PHP developers and to continue pushing the
boundaries of what the language can achieve through regular updates.
Two things that every organization wants their website or application to be are
fast and secure. PHP uses its own memory and competes well on speed, especially
when using the new version, there have been questions in the past about PHP
security, though it is important to note that it is not inherently more or less secure
than other programming languages. One important benefit is that because of its
widespread use and community support there are now many tools, frameworks
and best practices to help fix vulnerabilities and protect against
cyberattacks. PHP makes it easy to connect securely with almost any kind of
database. This gives developers more freedom when choosing which database is
best suited for the application being built. One major benefit of being around for
a quarter century is that PHP code has been put to the test in all kinds of real-life
environments. The main bugs have been found and fixed, making the language
more stable and trusted by developers. Moreover, many frameworks and tools
have been built over time, helping to make PHP web development more secure,
efficient and effective. OK, this isn’t really a benefit of using PHP in itself, but
when so many existing websites have been written with PHP it becomes an
important consideration. Put simply, it is usually easier to make updates in the
same language rather than try to rewrite everything in another. This helps PHP
endure even when some younger developers may have a personal preference for
another language.
15
The Hyper Text Markup Language (HTML) is the standard markup language for
documents designed to be displayed in a web browser. It can be assisted by
technologies such as Cascading Style Sheet (CSS) and scripting language such
as JavaScript. Web browser receive HTML documents from a Web server or
from local storage and render the documents into multimedia web pages. HTML
describes the structure of a web page semantically and originally included cues
for the appearance of the document.
16
JavaScript (JS), is a programming language that is one of the core technologies
of the World Wide Web, alongside HTML and CSS. Over 97% of websites use
JavaScript on the client side for web page behavior, often incorporating third-
party libraries. All major web browsers have a dedicated JavaScript engine to
execute the code on users' devices. JavaScript is a high-level, often just-in-time
compiled language that conforms to the ECMAScript standard. It has dynamic
typing, prototype-based object-orientation, and first-class functions. It is multi-
paradigm, supporting event-driven, functional, and imperative programming
styles. It has application programming interfaces (APIs) for working with text,
dates, regular expressions, standard data structures, and the Document Object
Model (DOM).
The ECMAScript standard does not include any input/output (I/O), such
as networking, storage, or graphics facilities. In practice, the web browser or
other runtime system provides JavaScript APIs for I/O. JavaScript engines were
originally used only in web browsers, but are now core components of
some servers and a variety of applications. The most popular runtime system for
this usage is Node.js. Although Java and JavaScript are similar in name, syntax,
and respective standard libraries, the two languages are distinct and differ greatly
in design.
17
PROJECT DESCRIPTION
18
5. PROJECT DESCRIPTION
The project for developed Doctor Appointment System is for solve the purpose
for disallow the problems, which are not in the current system. This Doctor
Appointment System is assume to remove the hardships, which will be available
in the current appointment system. But by using electronics equipment like
computer and by using this devices we can stored valuable information which
we can stored under this appointment system. This Online Doctor Appointment
system is show as the fast, error free and secured system with fast management
of data. With the help of this Doctor Appointment System which show the good
for use of resources and stored records in central location of database. This
system we can also called Online Patient Scheduling or also known as Online
Appointment booking system and it has optimized phase of medical services to
increase patient healthcare experience in hospitals or in clinics. This system has
been build by motivating to see the increasing popularity of online appointment
booking system.we have add doctor scheduling model also which has been takes
into accounts when patient would like to seen this feature. Now a days it is
rational to established the issue that a very less hospitals has provide online
appointment booking system. So solve this all problem we have build this
Doctor Online Appointment booking system.
19
MODULE DESCRIPTION
MAIN MODULES:
• Admin Module
• User Module
• Login Module
• Signup Module
ADMIN MODULE:
• Add Doctor:
Administrator can add a doctor by filling out required fields.
• Doctor registration
Administrator can add doctor and assign them duty times and schedules.
• Update Doctor profile:
Administrator can update a doctor profile.
• Remove a User:
Administrator can remove users profile.
• Add a new user:
Administrator can add a new user by filling out requires fields
USER MODULE:
• User Signup - Signup the user by the details that include Patient First
Name, Last Name, IC Number, Password, Email, DOB, Gender.
• Profile - User can edit and update their profile including their password.
• Doctor available - User can view the doctor available time to make an
appointment
20
• Make appointment - User view select the corresponding doctors scheduled
time and they need fill relevant list like appid, patinetic, schedulesid,
appsymptom, appcomment, to make an appointment
LOGIN MODULE:
Doctor and admin can login into the web page
SIGN UP MODULE:
User can register to get a appointment
SUB MODULES:
• Dashboard of admin
• Doctor schedule module
• Patient list module
21
SYSTEM DESIGN
22
6. SYSTEM DESIGN
Click to
Login
Add
Sign up patient
info
Admin Patient
Already
have an
account
Doctor
login
Login
Schedule
the time
Make
appoint
ment
Doctor
profile
Get
Update acknowl
the edgemen
profile t
23
DATA FLOW DIAGRAM
A data flow diagram can also be used for the visualization of Data
Processing. It is common practice for a designer to draw a context-level DFD first
which shows the interaction between the system and outside entities. This
context-level DFD is then "exploded" to show more detail of the system being
modeled.
A DFD represents flow of data through a system. Data flow diagrams are
commonly used during problem analysis. It views a system as a function that
transforms the input into desired output. A DFD shows movement of data through
the different transformations or processes in the system.
Dataflow diagrams can be used to provide the end user with a physical idea
of where the data they input ultimately has an effect upon the structure of the
whole system from order to dispatch to restock how any system is developed can
be determined through a dataflow diagram.
Function
File/Database
Input/Output
Flow
24
Login
Sign Up
Already have an
account
no yes
Get information
Login
from user
Save user
informati
on
Sign up
25
Doctor details:
Admin
Login
Doctor Doctor
dashboard schedule Patient list
Doctor profile
Update the
profile
Logout
26
Patient details:
Click to login
Already have an
Sign up account
Make
Add patient info appointment
Get an
acknowledgement
database
Input design
27
• The input is acceptable to and understand by the use staff
Several activities done in the input stages are:
• Data recording – collection of data as its sources
• Data transcription – transcription of data to an input form
• Data conversion – conversion of the input data to a computer acceptable
medium
• Data verification - checking the conversion
• Data control – checking the accuracy and controlling the flow of the data
to the computer
• Data transmission -transmitting or transporting, the data to the computer
• Data validation & correction – checking & correcting the errors the input
data by program when it enter the computer system.
OUTPUT DESIGN
28
DATABASE DESIGN
29
7. DATABASE DESIGN
MySQL is a fast, easy-to-use RDBMS being used for many small and big
businesses. MySQL is developed, marketed and supported by MySQL AB, which
is a Swedish company. MySQL is becoming so popular because of many good
reasons –
• MySQL is released under an open-source license. So, you have nothing to pay
to use it.
• MySQL is a very powerful program in its own right. It handles a large subset of
the functionality of the most expensive and powerful database packages.
• MySQL works on many operating systems and with many languages including
PYTHON, PHP, PERL, C, C++, JAVA, etc.
• MySQL works very quickly and works well even with large data sets.
Here is the list of the important MySQL commands, which you will use
time to time to work with MySQL database –
• USE Database name − this will be used to select a database in the MySQLwork
area.
30
• SHOW DATABASES − Lists out the databases that are accessible by the
MySQL DBMS.
• SHOW TABLES − Shows the tables in the database once a database has been
selected with the use command.
• SHOW COLUMNS FROM table name: Shows the attributes, types of attributes,
key information, whether NULL is permitted, defaults, and other information for
a table.
• SHOW INDEX FROM table name – Presents the details of all indexes on the
table, including the PRIMARY KEY.
• SHOW TABLE STATUS LIKE table name – Reports details of the MySQL
DBMS performance and statistics.
MySQL is offered under two different editions: the open source MySQL
Community Server[77] and the proprietary Enterprise Server. MySQL Enterprise
Server is differentiated by a series of proprietary extensions which install as
server plugins, but otherwise shares the version numbering system and is built
from the same code base. Oracle MySQL offers a high availability solution with
a mix of tools including the MySQL router and the MySQL shell. They are based
on Group Replication, open-source tools. MariaDB offers a similar offer in terms
of products
Relational models have remained popular for several reasons. They empower
users with intuitive, declarative programming languages — essentially telling
the database what result is wanted in language akin to, or at least
comprehensible as, written English, instead of meticulously coding up each step
of the procedure leading to that result. This moves a lot of the work into the
RDBMS and SQL engines, better enforcing logical rules and saving valuable
resources and manpower.
31
TABLE NAME: Doctor
DESCRIPTION: To create a doctor’s profile.
opDoctor Varchar(45)
Password Varchar(45)
doctorId Varchar(45)
doctorFistName Varchar(45)
doctorLastName Varchar(45)
doctorAddress Varchar(45)
doctorPhone Varchar(45)
doctorEmail Varchar(45)
doctorDOB Varchar(45)
32
TABLE NAME: Patient
idPatient Varchar(45)
Password Varchar(45)
patientFirstName Varchar(45)
patientLastName Varchar(45)
patientMaritialStatus Varchar(45)
patientDOB Varchar(45)
patientGender Varchar(45)
patientAddress Varchar(45)
patientPhone Varchar(45)
patientEmail Varchar(45)
33
TABLE NAME: Doctorschedule
scheduledId Varchar(45)
scheduledDate Varchar(45)
scheduleDay Varchar(45)
startTime Varchar(45)
endTime Varchar(45)
bookAvail Varchar(45)
appId Varchar(45)
patientIc Varchar(45)
scheduledId Varchar(45)
appSymptom Varchar(45)
appCommend Varchar(45)
Status Varchar(45)
34
SOURCE CODE
35
8. SOURCE CODE
addShedule.php
<?php
session_start();
include_once '../assets/conn/dbconnect.php';
// include_once 'connection/server.php';
if(!isset($_SESSION['doctorSession']))
{
header("Location: ../index.php");
}
$usersession = $_SESSION['doctorSession'];
$res=mysqli_query($con,"SELECT * FROM doctor WHERE
doctorId=".$usersession);
$userRow=mysqli_fetch_array($res,MYSQLI_ASSOC);
// insert
if (isset($_POST['submit'])) {
$date = mysqli_real_escape_string($con,$_POST['date']);
$scheduleday = mysqli_real_escape_string($con,$_POST['scheduleday']);
$starttime = mysqli_real_escape_string($con,$_POST['starttime']);
$endtime = mysqli_real_escape_string($con,$_POST['endtime']);
$bookavail = mysqli_real_escape_string($con,$_POST['bookavail']);
//INSERT
$query = " INSERT INTO doctorschedule ( scheduleDate, scheduleDay,
startTime, endTime, bookAvail)
VALUES ( '$date', '$scheduleday', '$starttime', '$endtime', '$bookavail' ) ";
36
?>
<script type="text/javascript">
alert('Added fail. Please try again.');
</script>
<?php
}
}
?>
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Welcome Dr <?php echo $userRow['doctorFirstName'];?> <?php
echo $userRow['doctorLastName'];?></title>
<!-- Bootstrap Core CSS -->
<!-- <link href="assets/css/bootstrap.css" rel="stylesheet"> -->
<link href="assets/css/material.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="assets/css/sb-admin.css" rel="stylesheet">
<!-- Custom Fonts -->
</head>
<body>
<div id="wrapper">
37
<a class="navbar-brand" href="doctordashboard.php">Welcome Dr
<?php echo $userRow['doctorFirstName'];?> <?php echo
$userRow['doctorLastName'];?></a>
</div>
<!-- Top Menu Items -->
<ul class="nav navbar-right top-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown"><i class="fa fa-user"></i> <?php echo
$userRow['doctorFirstName']; ?> <?php echo $userRow['doctorLastName'];
?><b class="caret"></b></a>
<ul class="dropdown-menu">
<li>
<a href="doctorprofile.php"><i class="fa fa-fw fa-
user"></i> Profile</a>
</li>
<li class="divider"></li>
<li>
<a href="logout.php?logout"><i class="fa fa-fw fa-power-
off"></i> Log Out</a>
</li>
</ul>
</li>
</ul>
<!-- Sidebar Menu Items - These collapse to the responsive navigation
menu on small screens -->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav side-nav">
<li>
<a href="doctordashboard.php"><i class="fa fa-fw fa-
dashboard"></i> Dashboard</a>
</li>
<li class="active">
<a href="addschedule.php"><i class="fa fa-fw fa-table"></i>
Doctor Schedule</a>
</li>
<li>
<a href="patientlist.php"><i class="fa fa-fw fa-edit"></i>
Patient List</a>
</li>
38
</ul>
</div>
<!-- /.navbar-collapse -->
</nav>
<!-- navigation end -->
<div id="page-wrapper">
<div class="container-fluid">
<div class="panel-body">
<!-- panel content start -->
<div class="bootstrap-iso">
<div class="container-fluid">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<form class="form-horizontal" method="post">
<div class="form-group form-group-lg">
<label class="control-label col-sm-2 requiredField"
for="date">
39
Date
<span class="asteriskField">
*
</span>
</label>
<div class="col-sm-10">
<div class="input-group">
<div class="input-group-addon">
<i class="fa fa-calendar">
</i>
</div>
<input class="form-control" id="date" name="date"
type="text" required/>
</div>
</div>
</div>
<div class="form-group form-group-lg">
<label class="control-label col-sm-2 requiredField"
for="scheduleday">
Day
<span class="asteriskField">
*
</span>
</label>
<div class="col-sm-10">
<select class="select form-control" id="scheduleday"
name="scheduleday" required>
<option value="Monday">
Monday
</option>
<option value="Tuesday">
Tuesday
</option>
<option value="Wednesday">
Wednesday
</option>
<option value="Thursday">
Thursday
</option>
<option value="Friday">
Friday
</option>
<option value="Saturday">
40
Saturday
</option>
<option value="Sunday">
Sunday
</option>
</select>
</div>
</div>
<div class="form-group form-group-lg">
<label class="control-label col-sm-2 requiredField"
for="starttime">
Start Time
<span class="asteriskField">
*
</span>
</label>
<div class="col-sm-10">
<div class="input-group clockpicker" data-align="top"
data-autoclose="true">
<div class="input-group-addon">
<i class="fa fa-clock-o">
</i>
</div>
<input class="form-control" id="starttime"
name="starttime" type="text" required/>
</div>
</div>
</div>
<div class="form-group form-group-lg">
<label class="control-label col-sm-2 requiredField"
for="endtime">
End Time
<span class="asteriskField">
*
</span>
</label>
<div class="col-sm-10">
<div class="input-group clockpicker" data-align="top"
data-autoclose="true">
<div class="input-group-addon">
<i class="fa fa-clock-o">
</i>
41
</div>
<input class="form-control" id="endtime"
name="endtime" type="text" required/>
</div>
</div>
</div>
<div class="form-group form-group-lg">
<label class="control-label col-sm-2 requiredField"
for="bookavail">
Availabilty
<span class="asteriskField">
*
</span>
</label>
<div class="col-sm-10">
<select class="select form-control" id="bookavail"
name="bookavail" required>
<option value="available">
available
</option>
<option value="notavail">
notavail
</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<button class="btn btn-primary " name="submit"
type="submit">
Submit
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- panel content end -->
<!-- panel end -->
</div>
</div>
42
<!-- panel start -->
<div class="panel-body">
<!-- panel content start -->
<!-- Table -->
<table class="table table-hover table-bordered">
<thead>
<tr class="filters">
<th><input type="text" class="form-control"
placeholder="scheduleId" disabled></th>
<th><input type="text" class="form-control"
placeholder="scheduleDate" disabled></th>
<th><input type="text" class="form-control"
placeholder="scheduleDay" disabled></th>
<th><input type="text" class="form-control"
placeholder="startTime." disabled></th>
<th><input type="text" class="form-control"
placeholder="endTime" disabled></th>
<th><input type="text" class="form-control"
placeholder="bookAvail" disabled></th>
</tr>
</thead>
<?php
$result=mysqli_query($con,"SELECT * FROM
doctorschedule");
while ($doctorschedule=mysqli_fetch_array($result)) {
43
echo "<tbody>";
echo "<tr>";
echo "<td>" . $doctorschedule['scheduleId'] . "</td>";
echo "<td>" . $doctorschedule['scheduleDate'] . "</td>";
echo "<td>" . $doctorschedule['scheduleDay'] . "</td>";
echo "<td>" . $doctorschedule['startTime'] . "</td>";
echo "<td>" . $doctorschedule['endTime'] . "</td>";
echo "<td>" . $doctorschedule['bookAvail'] . "</td>";
echo "<form method='POST'>";
echo "<td class='text-center'><a href='#'
id='".$doctorschedule['scheduleId']."' class='delete'><span class='glyphicon
glyphicon-trash' aria-hidden='true'></span></a>
</td>";
}
echo "</tr>";
echo "</tbody>";
echo "</table>";
echo "<div class='panel panel-default'>";
echo "<div class='col-md-offset-3 pull-right'>";
echo "<button class='btn btn-primary' type='submit'
value='Submit' name='submit'>Update</button>";
echo "</div>";
echo "</div>";
?>
<!-- panel content end -->
<!-- panel end -->
</div>
</div>
<!-- panel start -->
</div>
</div>
<!-- /#wrapper -->
<script src="assets/js/bootstrap-clockpicker.js"></script>
<script>
$(document).ready(function(){
var date_input=$('input[name="date"]'); //our date input has the name
"date"
var container=$('.bootstrap-iso form').length>0 ? $('.bootstrap-iso
form').parent() : "body";
date_input.datepicker({
44
format: 'yyyy/mm/dd',
container: container,
todayHighlight: true,
autoclose: true,
})
})
</script>
<script type="text/javascript">
$('.clockpicker').clockpicker();
</script>
<script type="text/javascript">
$(function() {
$(".delete").click(function(){
var element = $(this);
var id = element.attr("id");
var info = 'id=' + id;
if(confirm("Are you sure you want to delete this?"))
{
$.ajax({
type: "POST",
url: "deleteschedule.php",
data: info,
success: function(){
}
});
$(this).parent().parent().fadeOut(300, function(){ $(this).remove();});
}
return false;
});
});
</script>
<script type="text/javascript">
$(document).ready(function(){
$('.filterable .btn-filter').click(function(){
var $panel = $(this).parents('.filterable'),
$filters = $panel.find('.filters input'),
$tbody = $panel.find('.table tbody');
if ($filters.prop('disabled') == true) {
$filters.prop('disabled', false);
$filters.first().focus();
} else {
$filters.val('').prop('disabled', true);
$tbody.find('.no-result').remove();
45
$tbody.find('tr').show();
}
});
</body>
</html>
?>
Logout.php
<?php
46
session_start();
if(!isset($_SESSION['doctorSession']))
{
header("Location: doctordashboard.php");
}
else if(isset($_SESSION['doctorSession'])!="")
{
header("Location: ../index.php");
}
if(isset($_GET['logout']))
{
session_destroy();
unset($_SESSION['doctorSession']);
header("Location: ../user.php");
}
?>
Getshedule.php
<?php
session_start();
include_once '../assets/conn/dbconnect.php';
$q = $_GET['q'];
$res = mysqli_query($con,"SELECT * FROM doctorschedule WHERE
scheduleDate='$q'");
if (!$res) {
die("Error running $sql: " . mysqli_error());
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<link href="assets/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<?php
if (mysqli_num_rows($res)==0) {
echo "<div class='alert alert-danger' role='alert'>Doctor is not available at
the moment. Please try again later.</div>";
} else {
echo " <table class='table table-hover'>";
echo " <thead>";
47
echo " <tr>";
echo " <th>App Id</th>";
echo " <th>Day</th>";
echo " <th>Date</th>";
echo " <th>Start Time</th>";
echo " <th>End Time</th>";
echo " <th>Availability</th>";
echo " <th>Book Now!</th>";
echo " </tr>";
echo " </thead>";
echo " <tbody>";
while($row = mysqli_fetch_array($res)) {
?>
<tr>
<?php
// $avail=null;
// $btnclick="";
if ($row['bookAvail']!='available') {
$avail="danger";
$btnstate="disabled";
$btnclick="danger";
} else {
$avail="primary";
$btnstate="";
$btnclick="primary";
}
// if ($rowapp['bookAvail']!="available") {
// $btnstate="disabled";
// } else {
// $btnstate="";
// }
echo "<td>" . $row['scheduleId'] . "</td>";
echo "<td>" . $row['scheduleDay'] . "</td>";
echo "<td>" . $row['scheduleDate'] . "</td>";
echo "<td>" . $row['startTime'] . "</td>";
echo "<td>" . $row['endTime'] . "</td>";
echo "<td> <span class='label label-".$avail."'>". $row['bookAvail']
."</span></td>";
echo "<td><a href='appointment.php?&appid=" .
$row['scheduleId'] . "&scheduleDate=".$q."' class='btn btn-".$btnclick." btn-xs'
role='button' ".$btnstate.">Book Now</a></td>";
48
// echo "<td><a href='appointment.php?&appid=" .
$row['scheduleId'] . "&scheduleDate=".$q."'>Book</a></td>";
// <td><button type='button' class='btn btn-primary btn-xs' data-
toggle='modal' data-target='#exampleModal'>Book Now</button></td>";
//triggered when modal is about to be shown
?>
</script>
<!-- ?> -->
</tr>
<?php
}
}
?>
</tbody>
<!-- modal start -->
</body>
</html>
Invoice.php
<?php
session_start();
include_once '../assets/conn/dbconnect.php';
if (isset($_GET['appid'])) {
$appid=$_GET['appid'];
}
$res=mysqli_query($con, "SELECT a.*, b.*,c.* FROM patient a
JOIN appointment b
On a.icPatient = b.patientIc
JOIN doctorschedule c
On b.scheduleId=c.scheduleId
WHERE b.appId =".$appid);
$userRow=mysqli_fetch_array($res,MYSQLI_ASSOC);
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>A simple, clean, and responsive HTML invoice template</title>
49
</head>
<body>
<div class="invoice-box">
<table cellpadding="0" cellspacing="0">
<tr class="top">
<td colspan="2">
<table>
<tr>
<td class="title">
<img src="assets/img/logo.jpg" style="width:100%; max-
width:300px;">
</td>
<td>
Invoice #: <?php echo $userRow['appId'];?><br>
Created: <?php echo date("d-m-Y");?><br>
</td>
</tr>
</table>
</td>
</tr>
<tr class="information">
<td colspan="2">
<table>
<tr>
<td>
<?php echo $userRow['patientAddress'];?>
</td>
<tr class="heading">
50
<td>
Appointment Details
</td>
<td>
#
</td>
</tr>
<tr class="item">
<td>
Appointment ID
</td>
<td>
<?php echo $userRow['appId'];?>
</td>
</tr>
<tr class="item">
<td>
Schedule ID
</td>
<td>
<?php echo $userRow['scheduleId'];?>
</td>
</tr>
<tr class="item">
<td>
Appointment Day
</td>
<td>
<?php echo $userRow['scheduleDay'];?>
</td>
</tr>
<tr class="item">
<td>
Appointment Date
</td>
<td>
<?php echo $userRow['scheduleDate'];?>
51
</td>
</tr>
<tr class="item">
<td>
Appointment Time
</td>
<td>
<?php echo $userRow['startTime'];?> untill <?php echo
$userRow['endTime'];?>
</td>
</tr>
<tr class="item">
<td>
Patient Symptom
</td>
<td>
<?php echo $userRow['appSymptom'];?>
</td>
</tr>
</table>
</div>
<div class="print">
<button onclick="myFunction()">Print this page</button>
</div>
<script>
function myFunction() {
window.print();
}
</script>
</body>
</html>
52
SAMPLE SCREEN
53
9. SAMPLE SCREEN
Main page:
54
Doctor login:
Doctor Dashboard:
55
Doctor Schedule:
Schedule page:
56
Schedule confirmation:
Patient list:
57
Scheduled main page:
Booking page:
58
Patient sign up:
59
Patient login:
60
Patient profile:
61
Updated profile:
62
fill the require field to make appointment:
Acknowledgement:
63
Print page:
64
SYSTEM TESTING
65
10. SYSTEM TESTING
b) TYPES OF TESTS
Unit testing
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program inputs produce valid
outputs. All decision branches and internal code flow should be validated. It is
the testing of individual software units of the application .it is done after the
completion of an individual unit before integration. This is a structural testing,
that relies on knowledge of its construction and is invasive. Unit tests perform
basic tests at component level and test a specific business process, application,
and/or system configuration.
Integration testing
66
shown by successfully unit testing, the combination of components is correct and
consistent. Integration testing is specifically aimed at exposing the problems that
arise from the combination of components.
Functional test
System Test
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An
example of system testing is the configuration-oriented system integration test.
67
System testing is based on process descriptions and flows, emphasizing predriven
process links and integration points.
White Box Testing is a testing in which in which the software tester has
knowledge of the inner workings, structure and language of the software, or at
least its purpose. It is purpose. It is used to test areas that cannot be reached from
a black box level.
Black Box Testing is testing the software without any knowledge of the
inner workings, structure or language of the module being tested. Black box tests,
as most other kinds of tests, must be written from a definitive source document,
such as specification or requirements document, such as specification or
requirements document. It is a testing in which the software under test is treated,
as a black box. You cannot “see” into it. The test provides inputs and responds to
outputs without considering how the software works.
Unit Testing
Unit testing is usually conducted as part of a combined code and unit test
phase of the software lifecycle, although it is not uncommon for coding and unit
testing to be conducted as two distinct phases.
Test objectives
Features to be tested
Integration Testing
Acceptance Testing
69
CONCLUSION
70
11. CONCLUSION
71
FUTURE ENHANCEMENT
72
12. FUTURE ENHANCEMENT
73
13. BIBLIOGRAPHY
[1] https://qdoc.tips/php-and-mysql-project-on-doctor-appointment-system-pdf-
free.html
[2] https://ilide.info/doc-viewer
[3] https://www.academia.edu/32409989/Clinic_Appointment_System
[4]https://www.researchgate.net/publication/281643505_Impact_of_using_appo
intment_system_on_patients'_satisfaction
74