Doctor Appointment Booking System Final
Doctor Appointment Booking System Final
APPOINTMENT
BOOKING
SYSTEM
Software Engineering
Supervisor: Dr. Hemin Ibrahim
OCT 2024
Prepared by:
Israa khalid Mustafa
Avin Sabri Hassan
Yara Abdulkhalq Jabbar
Hozan Sadi Mamand
Table of Contents
Abstract.......................................................................................................................................................1
Introduction.................................................................................................................................................2
Problem Statement......................................................................................................................................3
Literature Review........................................................................................................................................4
Project Model..............................................................................................................................................5
Introduction.............................................................................................................................................5
The Scrum Model...................................................................................................................................5
Comparison between Agile and Traditional............................................................................................8
Why Scrum Was Chosen.......................................................................................................................10
Requirements............................................................................................................................................11
Functional requirements........................................................................................................................11
Non-functional requirements.................................................................................................................13
UML Diagrams.........................................................................................................................................15
Use Case...............................................................................................................................................15
Use Case............................................................................................................... 15
Use case Diagram.................................................................................................... 18
Sequence Diagram................................................................................................................................19
System Sequence Diagram....................................................................................................................20
Design.......................................................................................................................................................21
Wireframe Diagram..............................................................................................................................21
Entity-Relationship Diagram (ERD).....................................................................................................23
Architecture Diagram............................................................................................................................24
Implementation.........................................................................................................................................25
Programming languages........................................................................................................................25
System type (Offline vs online).............................................................................................................26
API........................................................................................................................................................27
Communication and presentation tools.....................................................................................................28
YouTube Channel..................................................................................................................................28
Slack Group..........................................................................................................................................29
GitHub Account....................................................................................................................................30
Gantt Chart................................................................................................................................................31
Last Update of Gantt chart....................................................................................................................32
Last update of Gantt chart.....................................................................................................................32
Last update of Gantt chart For Task (4,5)..............................................................................................33
Conclusion................................................................................................................................................35
References.................................................................................................................................................36
List of Figures
Figure 1-Scrum Model........................................................................................7
Figure 2-Comparison Between Agile and Traditional..............................................................9
Figure 3-Use case diagram for doctor appointment system......................................................18
Figure 4-Sequence Diagram for doctor appointment system....................................................19
Figure 5-System Sequence Diagram for doctor appointment system...........................................20
Figure 6:wireframe diagram for doctor appointment system....................................................22
Figure 7:ER Diagram for doctor appointment system...........................................................23
Figure 8:Architecture Diagram for doctor appointment system................................................24
Figure 9-Screenshot of YouTube...................................................................................28
Figure 10-Screenshot of Slack.....................................................................................29
Figure 11-Screenshot of GitHub...................................................................................30
Figure 12-screenshot of Gantt chart............................................................................31
Figure 13-Last Update of Gantt Chart for MIDTERM..........................................................32
Figure 14-Last update of Gantt Char for Task 3.................................................................32
Figure 15-Last update of Gantt Chart for Task 4................................................................33
Figure 16-Last update of Gantt Chart for Task 5................................................................33
Figure 17-Final update of Gantt chart............................................................................34
List of Tables
Table 1-Advantages and Disadvantages of Scrum model..........................................................6
Table 2- Functional Requirement for Doctor Appointment system.............................................12
Table 3-Non-Functional Requirement for Doctor Appointment System........................................14
Table 4-use case-1 for doctor appointment system...............................................................16
Table 5-Use Case-2 for doctor appointment system..............................................................17
Abstract
The project aims to develop a website platform for patients to book appointments with Doctors
for both physical and mental health issues. Kurdistan doesn’t currently have such a system,
which makes it difficult for people to make appointments without going to clinics. Patients can
schedule, change times, or cancel appointments at any time by using this system. show treatment
schedules and ask doctors for advice via chat or live conversation. It also helps doctors organize
their schedules and do less paperwork. Key features include a patient registration page, doctor
listings, chat, reminder notifications, online payment, and an admin dashboard for managing
users and doctors. This system improves healthcare access and communication, benefiting both
patients and doctors. The system will be developed by using Agile model especially the Scrum
method to improve the project based on patient and doctor’s feedback.
Keywords: Web-Based System, SMS and Email Notifications, Online Appointment Booking,
Doctor-Patient Communication, Doctors Appointment Scheduling
1
Introduction
2
Problem Statement
3
Literature Review
Researchers have done a lot of work on online appointment booking systems looking to make
healthcare more accessible and efficient traditional methods of scheduling doctor appointments
usually mean patients waiting in line or making phone calls, both of which can be inconvenient
and take a lot of time. Recent studies are now suggesting web-based solutions to simplify things
for both patients and healthcare providers
For example, Avhale et al. (2018) conducted a study in which patients can see open slots, select
the time that works best for them, and even receive appointment reminders online. Built on
ASP.NET and SQL, this setup enables patients to reschedule or cancel appointments as needed.
It also computes monthly earnings for doctors, assisting them with administrative tasks that they
would otherwise have to do manually. [3]
Another example is Gumah's "zer0Clock" project from 2018. This system, designed to address
queuing issues in Ghana, allows users to schedule appointments with healthcare providers via an
online platform. It even includes things like live chat video consultations and Google Maps
tracking to help people find locations easily by making virtual consultations possible.
“zer0Clock” aims to save patients time and avoid crowded clinics, which is a big help in areas
with long wait times and where travel can be difficult. [4]
Overall, these studies reveal a clear trend toward using digital platforms to make the doctor
appointment process smoother. These systems give patients greater convenience while cutting
down on the administrative work for providers. By letting patients book appointments online,
they help make healthcare more accessible and efficient for everyone involved.
4
Project Model
Introduction
Software development models are structured frameworks used to define the steps, phases, and
activities required to develop software. These models serve as a guide for organizing, planning,
and managing the software creation process. They help ensure that the work is done efficiently
and produces high-quality results.Often referred to as part of the Software Development Life
Cycle (SDLC), these models provide a simplified representation of the software development
process. Each model combines the stages of development in a specific way and determines the
order in which they are executed. Selecting the right model is critical because there is no
universal model suitable for all projects. The choice depends on factors such as the requirements
of the customer, the environment where the software will be used, and the type of software being
developed.
Common models include Waterfall, Prototyping, Spiral, and Agile approaches, each suited to
different project types and needs. By using the appropriate model, teams can deliver software
that meets expectations while adapting to the unique challenges of each project.
Scrum is a lightweight framework that helps people, teams and organizations generate value
through adaptive solutions for complex problems. Scrum is used to get work done in short,
organized cycles called Sprints usually between (1-2 weeks). The team meets daily for quick
check-ins (15 minutes) to discuss progress. At the end of each Sprint, they review the work, get
feedback, and discuss improvements. Scrum is flexible, so if project requirements change, the
team can easily adjust. It’s a collaborative, repeatable way of working that allows for continuous
feedback and improvements.
A Scrum team has three main roles: the Product Owner, the Developers, and the Scrum
Master. The Product Owner: manages the business side of the project, working with
stakeholders (people interested in the project) and the team to ensure the project meets clients'
needs. They handle the product backlog (a list of tasks) and focus on maximizing the project’s
value. Developers: are the team members who build and support the product, including
programmers, designers, and researchers, and they organize their work together. The Scrum
Master: guides the team in following Scrum practices, helping solve problems and keeping the
team organized, but does not
manage people directly. In Scrum, the team is self-organized, meaning they work together
without a traditional project manager. [1]
The term Scrum in software development was introduced by Hirotaka Takeuchi and
5
Ikujiro Nonaka in a 1986 paper. In the early 1990s, Ken Schwaber and Jeff Sutherland
developed Scrum separately and then combined their ideas into a single framework. They
officially introduced Scrum in 1995 and contributed to the Agile
Manifesto in 2001. Schwaber later founded Scrum Alliance in 2002 and Scrum.org in
2009. They also published The Scrum Guide, with the latest update in 2020. [1]
6
Figure 1-Scrum Model
7
Comparison between Agile and Traditional
In software development, two popular approaches are Agile and Traditional methodologies. Each
has unique features, strengths, and weaknesses, making them suitable for different project types
and environments.
Structure and Flexibility: Traditional methods, often known as heavyweight or waterfall
methods, are structured and follow a step-by-step approach. They begin with gathering
requirements, then move to design, coding, testing, and finally deployment. This sequence is
strictly followed, making it challenging to go back and make changes. In contrast, Agile is highly
flexible and uses an iterative approach, where the project is broken into small, manageable
sections called "sprints." Each sprint focuses on creating a usable part of the software, allowing
teams to adapt to changes and feedback at every stage.
Documentation and communication: Traditional methodologies emphasize detailed
documentation and planning before starting the project. This method can be beneficial for
projects that require high levels of control and predictability, but it can also slow down the
process. Agile methodologies prioritize direct communication and minimal documentation,
allowing teams to focus more on actual coding and customer feedback. In Agile, the team
collaborates closely with customers and makes decisions based on real-time insights.
Customer Involvement: In the Traditional model, customer involvement is generally limited to
the early stages, like requirements gathering and final delivery. This can sometimes lead to a
product that doesn’t meet all the customer’s needs. Agile, however, involves the customer
throughout the development process. Regular feedback sessions help ensure that the product
meets customer expectations and can evolve as their needs change.
Project Size and Suitability: Traditional methodologies work well for large-scale projects with
well-defined requirements, such as government or safety-critical applications. Agile, on the other
hand, is highly effective for small to medium-sized projects or projects with changing
requirements. Agile’s flexibility makes it ideal for dynamic projects where requirements evolve
over time.
Risk Management: Traditional methodologies aim to control risks through extensive upfront
planning and by limiting changes once the project begins. Agile takes a different approach by
embracing change. Each sprint is an opportunity to identify risks early, so issues can be
addressed incrementally, reducing the chances of major setbacks at the end.
In summary, Traditional methodologies offer stability and control but lack flexibility, while Agile
is adaptive and customer-focused but may struggle with large, complex projects. Choosing the
right methodology depends on the project's size, complexity, and how much change is expected
during development. [2]
8
Figure 2-Comparison Between Agile and Traditional
9
Why Scrum Was Chosen
The doctor appointment booking system is built with the Scrum framework, a key element of the
Agile methodology known for its flexibility and step-by-step approach. Scrum divides the
project into short, focused work phases known as “sprints,” typically lasting from one to two
weeks. Each sprint focuses on specific tasks drawn from a list of priorities called a product
backlog, which includes all the features needed for the final product. The system will be built
and implemented in phases, focusing on key features such as user enrollment, appointment
booking, physician details, notifications and operator control panels. At the beginning of each
sprint, the team has a short planning session to choose tasks and set goals, under the guidance of
the Product Owner and Scrum Master. The Scrum Master, a key role in overseeing the Scrum
process, guides daily stand-up meetings where team members give quick updates, discuss
progress and address challenges. This daily assessment ensures alignment and team members can
address issues quickly. At the end of each sprint, the team conducts a quick review in which they
present complete features (such as a user registration page or booking tool) to stakeholders in
order to get feedback, enhance transparency and facilitate adjustments in future sprints. After the
sprint, the team will conduct a retrospective interview to assess successes and areas for
improvement in preparation for the next sprint. Scrum is ideal for this project as it can easily
adapt to changing requirements, such as integrating new features based on user feedback. If users
suggest notifications for canceled appointments, this approach can easily attract more attention.
This system allows for continuous upgrades and guarantees that it meets the needs of patients,
physicians and clinic managers. The project starts with creating initial features, then moves on to
designing more tasks for future mini-games. The perfect blend of personalization and flexibility,
along with ongoing team engagement and collaboration, is essential to creating a reliable
appointment booking system that optimizes patient care within healthcare settings.
10
Requirements
This section provides fundamental knowledge about the requirements for the successful
development of a web system project. Requirements are typically divided into two types:
functional requirements, which define what the system must do, and non-functional
requirements, which refer to quality standards and constraints that the system must meet to be
usable, reliable, and secure.
Functional requirements
Functional requirements are the important or functional features that developers must include so
that users can complete their tasks. These requirements define the expected behavior of the
system in the given scenario, ensuring clarity and understanding for both the development team
and stakeholders.
ID Requirement Type
1.1 Users can register with personal details (name, email, password). Mandatory
1.3 Users can log in securely using their email and password. Mandatory
2 Profile Management
3 Appointment Scheduling
11
ID Requirement Type
3.1 Patients can view a doctor's availability and book appointments. Mandatory
6 Payment Processing
7 Admin Dashboard
8.1 Assign roles (patient, doctor, admin) with specific permissions. Mandatory
10 In-App Notifications
10.1 Additional notifications sent via mobile app or web interface. Optional
12
Non-functional requirements
ID Requirement
1 User Interface
1.1 The interface should be simple, easy to use, and visually appealing on all devices.
1.4 Comply with accessibility standards (WCAG) to support users with disabilities.
2 Performance
2.1 Web pages should be loaded in 2 seconds for a smooth user experience.
3 Availability
3.1 Make sure the website is available at least 99.9% of the time.
4 Strength
It supports large amounts of data without crashing (handling over a million records
4.1 in the database).
4.2 Validate user input and handle errors nicely (email format checks).
5 Security
Encrypt sensitive data, including user personal information and any uploaded
5.1 documents.
13
ID Requirement
Implement role-based access control to restrict access to specific parts of the
5.2 website.
6 Scalability
Designing the website to support a large number of users and expanding future
6.1 features.
7 Backup Management
7.1 Schedule regular automatic backups of website data to prevent data loss.
8 Error Handling
UML Diagrams
14
The Unified Modeling Language (UML) is a visual representation of how a system works and
how to design it. Uses diagrams to explain the structure, behavior, and interactions of a system.
UML simplifies communication, allowing developers and stakeholders to better understand
complex systems. UML is useful for system design, analysis, and documentation, allowing
problems to be identified and improved. It is commonly used in software development to ensure
clear and effective communication among teams [5].
Use Case
Use Case
A use case describes how a user interacts with a system to achieve a specific goal, with emphasis
on what the system does from the user's perspective. It specifies the steps the user will take, how
the system will respond, and any alternate routes in case things don't go as planned. For
example, in the case of an "appointment booking" request, the patient logs in, searches for a
doctor, chooses an appointment, and the system confirms the reservation. If the space isn't
available, the system will suggest alternatives. Use cases help developers and testers build and
understand systems by documenting what they should do.
15
Use case#1 Book appointment
patient
Actor
Doctor
This case allows the patient to book an appointment with a doctor with
Description
selecting an available time based on doctor’s schedule.
Patient goes to the book review page.
The patient searches for a doctor using filters such as specialty location
or availability.
The system shows a list of matching doctors and their available time.
Basic Flow
Patients choose an available doctor and appointment.
Alternative If no doctor matches the search criteria, the system suggests alternative
doctors or appointment.
flow
16
Use case #2 Cancel or Reschedule Appointment
patient
Actor
Doctor
Basic Flow
The system prompts the patient to confirm the cancellation time during
conforms the system removes the appointment from database.
System displays available time for the same, patient selects new time and
confirms, and the system updates the appointment details.
The system sends a notification to the patient and sends an update notification
to the doctor about the ne appointment time.
Alternative flow If no appointments are found, the system display a message: “No future
appointment available.”
17
Use case Diagram
18
Sequence Diagram
A sequence diagram demonstrates how a system performs a given task by depicting the sequence
of interactions over time. It focuses on actors (users), objects (system components), and the
messages they exchange. A setup diagram aids in understanding the steps necessary to complete
tasks such as booking or rescheduling an appointment. For example, to book an appointment, the
patient logs in, searches for doctors, and selects an appointment. The system confirms the
appointment or notifies the patient if the physician is unavailable.
19
System Sequence Diagram
The system sequence diagram (SSD) focuses on the interactions between external actors (e.g.,
the patient) and the system, which is treated as a single "black box". Displays the sequence of
events, including user requests and system responses. SSDs highlight system behavior at a high
level, making them useful for understanding how features like "search for doctor" or "cancel
appointment”work.
For example, when a patient searches for a doctor, the system returns results that match. If the
patient selects an unavailable slot, the system will notify them.
20
Design
Wireframe Diagram
The wireframe for the Doctor Appointment Booking System provides a visual blueprint of the
user interface, focusing on layout, structure, and functionality. It highlights core features like
user registration, appointment scheduling, and notifications, ensuring a seamless and intuitive
experience for patients, doctors, and administrators. Aligned with Agile principles, the
wireframe enables early feedback and iterative improvements, serving as a foundation for
developing a user-friendly and efficient system.
21
Figure 6:wireframe diagram for doctor appointment system
22
Entity-Relationship Diagram (ERD)
To help control and oversee the appointment between patients and doctors, the Doctor
Appointment Booking System has been created alongside features such as issuing payment and
writing prescriptions. In this system, key entities include Doctor, Patient, Appointment,
Payment, and Prescription. Doctor entity contains the ID of the doctor, name, specialty, and time
slots available for the doctor. Patient records are limited to the patient’s name, birth date and
contact number. Appointment entities consist of the set dates of appointments, including time
stamps concerning the date and status of the appointment as well as its type which can be a
consultation or a follow up. Each Appointment can be associated with a Payment made as a
result of the services rendered.
23
Architecture Diagram
An architectural design is a plan of how the various components of a system will work together.
The doctor appointment booking system consists of five main layers. User interaction layer
Patients, doctors, and administrators can interact with the system using an HTML, CSS, and
JavaScript-based browser. The infrastructure layer, which includes a CDN, a load balancer, and a
security layer, ensures that user requests are processed quickly and securely. The backend layer,
built with PHP Laravel, handles user requests, manages authentication, logs activity, and
communicates with the rest of the system. The data layer stores critical information such as user,
time, and payment details in the MySQL database and ensures data security through backup and
restore functions. External services also include an alert system that sends updates via email or
SMS, a payment gateway for secure transactions, and analytics to monitor system performance.
This design ensures that the system is user-friendly, secure, and scalable to accommodate future
user growth.
24
Implementation
Programming languages
A programming language is used to write commands that the computer can execute. Each
programming language is designed for a specific purpose, so developers choose one according to
the needs of their projects. A simple and basic language often used in web development, artificial
intelligence and data analytics is Python. It is very popular because of the many libraries it
provides that simplify complex tasks. The Java programming language is also often used to build
large-scale applications, such as banking systems or Android apps. Because it runs on multiple
platforms, it is dependable and practical.
JavaScript is another important language for building dynamic websites. Collaborates with
HTML and CSS to develop contemporary web pages that look attractive and react well to user
actions. PHP, on the other hand, is mainly used for websites that have to manage large amounts
of data, such as appointment scheduling or user accounts. When performance is very important,
whether in games or system software, languages like C++ are used. The type of project and the
tasks the system must perform will determine which language is best.
Programming Languages Used for the Doctor Appointment System: For the backend of our
doctor appointment system, we decided to use PHP and the Laravel framework. PHP is an
excellent programming language for developing online apps because of the ease of database
connection required to store patient and appointment data. Because Laravel offers tools for
mundane activities such as user login, data management, and sending notifications, PHP has
become more streamlined and user-friendly. In addition, it has integrated security elements that
help protect private information, such as medical regimens and patient records.
JavaScript, CSS and HTML are used for the front end. To create a page that visitors view and
interact with, these languages collaborate. JavaScript adds functionality like showing doctor
availability in real-time or updating appointment calendar without loading the page, while
HTML creates the page structure and CSS makes them look good and adapt to different screen
sizes. Because of their ease of use, dependability, and suitability for developing a system that is
both practical and user-friendly, these languages were chosen.
25
System type (Offline vs online)
Web-based software operates over the internet, and the user can access the system using web
browsers without any local installation. It allows for real-time updates, storage of data in a
central location, and multi-device access. Offline or desktop software requires installation on the
user's device and may work independently of an internet connection. This ensures it will work
dependably in low- or no-internet environments. Offline software will not be updated as
immediately or be accessible universally, as web-based options are.
An online approach is more suitable for your doctor appointment booking system. The system
uses real-time communication features like notifications, live chats, and schedule updates, which
require access to the internet constantly. Besides, web-based deployment promotes accessibility
of both patients and doctors through various devices for user convenience. Maintaining an online
system is simplified by the storage and management of data in a centralized manner, thus
enabling scalability and better security of data through controls at the server side. These features
also comply with your focus on efficiency and accessibility for your project; hence, the online
approach will be ideal.
26
API
27
Communication and presentation tools
YouTube Channel
A YouTube channel was created for the doctor Appointment System project to upload videos
explaining the goals of the project and showcasing its features. This channel features content that
highlights the benefits of the system for users, including tutorials on how to schedule
appointments, access records, and communicate with doctors. This helps users understand the
capabilities of the system and how it improves access to healthcare.
Links of video
First video:
https://youtu.be/zmePrKRqiKo?si=GxeLVz0Vn3hLpx-v
second video:
https://youtu.be/dAbVYf-_OpI
28
Slack Group
Slack is a business messaging tool designed to enable teams to communicate effectively, both
internally and, in some cases, externally with partners. Widely adopted for streamlining
communication, Slack allows team members to share updates, files, and important information in
dedicated channels. Its main function is to connect people with the information they need,
making collaboration more efficient and organized.
Link:https://join.slack.com/share/
enQtODA1NTU0NTM2ODI4OC1jZWU2YzdiZmIyM2E0ZDBlNWQ0OTYyMGRjNzdhNmZhMmFiNmNlN
WYxMjRhYzM4ZDYwNDgyYzRjYWQyNDc2NGU2
29
GitHub Account
The GitHub account is designed to monitor and collaborate on the work of the Expert
Configuration Framework. The wider group can work together more effectively by involving
individual groups and a leader. GitHub allows sharing and debugging code, tracking changes,
and fixing problems. Used for recording extension records, survey work, and general
improvement preparation progress
Linke: https://github.com/DoctorAppointmentBookingSystem
30
Gantt Chart
A Gantt chart is a project management tool assisting in the planning and scheduling of projects of
all sizes. A Gantt chart was created for the doctor Appointment System project to plan and
organize tasks over time. This chart helps visualize the project timeline, showing which tasks
need to be completed and when. also tracks progress, ensuring that all team members stay on
time and that the project is completed efficiently.
31
Last Update of Gantt chart
32
Last update of Gantt chart For Task (4,5)
33
Final update of Gantt chart
34
Conclusion
A doctor appointment booking system offers a unique solution to the problems frequently faced
by patients and healthcare professionals. By transforming effect techniques into modern, web-
based platforms, this solution improves performance, reduces errors, and provides better
convenience for all users. Patients may quickly book, reschedule, or cancel appointments, while
Doctors benefit from more organized calendars and fewer administrative responsibilities.
Additionally, the system provides automatic reminders, which help reduce absenteeism rates and
enhance overall patient attendance. This streamlined approach ensures that both patients and
doctors can focus more on the quality of care rather than the logistics of managing an
appointment.
The method is built on Scrum architecture, promoting flexibility and continuous improvement
through knowledge integration at all stages of development. Secure user registration,
notifications, online payment processing, and an admin dashboard are among the key features of
the system, making it powerful and practical. Using the latest web technology ensures a scalable
and secure platform that can adapt to future requests.By filling existing gaps in appointment
management, the technology not only enhances the patient’s experience but also allows medical
practitioners to focus more on delivering excellent treatment. In conclusion, the doctor
appointment booking system is a big step forward in making healthcare services more
accessible, efficient, and user-friendly for all stakeholders.
35
References
[5] Reference: Booch, G., Rumbaugh, J., & Jacobson, I. (2005). The Unified Modeling Language User
Guide. Addison-Wesley.
[6] Song, I.-Y., Evans, M., & Park, E. K. (1995). A Comparative Analysis of Entity-Relationship
Diagrams. Journal of Computer and Software Engineering, Vol. 3, No. 4, pp. 427-459.
36