You are on page 1of 64

1.

INTRODUCTION

Dentorg – Online Dental Appointment is a web enabled application developed in PHP/


MySql. In this application you can Book your dental appointments online with doctors, dentists
or clinics in India. It's easy, fast and completely free.

The benefits an online dental appointment for both administrative staff and patients and other
booking individuals include: Time savings. Staffs spend less time on the phone booking
and managing appointments, thereby freeing up their schedule for more important and
pressing tasks.

The appointment-scheduling process, historically viewed as a necessary burden in medical


offices, healthcare facilities and wellness centres’, can be completely automated through an
inefficient online scheduling software program. The benefits of implementing this
technology touch everyone involved in the scheduling process, as administrators and staff
can conduct their tasks more efficiently and accurately, while customers and clients have
the ability to book their appointments and reservations quickly and more conveniently.

Advantages in Dentorg:

1. Browse through the available time slots of your practitioner

2. Book an appointment 24/7

3. Receive an SMS reminder

4. Manage, move or cancel your appointments

1
Health care is a fast growing industry in the United States. In 2012, total health care expenditures
were estimated to be $2.8 trillion and health care spending was about 17.9% of Gross Domestic
Product (GDP), which is significantly higher than other developed countries. Appointment
scheduling is one of the key processes in health care industry. A well-designed appointment
system can improve patients’ satisfaction and reduce the cost of clinics and hospitals. Outpatient
appointment scheduling was first studied by Bailey in the 1950s. This process is most often
treated as a queuing system when people study appointment.

1.1 ORGANIZATION PROFILE

Censoware Interactive is a tech-savvy, futuristic software and mobile application


development company. To empower our customers by providing solutions that paves way for
their organizational growth and gives them comfortable control to their core area of business.
Even in an established IT services company, most of the service delivery methodology is
designed based on the assumptions rather than facts, which will lead to lot of defects,
dissatisfaction, unexpected expenses during transition and delivery stage of the projects, the
company will minimize the assumptions to a greater extent and strive to deliver the services from
day one with the expected results.

The clients and projects are given high focus, irrespective of size and volume. The
management’s focus will be to deliver quality services under highly experienced and qualified
teams. The testing team makes sure to check each and every functionality, and ensures that all
requirements are fulfilled as expected by the clients.
The delivery model is designed and maintained to impart the best industry practices and
standards on SLA attainment, Quality assurance, and data / personal security. The code audit
review team ensures that the best industry standards are followed up and continuously improved.
The primary reason for an organization to outsource their non-core area of business is for
cost saving which in turn allows them to have concentrated focus on their core area of business.
The company has different pricing models to choose from which offers the benefit of flexibility
to our clients as they can choose the pricing model that suits them the best. The price benefit is
compelled with superior quality and advanced technology in the industry.

2
The company provides its clients with a simple, robust, and cost effective approach in
outsourcing their services to India. This approach is applicable to all the services provided by the
company. The company can understand that some customers might not have the required
information and systems in place to make the outsourcing simple, and the company has a flexible
approach to handle it as well.

1.2 SYSTEM ENVIRONMENT

Software Requirements

The software specification is the one says about the development environment of the package.

Operating System : Windows 7


User Interface : HTML, CSS,
Client-side Scripting : JavaScript
Programming Language : PHP
Database : MYSQL
Server Deployment : Apache

3
Hardware Requirements

The hardware specification is necessary to support the proposed system, which have been identified,
ordered, delivered, installed and tested at the time of installation.

Processor : Pentium IV
Hard Disk : 40GB
RAM : 512MB or more
Mouse : Optical
Printer : HP Laser

1.3 SOFTWARE FEATURES

Introduction to PHP

The original release of PHP was designed and created by Rasmus Lerdorf back in the
middle of the 90s as a way of making various common web tasks easier and less repetitive. Back
then, the main goal was to have the minimum amount of logic as was possible in order to achieve
results, and this led to PHP being HTML-centric – that is, PHP code was embedded inside
HTML. PHP 3 also finally made the language extensible – something that was serious lacking
from prior versions With PHP 3, the language had gained limited object-oriented support, and
this only added extra fuel to the fire of PHP's growth.

 PHP is a server side scripting language, like ASP.


 PHP stands for Hypertext Pre Processor.
 PHP scripts are executed on the server.
 PHP supports many databases(MYSQL, Informix, Oracle, Sybase, Solid, Postgre
SQL, Generic ODBC, etc.).
 PHP is open source software (OSS).
 PHP is free to download and use.
Features of PHP (Hypertext Pre Processor)
The main features of the PHP scripting language include the following

4
Open Source

PHP is an open source language and is freely available for use. The community of open source
PHP developers provides technical support and is constantly improving updating the core PHP
functionalities. The PHP Extension and Application Repository system provides and maintains a library
of PHP code packages that are available for use. The packages can include functions such as
authentication, caching, destructors, encryption, error handling etc.

Compatibility

PHP provides high compatibility with leading operating systems and web servers such as
enabling it to be easily deployed across several different platforms.

File Handling

PHP be used to read text and generate files in various formats such as PDF and XML. Using the
file manipulation functions, files and documents can be uploaded and stored on the server. The uploaded
documents can be accessed and manipulated through PHP code.

Improved Performance

The PHP complier includes features to optimize and improve the quality of compiled code by
reducing the size execution time of the code thereby leading to improved performance.

Debuggers

Several debuggers are available with PHP enabling developers to identify and analyze the code
for potential bugs and bottlenecks

Sessions

PHP provides extensive session and cookie management features and functions enabling the
creation and development of personalized web pages.

Graphics

PHP can be used to generate images and graphics dynamically. Using the image functionalities
available with PHP, the header information of images can be accessed and manipulated. The GD library
of PHP includes a host of features and functionalities that can be used to create images in various formats
such as gif, jpeg and png.

5
Extensible

The source code of PHP can be modified to include custom created extensions and components
thereby increasing its extensibility.

Features of MYSQL

The following list shows the most important properties of MYSQL.

Client/Server Architecture

MYSQL is a client/server system. There is a database server (MYSQL) and arbitrarily many
clients (application programs), which communicate with the server; that is, they query data, save changes,
etc. The clients can run on the same computer as the server or on another computer (communication via a
local network or the Internet).

SQL compatibility

MYSQL supports as its database language as its name suggests – SQL (Structured Query
Language). SQL is a standardized language for querying and updating data and for the
administration of a database.

Subselects

MYSQL is capable of processing a query in the form SELECT * FROM table1 WHERE
x IN (SELECT y FROM table2) (There are also numerous syntax variants for sub SELECTs.)

Views

Views relate to an SQL query that is viewed as a distinct database object and makes
possible a particular view of the database. MYSQL has supported views since version 5.0.

Stored procedures

Stored procedures are generally used to simplify certain steps, such as inserting or
deleting a data record. For client programmers this has the advantage that they do not have to

6
process the tables directly, but can rely on SPs. Like views, SPs help in the administration of
large database projects. SPs can also increase efficiency.

Triggers

Triggers are SQL commands that are automatically executed by the server in certain
database operations (INSERT, UPDATE, and DELETE).

Unicode

MYSQL has supported all conceivable character sets since version 4.1, including Latin-1,
Latin-2, and Unicode (either in the variant UTF8 or UCS2).

Full-text search

Full-text search simplifies and accelerates the search for words within a text field.

Replication

Replication allows the contents of a database to be copied (replicated) onto a number of


computers. In practice, this is done for two reasons: to increase protection against system failure
(so that if one computer goes down, another can be put into service) and to improve the speed of
database sql queries.

Transactions

In the context of a database system, a transaction means the execution of several


database operations as a block. The database system ensures that either all of the operations are
correctly executed or none of them. This holds even if in the middle of a transaction there is a
power failure, the computer crashes, or some other disaster occurs.

Foreign key constraints

7
Foreign key constrains are rules that ensure that there are no cross references in linked
tables that lead to nowhere. MYSQL supports foreign key constraints for tables.

Programming languages

Programming languages are quite a number of APIs (application programming interfaces)


and libraries for the development of MYSQL applications. For client programming you can use,
among others, the languages C, C++, Java, Perl, PHP, Python, and Tcl.

Platform independence

Platform independence is not only client applications that run under a variety of operating
systems; MYSQL itself (that is, the server) can be executed under a number of operating
systems. The most important are Apple Macintosh OS X, Linux, Microsoft Windows, and the
UNIX variants, such as Open BSD, Net BSD, SGI Iris, and Sun Solaris.

MySQL is a relational database management system (RDBMS), and ships with no GUI
tools to administer MySQL databases or manage data contained within the databases. Users may
use the included command line tools, or use MySQL "front-ends", desktop software and web
applications that create and manage MySQL databases, build database structures, back up data,
inspect status, and work with data records. The official set of MySQL front-end tools, MySQL
Workbench is actively developed by Oracle, and is freely available for use.[

MySQL ships with many command line tools, from which the main interface is 'MySQL'
client. Third-parties have also developed tools to manage, optimize, monitor and backup a
MySQL server, some listed below. All these tools work on *NIX type operating systems, and
some of them also on Windows.

Windows 7
8
Windows 7 Professional gives all the benefits of Windows 7 Home Edition, plus
additional remote access, security, performance, manageability and multi-lingual features that
make the operating system to suit for businesses of all sizes and user who demand the most out
of their computing experience.

Features

 New user interface makes it easy to find details according


to user needs.
 Network Setup Wizard easily connects&shares the computers and devices.

 Windows Messenger the ultimate communications & collaboration tool with


instant messaging, voice and video conferencing, and application sharing.

 Windows Media Player for Windows 7single place for finding, playing,
organizing, and storing digital media.

 Help & Support Centre easy to recover from problems and get help and
support when needed.

 File and Folder Management Windows 7 provides several new ways to


arrange and identify files when viewing them in folders such as My
Documents.

Windows 7 added the ability for windows to use “Visual Styles” to change the user
interface. However visual styles must be cryptographically signed by Microsoft to run. Luna is
the name of the new visual style the ships with Windows 7, and is enabled by default for
machines with more than 64 MB of RAM. Luna refers only to one particular visual style, not to
all of the new user interface features of Windows 7 as a whole. Some users “patch” the
uxtheme.dll file restricts the ability to use visual styles, created by the general public or the user,
on Windows 7.

9
2. SYSTEM STUDY

The system study is to get the clear understanding of the needs of the clients and the
users. Analysis is a systematic investigation of a real plan to determine the function of the system
and how it relates to each other system. System analysis is explicit formal inquires carried out to
identify a better course of action and make a better decision. System has been developed in such
a way that the study phases, analysis phase, design phase, testing and implementation are done at
each and every level of project.
Systems analysis is the study of sets of interactingentities, including computer systems
analysis. This field is closely related to requirements analysis or operations research. It is also
"an explicit formal inquiry carried out to help someone (referred to as the decision maker)
identify a better course of action and make a better decision than he might otherwise have made.
Moving from the theoretical definition to something a bit more contemporary, Systems
analysis is a term that collectively describes the early phases of systems development. There has
never been a universally accepted definition. And there has never been agreement on when study
ends and design begins. Systems study is driven by business concerns.
Some methodologies refer to systems study as logical design. Typically, each
organization's methodology of choice determines the definition for that organization. In the
FAST methodology, systems study is defined as those phases and activities that focus on the
business problem, independent of technology(for the most part).
Systems studies (1) the survey and planning of the system and project, (2) the study and
study of the existing business and information system, and (3) the definition of business
requirements and priorities for a new or improved system. A popular synonym is logical design.
The phase "configure a feasible solution" would be considered part of systems study by some
experts.

10
2.1 BACKGROUND STUDY

Health care is a fast growing industry in the United States. In 2012, total health care expenditures
were estimated to be $2.8 trillion and health care spending was about 17.9% of Gross Domestic
Product (GDP), which is significantly higher than other developed countries. Appointment
scheduling is one of the key processes in health care industry. A well-designed appointment
system can improve patients’ satisfaction and reduce the cost of clinics and hospitals. Outpatient
appointment scheduling was first studied by Bailey in the 1950s.

This process is most often treated as a queuing system when people study appointment.

Types of Appointment Scheduling

Traditional Appointment Scheduling

A patient is scheduled for a future appointment time and the number of patient granted an
appointment has an upper limit each time period. The appointment lead time could be very long
(several weeks or a month in advance), which may result in a high no-show probability.

Open Access Appointment Scheduling

The number of patients request per day is random. A patient is assigned to a time bucket
within a relatively short time period (one or two days in advance from the time they request an
appointment), since shorter appointment can help to reduce patients’ no-show probability and
reduce uncertainty in clinic operations. Robinson and Chen (2009) examined two types of open
access scheduling policies. The first policy assumes that all patients are assigned to the same day
they request an appointment, and overtime is used to cover excess demand in a time period. The
other policy assumes that some patients are assigned to other days if the demand is unusually
high. Robinson and Chen also claimed open access scheduling outperforms the traditional
appointment scheduling by different performance measurements of appointment system,

11
including over time and idle time of physicians, and patients’ weighted average waiting time.
However, this conclusion does not hold when the no-show probability is very small.

Methods of Appointment Scheduling

The common methods of requesting an appointment include walk-in, call-in, and online
request. When a patient arrives at a clinic or calls the clinic to make an appointment, some clinics
will record the appointments by using a scheduling book or a simple online appointment
calendar. This is the traditional method to make an appointment, while online appointment
scheduling is more popular nowadays. One Wall Street Journal survey pointed out that the
majority of adults prefer the online appointment scheduling.

Compared with other methods, the online scheduling system has three advantages:

1) 24-hour convenience: for most clinics, phone access is only available during office
hours, while online system is more convenient for patients.

2) time saving: clinic staff spends less time on the phone booking and patients do not
need to wait during peak hours in the clinics.

3) patient’s satisfaction: the online scheduling system allows patients to select physicians
and time slots based on patients’ preference, which will reduce no-show probability and improve
patient health.

There are two most common types of online scheduling. One is patients input their
contact information and type of service requesting through an online request form. The clinic
will contact patients and provide an available slot for appointments. Another one is patients can
select a physician, type of service requesting and the available appointment slots. The system
will automatically confirm the booking without any staff action. In this thesis, the second type of
online appointment scheduling is assumed.

Objectives

12
The objectives of this thesis are to propose a policy/ policies to maximize patients’
preferences and the number of patients seen during normal business hours. Thus, this is an multi-
objective problem that needs to balance the trade-off between overtime and patients’ preferences.

2.2 EXISTING SYSTEM

The existing system was an automated system. But it was found to be


inefficient in meeting the growing demands of population .

Drawbacks in the existing systems


 The disadvantage of online tracking is lack of personal interaction and tangibility factor.
 The people whose time is being booked must check in regularly to find out what their
schedule is, and to let the staff know what times are unavailable.
 The online security is less was to take additional care about customer so that to protect
from unauthorized usage.

2.3 PROPOSED SYSTEM

Online appointment scheduling can also save your staff a substantial amount of time,
which enables them to focus their attention on patients who are currently in the office, so that
patients can have the best in-office experience possible. This is a much better use your staff's
time than making phone calls, leaving voicemails, and handling subsequent follow up phone
calls.

To enable patients to book appointments directly from your website, the online appointment
booking system will provide you with a URL that you can link to from your website. This URL
is specific to your practice, so when users visit it, they'll be able to learn more about your
practice, and book appointments directly. You won't need to design the website or create any of
the scheduling functionality -- the hosting company has already taken care of it for you, and
provides you with your own profile that you simply need to maintain. You'll just need to ensure
that the information is correct and up to date. Once you have this URL, you'll be able to link to it
from your website or social media.

13
Features and Benefits
 Doctor's office may publish an appointments schedule that allows patients to view
upcoming availability and request their appointments online.

 The patients may be able to request the first available slot on a specific day of the week.

The proposed system can be used even by the native users and it does not require any
educational level, experience, and technical expertise in computer field but it will be of
good use if the user has the good knowledge of how to operate a computer.

14
3. SYSTEM DESIGN
Design is the process of translating requirements defined during analysis into several
designs activities for user requirements. The designer select requirements needed to implement
the system in this phase; the design of the database also takes place. After identifying the
problem, limitations are opportunities to improve the efficiency system. A detail design of the
proposed system is done. In database design several objectives are considered such as
,Controlled Redundancy, Data Independence, More Information at low cost, Accuracy and
Integrity, Recovery and Failure, Security and Performance.

3.1 SYSTEM FLOW DIAGRAM


Design Engineering deals with the various UML [Unified Modeling language] diagrams
for the implementation of project. Design is a meaningful engineering representation of a thing
that is to be built.

Software design is a process through which the requirements are translated into
representation of the software. Design is the place where quality is rendered in software
engineering. Design is the means to accurately translate customer requirements into finished
product

A system flow diagram (SFD) is a description of the system or portion of a system. It


provides a logical diagram of how the system operates. It also reflects the relationship between
input processing and output.

It is a flow model or diagram used to describe conceptual flow model by providing


graphical notations which documents properties that binds them the basic graphical elements of
SFD’s or have representing the process and arrow representing relationships.

The transformation of the data from input to output, through process, may be described
logically and independently of the physical component.

15
3.2 CONTEXT ANALYSIS DIAGRAM

DFD’s may be partitioned into levels. A Level 0 DFD, also called a context model,
represents the entire software element as a single bubble with input and output arrows.

But context analysis considers the entire environment of a business, its internal and
external environment. This is an important aspect of business planning. One kind of
context analysis, called SWOT analysis, allows the business to gain an insight into their
strengths and weaknesses and also the opportunities and threats posed by the market
within which they operate. The main goal of a context analysis, SWOT or otherwise, is to
analyze the environment in order to develop a strategic plan of action for the business.

3.3 DATAFLOW DIAGRAM

The Data Flow Diagram is a graphical representation which depicts the information
regarding the flow of control and the transformation of the data from the input to the output.

The DFD may be used to represent the system or software at any level of abstraction. In
fact DFD’s may be partitioned into levels. A Level 0 DFD, also called a context model,
represents the entire software element as a single bubble with input and output arrows.

DFD is a graphical tool used for requirement analysis. DFD depicts information flow
without explicit representation procedural logic. DFD also depicts real time systems with the
help of some extended notation.

Four rules for constructing a dataflow diagram

16
 Squares, circles and files must bear names.
 Decomposed data flow squares and circles can have same names.
 Choose meaningful names for data flow.
 Draw all data flows around the outside of the diagram.

A data flow diagram is used commonly during analysis stage. Data flow diagrams are
useful in understanding a system and can be effectively used in partitioning during analysis.

This level shows the overall DFD of IMEGS. This level is relationship to High Level of
Data Flow Diagram.

3.4 ENTITY RELATIONSHIP DIAGRAM

They provide the data at the logical level. They are characterized by that fact that they
provide fairly flexible structuring capabilities and allow data constraints to be specified
explicitly.

17
The entity relationship data model is based on a perception of a real world that consists of
a set of basic object entities and relationships among the objects. It was developed to facilities
database design.

The ER data model is one of several semantic data model. The semantic aspect of model
lies in the attempt to represent the meaning of data .ER model is externally used in meaning and
interactive of real world enterprises.

ER Model has some means of describing the physical database model, it is basically useful in the
esign & communication of the logical database model. In this model, objects of similar structure
are collected into an entity set.

The relationship between entity sets is requested by a named ER relationship. The


database structure employing the ER model is usually shown pictorially using entity –
relationship (ER) diagrams.

Diagrams created by this process are called entity-relationship diagrams, ER


diagrams, or ERDs. The relationship between entity sets is represented by E-R relationship
mapping from one entity set to another.

18
3.5 USE CASE DIAGRAM

A use case diagram is a type of behavioral diagram created from a Use-case analysis.
This diagram represents interaction between admin and customer. The administrator maintain
details about customer

19
Use Case Relationships

Three relationships among Use Case are supported by the UML standard, which
describes graphical notation for these relationships and created by boot.

Include

20
In one form of interaction, a given Use Case may include another. Include is a Directed
Relationship between two Use Cases, implying that the behavior of the included Use Case is
inserted into the behavior of the including Use Case.

The first Use Case often depends on the outcome of the included Use Case. It is useful
for extracting truly common behaviors from multiple Use Cases into a single description. The
notation is a dashed arrow from the including to the included Use Case, with the label
<<included>>. The usage resembles a macro expansion where the included Use Case behavior is
placed inline in the base Use Case behavior. There are no parameters or return values.

To specify the location in a flow of events in which the base Use Case includes the
behavior of another, the user simply write include followed by name of Use Case the user want
to include, as in the following flow for track order.

Extend

In another form of interaction, a given Use Case (the extension) may extend another. The
relationship indicates the behavior of the extension Use Case may be inserted in the extended
Use Case under some conditions. The notation is a dashed arrow from the extension to the
extended Use Case, with the label <<extend>>. It can be useful for dealing with special cases
(when A extends B, A is a special case of B), or in accommodating new requirements during
maintenance and extension.

Modelers use the <<extend>> relationship to indicate Use Case it was optional to the
base Use Case. Depending on the modeler’s approach optional may mean potentially not
executed with the base Use Case or it may mean not required to achieve the base Use Case goal.

3.6 DATABASE DESIGN

Database design is the process of producing a detailed data model of a database. This
logical data model contains all the needed logical and physical design choices and physical
storage parameters needed to generate a design in a Data Definition Language, which can then be

21
used to create a database. A fully attributed data model contains detailed attributes for each
entity.

The term database design is used to describe many different parts of the design of an
overall database system. The logical design of the base data structures used to store the data. In
the relational model these are the tables and views. In an object database the entities and
relationships map directly to object classes and named relationships. However, the term database
design could also be used to apply to the overall process of designing, not just the base data
structures, but also the forms and queries used as part of the overall database application within
the database management system (DBMS).

The process of doing database design generally consists of a number of steps which will
be carried out by the database designer.

 Determine the relationships between the different data elements.

 Superimpose a logical structure upon the data on the basis of these relationships.

Steps in Database Design

The process of SQL Server Management Studio database design is divided into different
parts. It consists of a series of steps. They are

 Requirement Analysis
 Conceptual Database Design (ER-Diagram)

 Logical Database Design (Tables, Normalization etc.)

 Physical Database design (Table Indexing, Clustering etc.)

Requirement Analysis

22
In the phase a detailed analysis of the requirement is done. The objective of this phase is
to get a clear understanding of the requirements. It makes use of various information gathering
methods for the purpose. Some of them are

 Interview
 Analysing documents

 Survey

 Site visit

 Joint Applications Design (JAD) and Joint Requirements Analysis (JRA)

 Prototyping

Conceptual Database Design

The requirement analysis is modelled in this conceptual design. The ER Model is used at
the conceptual design stage of the database design. The ER diagram is used to represent this
conceptual design. ER diagram consists of Entities, Attributes and Relationships.

Logical Database Design

Once the relationships and dependencies are identified the data can be arranged into
logical structures and is mapped into database management system tables. Normalization is
performed to make the relations in appropriate normal forms.

Physical Database Design

It deals with the physical implementation of the database in a database management


system. It includes the specification of data elements, data types, indexing etc. All these
information are stored in the data dictionary.

23
The MySQL Permission Model

In order to fully implement a secure MySQL database, it is necessary to learn the MySQL
access control system. There are four privilege levels that apply:

 Global: these privileges apply to all databases on a server.


 Database: these privileges apply to all tables in a database.
 Table: these apply to all columns within a table.
 Column: these apply to individual columns in a table.

Database Backups

Another area that often gets lost in the layers of security is the critical area of database
backup and recovery. As a part of whatever backup type is used, testing recovery of data is
mandatory. Further, check pointing has been improved to be done more frequently, also easing
the recovery process. With frequent checkpointing, as well as transaction logging and making
regular backup copies, backup and recovery of databases is made more straightforward.

Specifically, the InnoDB transactional model allows for commit, rollback and crash
recovery. By adding locking capabilities for users, having many users access the database at the
same time becomes faster and more stable. To ensure that InnoDB is available with your
installation, configure your package with the ‘with-innodb’ flags. You will also want to specify
InnoDB options in your ‘my.cnf’ file. Details on these set-up options can be found at the MySQL
Documentation on InnoDB Start-up Options.

The following Fig 3.6.1 describes the Xampp Control Panel Application form which
shows the start the MySQL connectivity.

24
Fig 3.6.1 Xampp Control Panel Application

Privileges in MySQL Server

The privileges can get very granular, so it is important that they are used in a well-planned
fashion. The types of privileges include:

 Alter
 Delete
 Create
 Drop
 Execute
 Select
 Update
Once a database is completely set up, these privileges should be reviewed prior to going to
any usage of the database to ensure that the privileges were set up appropriately.

25
PHP Connect to the MySQL Server

Open a Connection to the MySQL Server

Before we can access data in a database, we must open a connection to the MySQL
server.In PHP, this is done with the mysql_connect () function.

Syntax:

mysql_connect (host, username, password,dbname);

Close a Connection to the MySQL Server

The connection will be closed automatically when the script ends. To close the
connection before, use the mysql_close() function. The following form describes the front page
of the Xampp Windows where we will make the PHP MySQL Connectivity.

Fig 3.6.2 Xampp Front Page

26
Create a Database in MySQL Server

The CREATE DATABASE statement is used to create a database table in MySQL.We


must add the CREATE DATABASE statement to the mysql_query () function to execute the
command. The following form describes to create a database named "product details".

The Fig 3.6.3 describes how to create a new database in the My_SQL database. It
contains the database name and also the locations were the database is created and where it is
accessed.

Fig 3.6.3Creating a New Database in MySQL

27
Create a Table in the MySQL Server

The CREATE TABLE statement is used to create a table in MySQL. We must add the
CREATE TABLE statement to the mysql_query () function to execute the command. The
following figure describes how to create a tables in the database.

The following Fig 3.6.4 describes to create a new table in the database job scheduling. It
includes the table name and the entities used in the table, its size and also its type.

Fig 3.6.4Create a New Table in the Database

There are several GUI consoles available to make the management of MySQL database
easier. For instance, MySQL Explorer allows several management processes to be done via an
interface that runs on several windows platforms. The MySQL team also has a version in beta
called MySQL Control Center

28
Insert Data Into a Database Table

The INSERT INTO statement is used to add new records to a database table. The
following form describes to create a new data into the database table which is already created.

Fig 3.6.6 Insert a data into a Database Table

29
3.7 INPUT DESIGN

The input design is the process of entering data to the system. The input design goal is to
enter to the computer as accurate as possible. Here inputs are designed effectively so that errors
made by the operations are minimized. The inputs to the system have been designed in such a
way that manual forms and the inputs are coordinated where the data elements are common to
the source document and to the input. The input is acceptable and understandable by the users
who are using it. Once identified, appropriate input media are selected for processing.

The input design also determines the user to interact efficiently with the system. Input
design is a part of overall system design that requires special attention because it is the common
source for data processing error. The goal of designing input data is to make entry easy and free
from errors.

The main objectives that are done during the input design are:

 Data is collected from the source


 Transfer of data to an input form is done
 Data is converted to a computer acceptable form
 The converted data is verified
 Data is checked for its accuracy
 Data is transmitted to the computer
 Validation of input data is done

30
Form Name: Employee Login

Fig 3.7.1 Employee login.

31
Form Name: Clinic Master.

32
I

Fig 3.7.2 Clinic Master

33
Form Name: Supplier Master

Fig 3.7.3 Supplier Master

34
Form Name: Lab Master

Fig 3.7.4 Lab Master

35
Form Name: Patient Registration

Fig 3.7.5 Patient Registration

Form Name : Patient Disease Register

36
Fig 3.7.6 Patient Disease Register

37
Form Name: Patient Appointment

Fig 3.7.7 Patient Appoinment

38
Form Name: Patient Appointment Re Schedule

Fig 3.7.7 Patient Appointment Re Schedule

39
Form Name: Patient Appointment Report

Fig 3.7.8 Patient Appointment Report

40
Form Name: Employee Report

Fig 3.7.9 Employee Report

3.8 OUTPUT DESIGN


Computer output is most important and direct source of information to the user. Efficient
of intelligible output should improve the system relationship with the user and help in decision-
making. Major forms of output are hard copy from the printer and soft copy from the CRT unit.

41
The output design was done so that results of processing could be communicated to the
users. The various outputs have been designed in such a way that they represent the same format
that the office and management used to.

Computer output is the most important and direct source of information to the user. Efficient,
intelligible output design should improve the systems relationships with the user and help in
decision making. A major form of output is the hardcopy from the printer.

 Scalability of the device according to the output format required


 The need of hard copy
 The response time taken
 The detail specification needed

4. SYSTEM TESTING AND IMPLEMENTATION

42
4.1 SYSTEM TESTING
The most important phase in system development life cycle is system testing. The
number and nature of errors in a newly designed system depends on the system specification and
the time frame given for the design.
A newly designed system should have all the subsystems working together, but in reality
each subsystems work independently. During the phase, all the subsystems are gathered into one
pool and tested to determine whether it meets the user requirements.
Testing is done in two level-Testing of individual modules and test the entire system.
During the system testing, the system is used experimentally to ensure the software will run
according to the specifications and in the way the user expects. Each test case is designed with
the intent of finding errors in the way the system will process.
Testing is vital to the success of the system. System testing makes a logical assumption
that if all the parts of the system are correct; the goal will be successfully achieved non- testing
leads to error that may not appear until months later. This creates two problems.
 The time lag between the cause and appearance of the problem.

 The effort of system error on files and records within the system.

The Testing Steps are:

 Unit testing

 Integrated testing

 Validation testing

 White Box testing

Unit Testing

43
Testing of individual programs or modules is known as unit testing. Unit testing is done
both during documentation and testing phase. Unit testing focuses on verification of effort on
the smallest of software design. Modules using the detailed design description as a guide,
important control paths are tested to uncover errors within the boundary of the module. The
relative complexity is test and errors detected as a result are limited by the constraints scope
established for unit testing. Unit testing is always white box oriented and the step can be
conducted in parallel for multiple modules.

Integration Testing

Integration testing is a systematic technique for constructing the program structure while at the
same time conducting test to uncover errors associated with interfacing. The objective is to take unit -
tested modules and build a program structure that has been dictated by design. Careful test planning is
required to determine the extent and nature of system testing to be performed and to establish criteria by
which the result will be evaluated.

All the modules were integrated after the completion of unit test. While Top - Down Integration
was followed, the modules are integrated by moving downward through the control hierarchy, beginning
with the main module. Since the modules were unit - tested for no errors, the integration of those modules
was found perfect and working fine. As a next step to integration, other modules were integrated with the
former modules.

Validation Testing
The most common web application security weakness is the failure to properly validate input
coming from the client or environment before using it. The weakness leads to almost all of the major
vulnerabilities in web applications, such as cross site scripting, SQL injection, interpreter injection,
Data from an external entity or client should never be trusted, since it can be arbitrarily tampered with by
an attacker. Validation doesn't just mean putting your pages through some web driven testers. It also
means test-driving it with friends, relatives, co-workers, and strangers. Everyone has a different system
and way of working, so ask for others to test-drive your styles or themes before you make them public.

White Box Testing

44
White box testing is a test case method that uses control structure and procedural design
to drive test cases using white box testing method.
Software engineer can test cases that:
 Exercise all logical decisions on their true or false sites.
 Guarantee that all independent paths with a module have been exercised at least once.
 Exercise internal data structure to ensure validity.
 Execute all loops at their boundaries and their operational bounds.
White box testing sometimes called as glass box testing is a test case design method that uses the
control structures of the procedural design to derive test cases.

Using White Box testing methods, the software engineer can derive test case, that guarantee that all
independent paths with in a module have been exercised at least once, exercise all logical decisions on
the true and false sides, execute all loops at their boundaries and within their operational bounds, exercise
internal data structures to ensure their validity. “Logic errors and incorrect assumptions are inversely
proportional to the probability that a program path will be executed“.

Black Box Testing


Black box testing, also called as behavioral testing, focuses on the functional
requirements of the software. That is, black box testing enables the software engineer to derive
sets of input conditions that will fully exercise all functional requirements for a program.
Black box testing focuses on the fundamental requirements on software and on input
and output of the module. It enables the software engineers to derive set of input condition that
will truly exercise all functional requirements of a program. Black box testing is rather a
contemporary approach that is likely to uncover different class of errors.
It attempts to find out errors in the following category:
 Incorrect and missing functions
 Performance errors
 Initialization and termination errors

45
4 .2 SYSTEM IMPLEMENTATION

System implementation is the process of developing the system based on the user
requirement that has to be enforced in any system while development. Security window prohibits
unauthorized users entering the system. Implementation is the stage of the project when the
system design is turned into fully working system. This stage consists of following steps.

 Testing the developed program with the sample data.


 Detecting and correction of internal errors.
 Testing the system to see if it meets the user requirements.
 Feeding the real time data.
 Making changes as desired by the user.
 Training user personal.

The purpose of System Implementation can be summarized as follows: making the new
system available to a prepared set of users (the deployment), and positioning on-going support
and maintenance of the system within the Performing Organization (the transition).

At a finer level of detail, deploying the system consists of executing all steps necessary to
educate the Consumers on the use of the new system, placing the newly developed system into
production, confirming that all data required at the start of operations is available and accurate,
and validating that business functions that interact with the system are functioning properly.

A key difference between System Implementation and all other phases of the lifecycle is that
all project activities up to this point have been performed in safe, protected, and secure
environments, where project issues that arise have little or no impact on day-to-day business
operations. Once the system goes live, however, this is no longer the case.

4.3 SYSTEM MAINTENANCE

46
The system has been designed and developed according to the current requirements of the
user. At the same time the system is very flexible and extensible, Hence, future enhancements, if
needed can be made without much difficulty, so new applications can be developed and it be
integrated with the existing one very easily.

The following future enhancements may be worthwhile to make the tool usable to a wider
section of users.

 Currently only text-based reports are handled. It can be extended to include graphics
and images. Also music and audio clips are considerable.
 User level authentication and authorization may be of use in certain circumstances.

It is convenience it offers by sitting back at home can now shop anything from grocery item
to cosmetic clicks of mouse button .The worry may have on travelling, traffic blocks and parking
constraints in real world shopping can avoided while shopping online. With online shopping,
need not worry about weather conditions. The advantage of online shopping is the flexibility of
shopping. Online shopping has no holidays, closing times or any other problems can shop 24
hours a day. The facilities available for product price comparisons, quality comparison of the
products and services are possible

The disadvantage of online shopping is lack of personal interaction and tangibility factor the
shipping cost is more than that need to actually carry the product home, then online shopping
become unattractive. The online security is less was to take additional care about credit cards so
that to protect from unauthorized usage.

5. CONCLUSION

47
In addition to offering convenience, online appointment booking can give you access to patients
who have a tough time scheduling an appointment during their workday. According to Zocdoc,
45% of appointments booked through its system are booked outside of business hours, and many
patients see a doctor within 24 hours of requesting an appointment. Though you are unlikely to
see a 45% increase in patient visits just by using one of these platforms, you will make it easier
for patients who are too busy during the day to call your office in order to schedule an
appointment. Many of these patients prefer the convenience of online booking, and will opt for
one who provides this option, especially if they're looking for a new provider.

Online appointment scheduling can also save your staff a substantial amount of time, which
enables them to focus their attention on patients who are currently in the office, so that patients
can have the best in-office experience possible. This is a much better use your staff's time than
making phone calls, leaving voicemails, and handling subsequent follow up phone calls.

SCOPE OF FUTURE ENHANCEMENT

In future online appointment scheduling can be done with our mobile phone.

48
6. BIBLIOGRAPHY

BOOKS REFERRED

 Anil Desai, “MYSQL server backup and recovery”, Tata mc-grawHill Publication,
second edition,2005.
 Furtel Shatter, “Quality software project management”, Galgotia publication,
fourth edition,1996.
 Joel Murach, “Murach's PHP and MySQL” , Tata mc-grawHill Publication, Fourth
Edition,2006.
 Luke welling, “PHP and MYSQL web development, Hungry publication, fourth
edition, 2002.
 Lynn Beighley,”Head first PHP and MYSQL” Tata mc-grawHill Publication, First
edition,2005.
 Mario Lurig,”Beginner to Intermediate php5”phphaven publication, fifth
edition,2008.
 Rasmus Lerdorf, “Programming PHP”, McGraw-Hill publication, second edition,
2006.
 Robin Nixon,”Learningphp,mysql and javascript” ShroffPublishers,First edition,
2004.
 Richard E fairly, “Software engineering concepts”, Tata Mc-grawHill Publication,
second edition, 2000.
 Steven Holzner, “The Complete Reference PHP”, TATAMcGRAW-
HILLPublication,fourth edition,2007.

WEBSITES

 www.codproject.com
 www.w3schools.com

49
 www.php.net.com
 www.phparch.com
 www.phpjunkyard.com
 www.phplearnable.com
 www.grogate.com
 www.phpjabbers.com
 www.getacoder.com
 www.daniweb.com

APPENDICES

A. Tables
B. Screen Layouts
C. Sample Reports
APPENDICES A: TABLES

TABLE DESIGN

Database design is a collection of interactive data store. It is an effective method of


defining, storing and retrieving the information in the database multiple applications and the

50
users can use the data contained in the database. It prevents fraudulent and unauthorized user
from accessing the data and ensures the privacy of data.

The database design is a must for any application developed especially more .for the data
store projects. Since the chatting method involves storing the message in the table and produced
to the sender and receiver, proper handling of the table is a must.

The tables maintained are user login, vendor details, purchase details, product details,
quality checking details, buyer details, and payment details.

A database is a collection of inter-Related with minimum redundancy to serve the user


quickly and efficiently. The data are stored in tables .Proper care has taken to design table to
achieve data security, data integrity and data consistency.

Database design is a collection of interactive data store. It is an effective method of


defining, storing and retrieving the information in the database. Users can use the data
contained in the database to produce reports. It prevents fraudulent and unauthorized users
from accessing data and ensures the privacy of data.

A well designed database is essential for the good performance of the system .Several
tables are referenced or manipulated at various instance. The table also known as relation;
provide information pertaining to a specified entity.

Normalization of table is carried out to extent possible, while the normalizing tables, care
should be taken to make sure that the number of tables does not exceed the optimum level, so
that table maintenance is convenient and effective.

TABLE NAME: ADMIN

PRIMARY KEY: USER_NAME

FIELD NAME TYPE&SIZE DESCRIPTION


Username varchar(20) User name
Password varchar(40) Password

51
TABLE NAME: Patient registration

Primary Key: pid


FIELDNAME TYPE & SIZE DESCRIPTION
pid int(11) Patient Id
clinic_id int(11) Clinic Id
Reg_number varchar(32) Registration Number
Reg_date datetime Registeration Date
First_name varchar(32) First Name
Laste_name varchar(32) Last Name
age Int(11) Age
dob date Date of Birth
gender varchar(32) Gender
Mobile_number Int(11) Mobile Number
address varchar(32) Address
Marital_status varchar(32) Marital Status
referred varchar(32) Referred

APPENDICES B: SAMPLE SOURCE CODE

Patient Appointment View

Patient_appointment.blade.php

@extends('layouts.dashboard')

@section('page_heading','Dashboard')

@section('section')

<div class="col-sm-12">

<div class="row">

<ul class="breadcrumb">

<li><a href="">Home</a></li>

52
<li><a href="">Dashboard</a></li>

</ul>

<div class="col-lg-12">

<div class="panel panel-default">

<div class="others-header">Patient Appointment Update</div>

<div class="panel-body">

<form method="post" action="{{url('/patient_appoint/update')}}">

@foreach($data['appoint'] as $appoint)

<input type="hidden" name="id" class="form-control"


value="{{$appoint->aid}}">

{{ csrf_field() }}

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Appoinment


Number</label>

<div class="col-md-7"><input type="text" name="appoint_number" class="form-


control" value="{{$appoint->appoint_number}}" readonly></div></div>

</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Fix Date</label>

<div class="col-md-7"><input type="date" name="reg_date" class="form-control


date-picker" value="{{$appoint->reg_date}}"></div></div>

53
</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Reg


Number</label>

<div class="col-md-7"><input type="text" name="reg_number" class="form-


control" value="{{$appoint->reg_number}}" readonly></div></div>

</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Patient


Name</label>

<div class="col-md-7"><input type="text" name="patient_name" class="form-


control" value="{{$appoint->patient_name}}" readonly></div></div>

</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Age</label>

<div class="col-md-7"><input type="text" name="age" class="form-control date-


picker" value="{{$appoint->age}}" readonly></div></div>

</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">DOB</label>

54
<div class="col-md-7"><input type="text" name="dob" class="form-control"
value="{{$appoint->dob}}" readonly></div></div>

</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Address</label>

<div class="col-md-7"><input type="text" name="address" class="form-control"


value="{{$appoint->address}}" readonly></div></div>

</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Location</label>

<div class="col-md-7"><input type="text" name="location" class="form-control


date-picker" value="{{$appoint->location}}" readonly></div></div>

</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Mobile


Number</label>

<div class="col-md-7"><input type="text" name="mobile" class="form-control"


value="{{$appoint->mobile}}" readonly></div></div>

</div>

<div class="col-lg-4">

55
<div class="form-group"><label class="control-label col-md-5">Docter
Name</label>

<div class="col-md-7"><input type="text" name="docter_name" class="form-


control" value="{{$appoint->docter_name}}"></div></div>

</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Appoinment


Date</label>

<div class="col-md-7"><input type="date" name="app_date" class="form-control"


value="{{$appoint->app_date}}"></div></div>

</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Appoinment


Time</label>

<div class="col-md-7"><input type="time" name="app_time" class="form-control"


value="{{$appoint->app_time}}"></div></div>

</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Status</label>

<div class="col-md-7"><input type="text" name="status" class="form-control date-


picker" value="{{$appoint->status}}"></div></div>

56
</div>

<div class="col-lg-4">

<div class="form-group"><label class="control-label col-md-5">Purpose of


Visit</label>

<div class="col-md-7"><input type="text" name="purpose" class="form-control"


value="{{$appoint->purpose}}"></div></div>

</div>

<div class="form-submit">

<button type="submit" class="form-submit-btn">Update Appoinment</button>

<button type="reset" class="form-edit-btn">Reset</button>

</div>

@endforeach

</form>

</div>

</div>

</div>

57
</div>

</div>

@endsection

Patient Appointment: Controller

Patient_appointment.php

public function patient_appoint(Request $request){

$data['appoint']=DB::table('patient_appoint')->get();

58
$data['register']=DB::table('patient_registration')->where('reg_number','!=',
$data['appoint'][0]->reg_number)->where('status','=','1')->get();

return view('admin.patient.patient_appointment')->with('data',$data);

public function patient_appoint_insert(Request $request){

$app['appoint_number']=$request->input('appoint_number');

$app['reg_date']=$request->input('reg_date');

$app['reg_number']=$request->input('reg_number');

$app['patient_name']=$request->input('patient_name');

$app['age']=$request->input('age');

$app['dob']=$request->input('dob');

$app['address']=$request->input('address');

$app['location']=$request->input('location');

$app['mobile']=$request->input('mobile');

$app['docter_name']=$request->input('docter_name');

$app['app_date']=$request->input('app_date');

$app['app_time']=$request->input('app_time');

$app['status']=$request->input('status');

$app['purpose']=$request->input('purpose');

$aid=$this->patient->registerAppointment($app);

return redirect('patient_appoint?id='.$app['appoint_number']);

59
}

//Patient Appointment Update

public function patient_appoint_new($id){

$data['register']=DB::table('patient_registration')->where('reg_number','=',$id)-
>get();

$data['appoint']=DB::table('patient_appoint')->where('reg_number','=',$id)-
>get();

return view('admin.patient.patient_appointment_new')->with('data',$data);

public function patient_appoint_modify($id){

$data['appoint']=DB::table('patient_appoint')->where('aid','=',$id)->get();

return view('admin.patient.patient_appointment_modify')->with('data',$data);

public function patient_appoint_update(Request $request){

$app['appoint_number']=$request->input('appoint_number');

$app['reg_date']=$request->input('reg_date');

$app['reg_number']=$request->input('reg_number');

60
$app['patient_name']=$request->input('patient_name');

$app['age']=$request->input('age');

$app['dob']=$request->input('dob');

$app['address']=$request->input('address');

$app['location']=$request->input('location');

$app['mobile']=$request->input('mobile');

$app['docter_name']=$request->input('docter_name');

$app['app_date']=$request->input('app_date');

$app['app_time']=$request->input('app_time');

$app['status']=$request->input('status');

$app['purpose']=$request->input('purpose');

DB::table('patient_appoint')

->where('patient_appoint.aid','=',$request->input('id'))

->update(['appoint_number'=>$app['appoint_number'],'reg_date'=>$app['reg_date'],'reg_number'
=>$app['reg_number'],'patient_name'=>$app['patient_name'],'age'=>$app['age'],

'dob'=>$app['dob'],'address'=>$app['address'],'location'=>$app['location'],'mobile'=>$app['mobil
e'],'docter_name'=>$app['docter_name'],

'app_date'=>$app['app_date'],'app_time'=>$app['app_time'],'status'=>$app['status'],'purpose'=>$a
pp['purpose']]);

return redirect('patient_appoint');

61
}

public function patient_appoint_delete($id){

DB::table('patient_appoint') ->where('patient_appoint.aid','=',$id)

->update(['status'=>0]);

return redirect('patient_appoint');

Patient Appointment Model

Patient_appointment.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

use DB;

class Patient extends Model

protected $pat = 'patient_registration';

protected $disease='patient_disease';

protected $medicine='patient_medicine';

protected $allergies='patient_allergies';

protected $history='patient_history';

62
protected $appointment='patient_appoint';

public $timestamps = false;

protected $fillable = array('group');

public function registerPatient($pat) {

$id=DB::table($this->pat)->insertGetId($pat);

return $id;

public function registerDisease($dis){

$id=DB::table($this->disease)->insertGetId($dis);

return $id;

public function registerMedicine($med){

$id=DB::table($this->medicine)->insertGetId($med);

return $id;

public function registerAllergies($dis){

$id=DB::table($this->allergies)->insertGetId($dis);

return $id;

public function registerHistory($med){

63
$id=DB::table($this->history)->insertGetId($med);

return $id;

public function registerAppointment($med){

$id=DB::table($this->appointment)->insertGetId($med);

return $id;

64

You might also like