1. INTRODUCTION
The above point will describe what is the need to make this system, the problem
description in detail, about the scope of the project.
Doctors Appointment
App, all manual processes have been automated. The patient can book the appointment
on his/ her mobile phone easily without the need to visit the doctors venue. When the
appointment was booked by the common method, the patient has to go to the
clinic/hospital before time if the appointment booked was not sure. So this would
increase the waiting time of the patient as he/she has to wait in a queue for the turn to
come. Therefore, this application helps to reduce the waiting time of the patient. In the
common appointment system, the appointment is mostly booked by not keeping in mind
the preference of the patient. But in this application, the patient can select the date and
time of appointment according to his/her preference.
GIT,Jaipur
2
Doctors Appointment
2. GENERAL DESCRIPTION
This point will tell about the outcome of the project, the technology which is used in
making this project and whether the project is feasible or not, that is its feasibility study.
GIT,Jaipur
3
Doctors Appointment
2.2.1 Android
Android is a software stack for mobile devices that includes an operating system,
middleware and key applications. Android is a software platform and operating system
for mobile devices based on the Linux operating system and developed by Google and
the Open Handset Alliance. It allows developers to write managed code in a Java-like
language that utilizes Google-developed Java libraries, but does not support programs
developed in native code.
The unveiling of the Android platform on 5 November 2007 was announced with
the founding of the Open Handset Alliance, a consortium of 34 hardware, software and
telecom companies devoted to advancing open standards for mobile devices. When
released in 2008, most of the Android platforms were made available under the Apache
free-software and open-source license.
Android offers a unified approach to application development for mobile devices
which means developers need only develop for Android, and their applications should be
able to run on different devices powered by Android. It has its own virtual machine
known as Dalvik Virtual Machine (DVM), which is used for executing the android
applications.
Androids user interface is mainly based on direct manipulation, using touch
gestures that loosely correspond to real-world actions, such as swiping, tapping and
pinching, to manipulate on-screen objects, along with a virtual keyboard for text input. In
addition to touchscreen devices, Google has further developed Android TV for
televisions, Android auto for cars, and Android Wear for wrist watches, each with a
specialized user interface. Variants of Android are also used on notebooks, game
consoles, digital cameras, and other electronics.
GIT,Jaipur
4
Doctors Appointment
Android has the largest installed base of all operating systems of any kind. Android
has been the best selling OS on tablets since 2013, and on smartphones it is dominant by
any metric. As of July 2013, the Google Play store has had over one million Android
applications ("apps") published including many "business-class apps" that rival
competing mobile platforms and over 50 billion applications downloaded. An April
May 2013 survey of mobile application developers found that 71% of developers create
applications for Android, and a 2015 survey found that 40% of full-time professional
developers see Android as their priority target platform, which is comparable to Apples
IOS on 37% with both platforms far above others. In September 2015, Android had 1.4
billion monthly active users. The success of Android has made it a target for patent (and
copyright) litigation as part of the so-called "smartphone wars" between technology
companies.
.
Doctors Appointment
2.2.2.4 SQLite
Extremely small (~500kb) relational database management system, is integrated in
Android. It is based on function calls and single files, where all definitions, tables and
data are stored. This simple design is more than suitable for a platform such as Android.
SQLite is used for structured data storage. It is a powerful and lightweight relational
database engine available to all applications.
GIT,Jaipur
6
Doctors Appointment
Doctors Appointment
features, for instance, a huge media and connection support, GPS, improved support for
camera and simply GSM technology. A great work was done for the developers to start
work with Android using device emulator, tools for debugging and plugin for Eclipse
IDE.
The following diagram shows the major components of the Android operating system.
Each section is described in more detail below.
GIT,Jaipur
8
Doctors Appointment
Architecture of android
Doctors Appointment
Doctors Appointment
The Telephony Manager contains a set of API necessary for calling applications. Content
Provider was built for Android to share a data with other applications. The Resource
Manager is used to store localized strings, bitmaps, layout file descriptions and other
external parts of the application. The View System generates a set of buttons and lists in
UI.Other components like Notification Manager is used to customize display alerts and
other functions.
GIT,Jaipur
11
Doctors Appointment
Android Versions
Details of versions of Android
Code Name
Version
Initial Release
Number
Date
N/A
1.0
23 September 2008
N/A
1.1
9 February 2009
Cupcake
1.5
27 April 2009
Donut
1.6
15 September 2009
clair
2.0-2.1
26 October 2009
5-7
Froyo
2.1-2.2.3
20 May 2010
Gingerbread
2.3-2.3.7
6 December 2010
9-10
Honeycomb
3.0-3.2.6
22 February 2011
11-13
4.0-4.0.4
18 October 2011
14-15
Jelly Bean
4.1-4.3.1
9 July 2012
16-18
Kitkat
4.4-4.4.4
31 October 2013
19-20
Lollipop
5.0-5.1.1
12 November 2014
21-22
GIT,Jaipur
12
API Level
Doctors Appointment
Marshmallow
6.0-6.0.1
5 October 2015
23
Nougat
7.0
22 August 2016
24
It gives the ability for anyone to customize the Google Android platform.
With the support of many applications, the user can change the screen display.
Doctors Appointment
logical end. It is primary and most important thing in development of a project. The study
serves as a way to prove the projects reasonability and justify the need for launch.
The feasibility study concentrated on the following areas:
Operational feasibility
Technical feasibility
Economic feasibility
GIT,Jaipur
14
Doctors Appointment
equipments and the software to satisfy the user requirements. The technical needs of the
system vary considerably but might include:
etc and to what extend it can support the system. In examining the technical feasibility,
the configuration of the system is given more importance than the actual hardware. The
configuration should provide the complete picture of the system requirements.
Technical feasibility stage for the Doctors Appointment App gives the detailed
description about the technology used for the implementation of the application. It
certainly provides the output in a given time as it instantly books the appointment for a
preferred doctor and also provides confirmation. Through this application, the user can
book an appointment for his/her friend/relative and can share the details of appointment
easily. The software is used for the development of this software is Android which is one
of the most easy-to-use and most common software.
GIT,Jaipur
15
Doctors Appointment
3. SWDLC PHASES
A Software Development Life Cycle is an abstract representation of gradual development
and evolution of the software that undergoes a series of sequential or concurrent steps of
the software development process. Each of these steps results in the development of a
software product either a minor or major component of the software system in
contribution to the completion of the system. Each step requires some input and produces
some form of output which further becomes the input of the next step. The process goes
on in stepwise fashion until the software product is developed fully.
The software development life cycle consists of the following steps:
GIT,Jaipur
16
Doctors Appointment
Steps of SWDLC
1. Requirement Analysis
This step is the first and primary step of Software Development Life Cycle which
analysis the requirements of the software. It is performed after the feasibility study has
been done. The requirement term in this concern can be understood as: A condition or
capability needed by a customer to solve a problem and a condition or capability that
must be met by a system. To analyze the requirement, this step is defined as to indentify
and document the exact requirements of the software which can be fulfilled with the
initial step of communication between the customer and the developer. In such
communication, they discuss the real and actual requirements required by the software.
As the result of this step, the Software Requirement Specification SRS is made.
GIT,Jaipur
17
Doctors Appointment
Requirement Analysis phase for Doctors Appointment App was done on the basis
of locality, doctors present in the locality, their experience etc. Hardware and software
requirements were also taken into considerations which are mentioned in 3.2 and 3.3
point respectively. This step must be done very carefully as it is the initial step for the
development of the software and based on this step, all the other steps are implemented.
Keeping these requirements in mind, well further go for the next step of Software
Development Life Cycle, that is, design.
2. Design
With full and complete understanding of the requirement analysis phase, the next step is
designing of the software. Here analysis is made on the design of the system that is going
to be developed. In other words database design, the design of the architecture chosen,
functional specification design, low level design documents, high level design documents
and so on take place. Care must be taken to prepare these design documents because the
next phases namely the development phase is based on these design documents. If a well
structured and analyzed design document is prepared it would reduce the time taken in
the coming steps namely development and testing phases of the software development
life cycle.
This step is divided into level designing. Named as, preliminary design of high
level design and detailed design or low level designs.Preliminary design concerns the
brief overview of the software architecture and structure rather than goes into the details
of the module. This design is refined by designing each module in detail in detailed
design. As the result of this step, it produces the software design specification (SDS).
This step makes the clear distinction between the requirement analysis step and the
design step by using the term what and how. What term, what is the problem included
in the requirement analysis step whereas the how term, how the problem will be
solved out refers to the design step.
GIT,Jaipur
18
Doctors Appointment
The designing phase for doctors Appointment app is done very carefully keeping in
mind all the requirements discussed in requirement analysis phase. Various layouts were
made first, which tells about how the app will look, about its UI, and will give a brief
description about the functionality of the app. The app is divided into different modules
which are discussed in 3.1 point.
3. Coding
Coding is the phase that produces the actual code that will be delivered to the customer as
the operational product. To develop the code a specific programming language is chosen
either through its features or directly specified by the customer. This is the phase where
actual development of the system takes place. That is based on the design documents
prepared in the earlier phase code is written in the programming technology chosen. After
the code is developed generation of code also takes place in this phase. In other words the
code is converted into executables in this phase after code generation.
For the development of Doctors Appointment App, the programming technology which is
used is Android. This technology is very user friendly for the users and therefore it is
mostly used. Android provides various libraries and functionalities due to which a great
look is provided to the app and thus many users use android based mobile devices.
4. Module Level Testing
A software or system which is not tested would be of poor quality. This is because this is
the phase where system developed would be tested and reports are prepared about bugs or
errors in system. To do this testing phase there are different levels and methods of testing
like unit testing, system test and so on. Based on the need the testing methods are chosen
and reports are prepared about bugs. After this process the system again goes to
development phase for correction of errors and again tested. This process continues until
the system is found to be error free. To ease the testing process debuggers or testing tools
are also available. In this phase, individual developed modules are tested here. It is also
called as unit testing. This testing is performed for each of the module separately.
GIT,Jaipur
19
Doctors Appointment
Doctors Appointment App is divided into various modules like login/signup, main screen,
doctor list, book appointment etc. The individual testing of these modules is done
carefully and it is checked that whether the output is obtained at each module or not. If
output is obtained then well move to next module else modify that module to obtain the
correct output.
5. Integration and system testing
All the modules are collected and integrated appropriately with each other. Interface is
provided among them and then the whole system is tested fully. Integration testing is as
much important as the module level testing. The modules which are tested individually in
module level testing are then tested collectively by integrating all the modules and testing
the full developed system.
The modules of the Doctors Appointment app are integrated and then complete
testing of the whole system is performed. The testing is done till the correct output is not
obtained.
GIT,Jaipur
20
Doctors Appointment
Once the complete system is tested then that system is delivered to the customer
who will implement it on its organization site. After delivery, any modification or
changes can be made to help in maintenance.
3.1 Modules
A module is a separate unit of software or hardware that can be invoked independently. It
is an independent part of the program. The modules are then integrated to form a
complete system. The project consists of following modules:
3.1.1 Sign Up
In this module if the user is new then he/she will request for signing up a new account
and after that he/she will be directed to Signup Page where the user will enter all the
relevant information. An alert dialog box will be shown if any of the information is not
written. Another alert dialog box will be shown which will confirm from the user to save
the information and signup the account. Then the user will be directed to the login page.
3.1.2 Login
In this module, the user will enter his/her email id and password. The verification of the
email id and password entered will be done based on the values stored in the database
which were saved during the signup phase by the user. If the values are not matched, that
is there is no user saved with the email id and password entered, and then the user will be
informed to signup his/her account.
Doctors Appointment
The main screen consists of two sections which are By Field and By Name which are
displayed using swipe tabs. By Field section consists of the various fields through which
the user can select the specific field and then see the doctors list and book appointment
accordingly. While in By Name section the user can directly select the doctor (in case
he/she knows the name already) and book appointment for that doctor.
GIT,Jaipur
22
Doctors Appointment
user and will direct him/her to the login screen. Exit will direct the user out of the app
and the home page of the mobile device will be shown.
3.1.7 My Profile
This module will display all the details of the user which were saved by him/her during
signup module. In this module the user can edit particular information and also delete
his/her account.
3.1.5 My Appointment
This module will provide the list of all the appointments booked by the user and will
consists of the doctors name and address, and also the time and date of the appointment.
There is a context menu for each appointment which will be displayed on long press and
the menu will contain three options, namely, Edit appointment, Delete appointment and
Share appointment. By Edit and delete appointment, the user can edit and delete the
appointment for the specified doctor respectively. Share appointment, as the name
suggest, will allow the user to share the details of the appointment to any friend or
relative by using any of the sharing medium present in the mobile device (like Bluetooth,
mail, etc).
GIT,Jaipur
23
Doctors Appointment
Doctors Appointment
which you can start projects with code templates for patterns such as navigation drawer
and view pagers, or import Google code samples from GitHub. Android Studio's project
wizards make it easier than ever to add code in a new project.
It consists of various features:
A unified environment where you can develop for all Android devices
Instant Run to push changes to your running app without building a new APK
Code templates and GitHub integration to help you build common app features
and import sample code
Built-in support for Google Cloud Platform, making it easy to integrate Google
Cloud Messaging and App Engine
Each project in Android Studio contains one or more modules with source code
files and resource files. Types of modules include: Android app modules, Library
modules, Google app engine modules.
3.3.2 Genymotion
GIT,Jaipur
25
Doctors Appointment
Genymotion is an Android emulator that lets you create virtual replicas of Android
systems and run them on your Windows computer. This handy tool lets you emulate a
large number of Android devices and control simulated sensors like battery, GPS, and
accelerometer. Therefore, testing Android applications will be both easy and effective, as
comprehensive tests can be performed on a large amount of different emulated Android
devices and in many different conditions. In other words, testing an app on all the main
devices available on the market is very easy and affordable when using Genymotion.
Genymotion is remarkably easy to use. The intuitive and straightforward interface
makes creating virtual Android devices and running them a very simple job that can be
performed with ease even by beginners without any problem. Installing it is also a simple
matter. It can also be integrated with Eclipse and Android Studio platforms. The
Genymotion emulator has over 3,000 Android configurations to choose from. Developing
and testing the best app for the myriad devices out there is now possible and simpler than
ever before. Its cheaper and faster too.
Thus, Genymotion is a really handy and powerful Android device emulator that lets
you simulate a large variety of virtual Android devices and offers a really effective and
convenient manner of testing Android apps.
4. SYSTEM DESIGN
GIT,Jaipur
26
Doctors Appointment
GIT,Jaipur
27
Doctors Appointment
GIT,Jaipur
28
Doctors Appointment
4.1.6 My Profile
This module is designed by using TextView, which displays the name, email id, age and
gender of the user. With each information, there is an ImageButton which will allow the
user to edit the specified information which is done using AlertDialogBox. A button for
Delete Account is also created in this module.
4.1.7 My Appointment
This module is designed using ListView where each node consists of the details of the
doctor booked, that is his/her name and address. The node also consists of the date and
the time of appointment that was booked by the user. Context Menu is also created which
consists of three options: Edit Appointment, Delete Appointment and Share Appointment.
Doctors Appointment
data comes from, where it goes and how it gets stored. A DFD is a graphical
representation of the flow of data through an information system, modeling its process
aspects. A DFD is often used as a preliminary step to create an overview of the system,
which can later be elaborated. DFDs can also be used for the visualization of data
processing (structured design). A DFD shows what kind of information will be input to
and output from the system, where the data will come from and go to, and where the data
will be stored. It does not show information about the timing of process or information
about whether processes will operate in sequence or in parallel. Data flow diagrams are
also known as bubble charts. DFD is a designing tool used in the top-down approach to
System Design. The DFD enables the software engineer to develop models of the
information domain & functional domain at the same time.
GIT,Jaipur
30
Doctors Appointment
DFD Level-0
DFD Level-1
Doctors Appointment
DFD Level-2
Doctors Appointment
GIT,Jaipur
33
Doctors Appointment
Use case diagrams are a set of use cases, actors and their relationships. They represent the
use case view of a system. A use case represents a particular functionality of a system. So
use case diagram is used to describe the relationships among the functionalities and their
internal/external controllers. These controllers are known as actors.
GIT,Jaipur
34
Doctors Appointment
The class diagram describes the attributes and operations of a class and also the
constraints imposed on the system. The class diagrams are widely used in the modeling of
object oriented systems because they are the only UML diagrams which can be mapped
directly with object oriented languages. The class diagram shows a collection of classes,
interfaces, associations, collaborations and constraints. It is also known as a structural
diagram.
GIT,Jaipur
35
Doctors Appointment
Datatypes
Integer
Text
Integer
Text
Text
Text
Key
Primary key
Not null
Not null
Not null
Not null
Not null
GIT,Jaipur
36
Datatypes
Integer
Text
Integer
Text
Text
Key
Primary key
Not null
Not null
Not null
Not null
Doctors Appointment
GIT,Jaipur
37
Datatypes
Integer
Text
Text
Text
Text
Text
Key
Primary key
Foreign key
Not null
Foreign key
Not null
Not null
Doctors Appointment
5. CODING
Android follows general Java coding conventions with some additional rules which are
mentioned below:
Handle the error gracefully and substitute an appropriate value in the catch {}
block.
As a last resort, if you are confident that ignoring the exception is appropriate
then you may ignore it, but you must also comment why with a good reason.
GIT,Jaipur
38
Doctors Appointment
Catch each exception separately as separate catch blocks after a single try. This
can be awkward but is still preferable to catching all Exceptions. Beware
blocks. Split up the IO from the parsing, handle errors separately in each case.
Rethrow the exception. Many times you don't need to catch the exception at this
level anyway, just let the method throw it.
Remember: exceptions are your friend! When the compiler complains you're not
catching an exception, don't scowl. Smile: the compiler just made it easier for you to
catch runtime problems in your code.
GIT,Jaipur
39
Doctors Appointment
Finalizers are a way to have a chunk of code executed when an object is garbage
collected. While they can be handy for doing cleanup (particularly of external resources),
there are no guarantees as to when a finalizer will be called (or even that it will be called
at all). Android doesn't use finalizers. In most cases, you can do what you need from a
finalizer with good exception handling. If you absolutely need it, define a close() method
(or the like) and document exactly when that method needs to be called (see InputStream
for an example). In this case it is appropriate but not required to print a short log message
from the finalizer, as long as it is not expected to flood the logs.
GIT,Jaipur
40
Doctors Appointment
6. SCREEN SHOTS
Based on the modules discussed in the 3.1 and 4.1 step of the report, the respective
screenshots are as follows:
Splash Screen
GIT,Jaipur
41
Doctors Appointment
Login screen
Signup screen
GIT,Jaipur
42
Doctors Appointment
GIT,Jaipur
43
Doctors Appointment
Doctors Appointment
Doctors list
GIT,Jaipur
45
Doctors Appointment
GIT,Jaipur
46
Doctors Appointment
Doctors Appointment
Doctors Appointment
Option Menu
6.8 My Appointment
List of appointment
GIT,Jaipur
49
Doctors Appointment
Context Menu
Share Appointment
GIT,Jaipur
50
Doctors Appointment
6.9 My Profile
Profile of user
Edit profile
GIT,Jaipur
51
Doctors Appointment
Delete Account
GIT,Jaipur
52
Doctors Appointment
7. TESTING
Testing your app is an integral part of the app development process. Testing allows you to
verify the correctness, functional behavior, and usability of your app before it is released
publicly. Android tests are based on Junit, and you can run them either as local unit tests
on the JVM or as instrumented tests on an Android device. The Android framework
includes an integrated testing framework that helps you test all aspects of your
application and the SDK tools include tools for setting up and running test applications.
Android's build and test tools assume that test projects are organized into a standard
structure of tests, test case classes, test packages, and test projects.
For each module in a project, Android Studio includes both source sets,
corresponding to the following test types:
Local unit tests
Located at module-name/src/test/java/. These tests run on the local JVM and do not have
access to functional Android framework APIs.
Instrumented tests
Located at module-name/src/androidTest/java/. These are all tests that must run on an
Android hardware device or an Android emulator. Instrumented tests are built into an
APK that runs on the device alongside your app under test. The system runs your test
APK and your app under tests in the same process, so your tests can invoke methods and
modify fields in the app, and automate user interaction with your app.
There are many tools that can be used for testing android applications. Some are
official like Junit, Monkey and some are third party tools that can be used to test android
applications. Fr Doctors appointment app. Junit testing is performed. One can use the
JUnit TestCase class to do unit testing on a class that doesn't call Android APIs. TestCase
is also the base class for AndroidTestCase, which one can use to test Android-dependent
objects. Besides providing the JUnit framework, AndroidTestCase offers Androidspecific setup, teardown, and helper methods.
GIT,Jaipur
53
Doctors Appointment
8. IMPLEMENTATION
Various building blocks are required to build an android application and implement it.
These building blocks provide different kinds of functionality. Some of the building
blocks which were used in implementation of Doctors Appointment App are:
8.1 Activity
It is an user interface component, which corresponds to one screen at a time. It means that
to display Doctors List in the Doctors Appointment Application when any speciality is
chosen, one activity component is used for displaying more detailed information about
the doctors in the form of list.
8.3 Service
A task, which is done in the background, is known as service. It means that the user can
start an application from the activity window and keep the service work, while browsing
other applications. For instance, one can browse Google maps application while holding a
call or listening music while browsing other applications.
Doctors Appointment
A component which allows sharing some of the data with other processes and
applications is known as content provider. It is the best way to communicate the
applications between each other. Android will ship with a set of core application
including email client, SMS program, calendar, maps, browser, contacts, and others.
GIT,Jaipur
55
Doctors Appointment
Any application with no future scope is not that useful. The application must be updated
time to time and some feature must be added with every updation. Some of the future
scopes of our application are:
The option of Map can be added, which will allow users to navigate themselves
appointment.
More number of doctors can be added.
Chatting system between doctor and patient can be added.
GIT,Jaipur
56
Doctors Appointment
10. CONCLUSION
The outcome of this project is a smart android application which will allow users to book
their appointment for preferred doctor on their preferred date and time. This application
will reduce the waiting time of the users as they do not have to wait in queue. It will
increase the easiness of the user. The user can not only book appointment for
himself/herself, but for his/her friend/relative too.
Therefore, the making of such an application will prove to be very helpful to those who
are very busy in their life.
GIT,Jaipur
57
Doctors Appointment
11. REFRENCES
Wikipedia.org
https://www.tutorialspoint.com/
https://www.androiddevelopers.com/
https://www.slideshare.com/
https://www.scribd.com/
https://www.sitepoint.com/
GIT,Jaipur
58
Doctors Appointment
GIT,Jaipur
59
Doctors Appointment
GIT,Jaipur
60
Doctors Appointment
GIT,Jaipur
61
Doctors Appointment
GIT,Jaipur
62
Doctors Appointment
GIT,Jaipur
63