Project Report
On
Doctor Appointment System
Project Document
By
Report Index
Acknowledgement
Abstract
Introduction
Purpose
Objectives
Requirement Specification (Software and Hardware Specification)
Feasibility analysis
Analysis and Design (Use case, Er, Class, MySQL Tables Schema DFD Diagram)
Implementation and System Testing
Evaluation
Future Enhancement
Conclusion
Bibliography
Acknowledgement
The success and final outcome of this project required a lot of guidance
and assistance from many people and I am extremely privileged to have
got this all along the completion of my project. All that I have done is only
due to such supervision and assistance and I would not forget to thank
them.
I respect and thank Mr./Ms. [NAME 1], for providing me an opportunity
to do the project and giving us all support and guidance which made me
complete the project duly. I am extremely thankful to [her/him] for
providing such a nice support and guidance.
I owe my deep gratitude to our project guide [NAME 2], who took keen
interest on our project work and guided us all along, till the completion of
our project work by providing all the necessary information for
developing a good project.
I heartily thank our internal project guide, [Name 3], [Position] ,
[Department] for her/his guidance and suggestions during this project
work.
I am thankful to and fortunate enough to get constant encouragement,
support and guidance from all Teaching staffs of [Department name]
which helped us in successfully completing our project work.
----------------------
Abstract
“Doctor Appointment System” is a web based application which provides
patients or any user and easy way of booking a doctor’s appointment
online. This is a web based application that overcomes the issue of
managing and booking appointments according to user’s choice or
demands. The task sometime become very tedious for the compounder
or doctor himself in manually allotting appointments for the users as per
their availability. Hence this project offers an effective solution where
user can view various booking slots available select the preferred date
and time.
The main objective of “Doctor Appointment Management System”
project is to providing easier doctor appointment and gets appointment
online which save lots of time.
Introduction
Introduction:-
“Doctor Appointment System is a web-based technology that will manage
to automate the existing manual system by the help of computerized
equipment’s and full-fledged computer software, so that their valuable
data/information can be stored for a longer period with easy
accessing and manipulation of the same. Basically the project
describes how to manage for good performance and better services for
the clients. This automatic system delivers data processing in very high
speed in systematic manner. Vision of this project is to create doctor
patient handling management system that will help patients to book
doctor appointment and fulfil their prospects.
In Doctor Appointment Management System we use Python using Django
framework and MySQL database. This project has three modules i.e.,
admin, doctor and user.
Admin Module
1. Dashboard: In this section, admin can briefly view the total doctor
registered and total specialization.
2. Specializations: In this section, admin can manage specialization
(Add/Update/Delete).
3. Doctor List: In this section, admin can view doctor list and their
appointments.
4. Search Doctor: In this section, admin can search doctor on the basis
of their mobile number.
5. Doctor Reg Report: In this section, admin can generate between
date reports of doctor registration.
6. Website Page: In this section, admin can manage website about us
and contact us page.
Doctor Module
1. Dashboard: In this section, doctor can briefly view the total number of
the new appointment, total approved appointment, total cancelled
appointment and completed appointments
2. Appointment: In this section, doctor views the appointment details
and they have also the right to change application status according to
current status.
3. Patient List: In this section, doctor can check their final appointments
also prescribe medicine and recommend the test.
4. Appointment Completed: In this section, doctor can view their
completed appointments.
3. Reports: In this section doctor can view the appointment details in a
particular period.
4. Search: In this section, doctor can search appointment with the help of
user appointment number/Name
Doctor can also update his profile, change the password and recover the
password.
User Module (User not need to register)
1. Home Page: In this section, user can view the welcome page of the
web application.
2. Book: In this section, user can sent the appointment request.
3. Check Appointment: In this section, user can search appointment with
the help of user appointment number/Name
Purpose
We here propose a Doctor Appointment System that helps doctors in
their work and also patients to book doctor appointments and view
medical progress. The system allows doctors to manage their booking
slots online. Patients are allowed to book appointment and reserve the
appointment with required doctor. The system manages the appointment
data for multiple doctors for various date and times. Each time a user
visits a doctor his/her medical entry is stored in the database by doctor.
So, we can easily take the appointment of doctor from any place, if you
have internet. This project is an effort to develop a platform where the
users of this portal say doctors, patients and the administrator can
communicate.
Objectives
The main objective of this project is to manage the details of doctor,
appointment, patient, booking, Doctor Schedule. It manages all the
information about doctor, doctor appointments, doctor schedule. The
project is totally built at administrative end and thus only the
administrator is guaranteed the access. The purpose of the project is to
built an application program to reduce the manual working for manage
the doctor, appointment , patient. It tracks all the details about doctor
schedule, patient, booking. Functionalities provided by Future scope of
online doctor appointment:
• Provides the searching facilities based various factors, such as doctor
schedule, patient, booking, doctor.
• It tracks all the details about doctor schedule, patient, booking etc.
• Manage the information of appointment.
• To increase efficiency of managing the doctor appointment.
• Manage the information of doctor.
• It deals with monitoring the transaction of appointment system.
• Manage the information of booking.
• Shows the information and description of doctor, patient.
• Integration of all record of doctor schedule.
Requirement Specification
Hardware Configuration:
Client Side:
MfgdfRA RAM 512 MB
Hard disk 10 GB
Processor 1.0 GHz
Server side:
RAM 1 GB
Hard disk 20 GB
Processor 2.0 GHz
Software Requirement:
Client Side:
Google Chrome or any
Web Browser compatible browser
Operating System
Windows or any equivalent OS
Server Side:
Web Server APACHE
Server side Language Python
Database Server MYSQL
Google Chrome or any
Web Browser compatible browser
Operating System Windows or any equivalent OS
Scripting Language Java Script
IDE PyCharm
Framework Django
APACHE
The Apache HTTP Server Project is an effort to develop and maintain an
open-source HTTP server for modern operating systems including UNIX
and Windows. The goal of this project is to provide a secure, efficient and
extensible server that provides HTTP services in sync with the current
HTTP standards.
The Apache HTTP Server ("httpd") was launched in 1995 and it has been
the most popular web server on the Internet since April 1996. It has
celebrated its 20th birthday as a project in February 2015.
Python
Python is an interpreter, object-oriented, high-level programming
language with dynamic semantics. Its high-level built in data structures,
combined with dynamic typing and dynamic binding, make it very
attractive for Rapid Application Development, as well as for use as a
scripting or glue language to connect existing components together.
Python's simple, easy to learn syntax emphasizes readability and
therefore reduces the cost of program maintenance. Python supports
modules and packages, which encourages program modularity and code
reuse. The Python interpreter and the extensive standard library are
available in source or binary form without charge for all major platforms,
and can be freely distributed.
Often, programmers fall in love with Python because of the increased
productivity it provides. Since there is no compilation step, the edit-test-
debug cycle is incredibly fast. Debugging Python programs is easy: a bug
or bad input will never cause a segmentation fault. Instead, when the
interpreter discovers an error, it raises an exception. When the program
doesn't catch the exception, the interpreter prints a stack trace. A source
level debugger allows inspection of local and global variables, evaluation
of arbitrary expressions, setting breakpoints, stepping through the code a
line at a time, and so on. The debugger is written in Python itself,
testifying to Python's introspective power. On the other hand, often the
quickest way to debug a program is to add a few print statements to the
source: the fast edit-test-debug cycle makes this simple approach very
effective.
Django
What is Django?
Django is a Python framework that makes it easier to create web sites
using Python.
Django takes care of the difficult stuff so that you can concentrate on
building your web applications.
Django emphasizes reusability of components, also referred to as DRY
(Don't Repeat Yourself), and comes with ready-to-use features like login
system, database connection and CRUD operations (Create Read Update
Delete).
Django is especially helpful for database driven websites.
How does Django Work?
Django follows the MVT design pattern (Model View Template).
Model - The data you want to present, usually data from a database.
View - A request handler that returns the relevant template and
content - based on the request from the user.
Template - A text file (like an HTML file) containing the layout of the
web page, with logic on how to display the data.
Model
The model provides data from the database.
In Django, the data is delivered as an Object Relational Mapping (ORM),
which is a technique designed to make it easier to work with databases.
The most common way to extract data from a database is SQL. One
problem with SQL is that you have to have a pretty good understanding of
the database structure to be able to work with it.
Django, with ORM, makes it easier to communicate with the database,
without having to write complex SQL statements.
The models are usually located in a file called [Link].
View
A view is a function or method that takes http requests as arguments,
imports the relevant model(s), and finds out what data to send to the
template, and returns the final result.
The views are usually located in a file called [Link].
Template
A template is a file where you describe how the result should be
represented.
Templates are often .html files, with HTML code describing the layout of a
web page, but it can also be in other file formats to present other results,
but we will concentrate on .html files.
Django uses standard HTML to describe the layout, but uses Django tags
to add logic:
<h1>My Homepage</h1>
<p>My name is {{ firstname }}.</p>
The templates of an application is located in a folder named templates.
URLs
Django also provides a way to navigate around the different pages in a
website.
When a user requests a URL, Django decides which view it will send it to.
This is done in a file called [Link].
So, what is Going On?
When you have installed Django and created your first Django web
application, and the browser requests the URL, this is basically what
happens:
1. Django receives the URL, checks the [Link] file, and calls the view
that matches the URL.
2. The view, located in [Link], checks for relevant models.
3. The models are imported from the [Link] file.
4. The view then sends the data to a specified template in
the template folder.
5. The template contains HTML and Django tags, and with the data it
returns finished HTML content back to the browser.
Django can do a lot more than this, but this is basically what you will learn
in this tutorial, and are the basic steps in a simple web application made
with Django.
Django History
Django was invented by Lawrence Journal-World in 2003, to meet the
short deadlines in the newspaper and at the same time meeting the
demands of experienced web developers.
Initial release to the public was in July 2005.
Latest version of Django is 4.0.3 (March 2022).
Django Admin
Django Admin is a really great tool in Django, it is actually a CRUD* user
interface of all your models!
It is free and comes ready-to-use with Django:
What is a database?
In Django, there is inbuilt database known as dbsqlite3.
SQLite is embedded relational database management system. It is self-
contained, server less, zero configuration and transactional SQL database
engine.
SQLite is different from other SQL databases because unlike most other
SQL databases, SQLite does not have a separate server process. It reads
and writes directly to ordinary disk files. A complete SQL database with
multiple tables, indices, triggers, and views, is contained in a single disk
file.
MYSQL
• MYSQL is a database server
• MYSQL is ideal for both small and large applications
• MYSQL supports standard SQL
• MYSQL compiles on a number of platforms
• MYSQL is free to download and use
• How to access MySQL:
[Link]
Feasibility analysis
The analysis of the requirement has lead to a conclusion that the project
is feasible with respect to time and cost. The data collection from the field
is assured by the client to provide. The technology used to develop is
almost Open Source, therefore less cost for implementation and
maintenance will be involved. A feasibility study is an analysis used in
measuring the ability and likelihood to complete a project successfully
including all relevant factors. It must account for factors that affect it such
as economic, technological and time factors. It is used to assess the
strengths and weaknesses of a proposed project and present directions of
activities which will improve a project and achieve desired results.
Economic feasibility
The purpose of economic feasibility assessment is to determine the
positive economic benefits to the organization that the proposed system
will provide. The assessment typically involves a cost/benefits analysis.
Technical feasibility
Technical analysis is a trading tool employed to evaluate securities and
attempt to forecast the future movement. I am using java language and
other tools like net beans to develop the software.
Operational feasibility
Operational feasibility is a measure of how well proposed system solves
the problems, and takes advantage of the opportunities identified during
scope definition and how it satisfies the requirements analysis phase of
the system development.
Analysis and Design
Analysis:
In present all doctor appointment work done on the paper. The whole
year data is stored in the registers. We can’t generate reports as per our
requirements because its take more time to calculate report of doctor
appointments.
Disadvantage of present system:
• Not user friendly: The present system not user friendly because
data is not stored in structure and proper format.
• Manual Control: All report calculation is done manually so there is a
chance of error.
• Lots of paper work: Visitors maintain in the register so lots of paper
require storing details.
• Time consuming
Design Introduction:
Design is the first step in the development phase for any techniques and
principles for the purpose of defining a device, a process or system in
sufficient detail to permit its physical realization.
Once the software requirements have been analyzed and specified the
software design involves three technical activities - design, coding,
implementation and testing that are required to build and verify the
software.
The design activities are of main importance in this phase, because in this
activity, decisions ultimately affecting the success of the software
implementation and its ease of maintenance are made. These decisions
have the final bearing upon reliability and maintainability of the system.
Design is the only way to accurately translate the customer’s
requirements into finished software or a system.
Design is the place where quality is fostered in development. Software
design is a process through which requirements are translated into a
representation of software. Software design is conducted in two steps.
Preliminary design is concerned with the transformation of requirements
into data
UML Diagrams:
Actor:
A coherent set of roles that users of use cases play when interacting
with the use `cases.
Use case:A description of sequence of actions, including variants, that a
system performs that yields an observable result of value of an actor.
UML stands for Unified Modeling Language. UML is a language for
specifying, visualizing and documenting the system. This is the step while
developing any product after analysis. The goal from this is to produce a
model of the entities involved in the project which later need to be built.
The representation of the entities that are to be used in the product being
developed need to be designed.
USECASE DIAGRAMS:
Use case diagrams model behavior within a system and helps the
developers understand of what the user require. The stick man
represents what’s called an actor.
Use case diagram can be useful for getting an overall view of the system
and clarifying who can do and more importantly what they can’t do.
Use case diagram consists of use cases and actors and shows the
interaction between the use case and actors.
• The purpose is to show the interactions between the use case
and actor.
• To represent the system requirements from user’s perspective.
• An actor could be the end-user of the system or an external
system.
USECASE DIAGRAM: A Use case is a description of set of sequence of
actions. Graphically it is rendered as an ellipse with solid line including
only its name. Use case diagram is a behavioral diagram that shows a set
of use cases and actors and their relationship. It is an association
between the use cases and actors. An actor represents a real-world
object. Primary Actor – Sender, Secondary Actor Receiver.
Use Case Diagrams:
Admin
Sign In
Dashboard
Manage Specialization
View Registered Doctor
Details
Update Website Page
Generate Doctor Reports
Update Profile
Change Password
Password Recovery
Doctor
Sign In/Signup
Dashboard
Manage Appointment
Search Appointment
Generate Reports
Update Profile
Change Password
Password Recovery
User
Visit Website
Book Appointment
Check Appointment Status
View Contact
View about Us
Class Diagram:
A description of set of objects that share the same attributes operations,
relationships, and semantics.
ER Diagram:
The Entity-Relationship (ER) model was originally proposed by Peter in
1976 [Chen76] as a way to unify the network and relational database
views. Simply stated the ER model is a conceptual data model that views
the real world as entities and relationships. A basic component of the
model is the Entity-Relationship diagram which is used to visually
represent data objects. Since Chen wrote his paper the model has been
extended and today it is commonly used for database design for the
database designer, the utility of the ER model is:
• It maps well to the relational model. The constructs used in the ER
model can easily be transformed into relational tables.
• It is simple and easy to understand with a minimum of training.
Therefore, the model can be used by the database designer to
communicate the design to the end user.
• In addition, the model can be used as a design plan by the database
developer to implement a data model in specific database
management software.
ER Notation
There is no standard for representing data objects in ER diagrams. Each
modeling methodology uses its own notation. The original notation used
by Chen is widely used in academics texts and journals but rarely seen in
either CASE tools or publications by non-academics. Today, there are a
number of notations used; among the more common are Bachman,
crow's foot, and IDEFIX.
All notational styles represent entities as rectangular boxes and
relationships as lines connecting boxes. Each style uses a special set of
symbols to represent the cardinality of a connection. The notation used in
this document is from Martin. The symbols used for the basic ER
constructs are:
• Entities are represented by labeled rectangles. The label is the name
of the entity. Entity names should be singular nouns.
• Relationships are represented by a solid line connecting two
entities. The name of the relationship is written above the line.
Relationship names should be verbs
• Attributes, when included, are listed inside the entity rectangle.
Attributes which are identifiers are underlined. Attribute names
should be singular nouns.
• Cardinality of many is represented by a line ending in a crow's foot.
If the crow's foot is omitted, the cardinality is one.
Existence is represented by placing a circle or a perpendicular bar on the
line. Mandatory existence is shown by the bar (looks like a 1) next to the
entity for an instance is required. Optional existence is shown by placing a
circle next to the entity that is optional.
ER Diagram
MySQL Data Tables
Doctor Appointment System(DAS) contain 14 tables(In this MySQL 5 table is
customized and 9 table made by default in django))
Doctor Table:(Table name is dasapp_doctorreg)
This store doctor personal and login details.
Specialization Table(Table name is dasapp_specialization)
This table stores the specialization of doctor.
Appointment Table: (Table name is dasapp_appointment)
This table stores the details of appointment and doctor remark.
Custom User Table(Table name is dasapp_customuser)
This table store the login details of doctor’s and admin.
authentication_customuser_groups table Structure : This table by default table.
authentication_customuser_user_permissions table Structure : This table by
default table.
auth_group table Structure : This table in Django is part of the Django
authentication system and is used to represent groups of users.
auth_group_permissions table Structure : This table in Django is a part of the
permission system and is used to manage the relationship between user groups and
permissions.
auth_permission table Structure : This table in Django is used to store information
about the permissions defined.
django_admin_log table Structure : This table is used to store records of actions
taken by administrators or users through the Django admin interface.
django_content_type table Structure : This table in Django is a system table that is
used to store information about each model (database table) in your Django project.
django_migrations table Structure : This table table is part of the database schema
and is used to keep track of which migrations have been applied to the database.
django_session table Structure : This table store the session data for user.
Data Flow Diagrams
A Data Flow Diagram (DFD) is a traditional visual representation of the
information flows within a system. A neat and clear DFD can depict the
right amount of the system requirement graphically. It can be manual,
automated, or a combination of both.
It shows how data enters and leaves the system, what changes the
information, and where data is stored.
The objective of a DFD is to show the scope and boundaries of a system
as a whole. It may be used as a communication tool between a system
analyst and any person who plays a part in the order that acts as a
starting point for redesigning a system. The DFD is also called as a data
flow graph or bubble chart.
The following observations about DFDs are essential:
1. All names should be unique. This makes it easier to refer to
elements in the DFD.
2. Remember that DFD is not a flow chart. Arrows is a flow chart that
represents the order of events; arrows in DFD represents flowing
data. A DFD does not involve any order of events.
3. Suppress logical decisions. If we ever have the urge to draw a
diamond-shaped box in a DFD, suppress that urge! A diamond-
shaped box is used in flow charts to represents decision points with
multiple exists paths of which the only one is taken. This implies an
ordering of events, which makes no sense in a DFD.
4. Do not become bogged down with details. Defer error conditions
and error handling until the end of the analysis.
Standard symbols for DFDs are derived from the electric circuit diagram
analysis and are shown in fig:
Circle: A circle (bubble) shows a process that transforms data inputs into
data outputs.
Data Flow: A curved line shows the flow of data into or out of a process
or data store.
Data Store: A set of parallel lines shows a place for the collection of data
items. A data store indicates that the data is stored which can be used at
a later stage or by the other processes in a different order. The data store
can have an element or group of elements.
Source or Sink: Source or Sink is an external entity and acts as a source of
system inputs or sink of system outputs.
Implementation and System Testing
After all phase have been perfectly done, the system will be implemented
to the server and the system can be used.
System Testing
The goal of the system testing process was to determine all faults in our
project .The program was subjected to a set of test inputs and many
explanations were made and based on these explanations it will be decided
whether the program behaves as expected or not. Our Project went through two
levels of testing
1. Unit testing
2. Integration testing
UNIT TESTING
Unit testing is commenced when a unit has been created and effectively
reviewed .In order to test a single module we need to provide a
complete environment i.e. besides the section we would require
• The procedures belonging to other units that the unit under test
calls
• Non local data structures that module accesses
• A procedure to call the functions of the unit under test with
appropriate parameters
1. Test for the admin module
• Testing admin login form-This form is used for log in of
administrator of the system. In this form we enter the username
and password if both are correct administration page will open
otherwise if any of data is wrong it will get redirected back to the
login page and again ask the details.
• Report Generation: admin can generate report from the main
database.
INTEGRATION TESTING
In the Integration testing we test various combination of the project
module by providing the input.
The primary objective is to test the module interfaces in order to confirm
that no errors are occurring when one module invokes the other module.
Evaluation
Home Page
Search Appointment
Book Appointment
Admin Panel
Login Page
Dashboard
Profile
Change Password
Add Specialization
Manage Specialization
Update Specialization
Registered Doctor List
View Doctor Details
Doctor Appointment List
Search Doctor
Generate Report
Webpage Details
Doctor Panel
Signup
Login Page
Dashboard
Profile
Change Password
New Appointment
View New Appointment Details
Approved Appointment
View Approved Appointment Details
Patient list
View Patient List Details
Appointment Completed
Appointment Completed Details
Between Date Report of Appointment
Search Appointment
Future Enhancement
I have tried to design the software in such a way that the user may not
have any difficulty in using this system and further expansion is also
possible. New requirements will be added and risk will be analyzed in
every phase until the requirement of user will not be fulfilled. The most
priority will be given to keep confidential data secure and easy and simple
for use.
The further enhancements which can be made in the system are:
Any requirement that will make system easy to use or make a system
secure, these requirement will be add using Spiral Model. Other
requirement related to government or municipality will be added when
required.
For the identity of user and for their data integrity, digital signature can
be added to this system.
For the identity of user and for verification, image of user can be added to
this system.
There will be provision of filling form in multiple languages.
A great concern will be given on frontend design which will make user to
use system easily and enjoy while using this system.
Conclusion
This Application provides a computerized version of doctor appointment
which will benefit the people who wants to take appointment with
doctor online.
It makes entire process online and can generate reports. It has a facility
of doctor login where doctor can manage user appointment and
generate appointment report.
The Application was designed in such a way that future changes can be
done easily. The following conclusions can be deduced from the
development of the project.
• Automation of the entire system improves the productivity.
• It provides a friendly graphical user interface which proves to
be better when compared to the existing system.
• It gives appropriate access to the authorized users depending
on their permissions.
• It effectively overcomes the delay in communications.
• Updating of information becomes so easier.
• System security, data security and reliability are the striking
features.
• The System has adequate scope for modification in future if it
is necessary.
Bibliography
For Python and Django
[1] Django homepage. [Link]
[2] Python documentation. [Link]
[3] Django(web framework). [Link]
[4] Django documentation. [Link]
[5] Python(programming language). [Link]
[6]Books: Web Development with Django by Ben Shaw, Saurabh,
Django 4 By Example by Antonio Mele
For MySQL
[Link]
[Link]
For XAMPP
[Link]