Académique Documents
Professionnel Documents
Culture Documents
Description
This app provide users all the available services of Lotus Nirvana Spa and let them book appointments from
app. This app also provide all the details regarding available services, location of various spa centres with
map view. Application also let spa providers to add service dynamically.
▪ Front End
✔ Android
✔ Java Runtime Environment 1.6 or above
✔ IDE(Android Studio)
✔ SDK-tools
▪ Back End
✔ MySql Database
Targeted Audience
This application target all the people who have regular beauty regime. In addition this app also target
travellers who want to access nearest Lotus Nirvana Spa Centre for beauty treatments.
II. Motivation
The main motivation for the project comes from an idea of providing smart services to the
customers of Lotus Nirvana Spa.
Sometimes its hard and time consuming to book an appointment in person, due to which a large
number of customers can be lost. Providing facilities to book appointments online and giving service
information in app provide transparency as well as ease to customers.
Option for providers to add a service dynamically add additional feature to update the services on
the go.
III. Components
Activity
An activity is the first stepping stone is building an Android user application. It provides the space to the user
for doing anything and everything. For example, opening a contact, dialing a caller, etc. everything is done by
interacting with a window and that very window is provided by an activity. A window is provided to each
activity where user interfacing is done. Generally, every Android application has more than one activity. There
is one “main” activity. All other activities are child activities. There is a stack called back stack. Whenever, there
is a new window is started, previous activity is pushed to the back stack and it is stopped until the new activity
is done. As soon as the back key of your device is pressed, new activity is popped out of stack and destroyed.
Now previous activity resumes.
Lotus Nirvana Spa has total 9 activities where Choose service is main activity.
Service
Another important component of an android application is service. It does not provide user interface. It
does long running operations in background. Service doesn’t terminate even if the component which
initiated it got terminated or switched to another application. A service can be connected to a
component which can even do inter process communication (IPC).
Content Providers
These Android components bring the object oriented functionality to the system. Content Providers
encapsulate data. Content providers as the name indicates provides content of one process to another hence it
acts as an interface. It provides gateway to access data from a structured set. For accessing data in a content
provider an object has to be created and this object acts as a client whereas content provider act as a server. It
is this object which is going to receive the requests retrieves the results and returns the result. Android has
content providers which manages video, audio, etc. These content providers are internal to android
applications. For example, custom searches on device require content providers.
Android Intents and Broadcast Receivers
Android Intents are the communication medium .i.e., app components send messages to one another like you
do with your friends. It is a messaging object. It can be used to query an action from another app component.
Android Intent can be used to instantiate a new activity or get result from another activity. A service can be
started by passing intent to perform a single operation. A broadcast can be sent to other apps by passing
intents. Intents are of two types:
· Implicit Intents: These are used to declare general actions to be performed so that part of another app can
handle it.
· Explicit intents: These are generally used to start a new element of your own application. These elements are
started by their name i.e. fully qualified class name. For example, if you want to call your best friend you would
do it by name and if he/she is not with you then you would definitely know the residential address. Now this is
residential address is what we refer to be as fully qualified name.
We know little bit about activity, service but what this broadcast chap is all about??? Let’s find out this in next
few lines. Android Broadcast is a message which spreads out when any event occurs. They are received by
apps. Android Intents can be used to deliver broadcasts to other apps. For example, when your device boots up
or switched on system generates a broadcast to all apps. There should be a procedure or should be something
which can receive these broadcasts. These receptors are called broadcast receivers. For this you need to
register a receiver in the activity which we shall deal while programming for the same. There are two types of
broadcasts:
· Normal Broadcasts: These are asynchronous in nature. Many receivers can be activated at the same time
which doesn’t have any defined order. But they are very efficient.
· Ordered Broadcasts: They are synchronous in nature. Broadcast received by one receiver passes it to other
receivers. Broadcasts are delivered to receiver on one-to-one and sequential basis. Either receiver will pass
result to another receiver or it may completely destroy the broadcast.
Splash Screen
Home Screen
Side Bar Menu
Treatment Detail Screen
A. Register/Login
Book appointment for a treatment Screen
Schedule an appointment screen
About Us screen
a. Address/Contact screen
B. Map Screen
Our Location Screen
Login Screen
Register Screen
When user logged in
Splash Screen
Home Screen
Side Bar Menu
b. Address/Contact screen
B. Map Screen
Our Location Screen
Figure 1 : 2.A.1: Outdoor Interface, Full Landscape mode
Order History
Profile
Add Service
IV. Database Diagrams
User Table
Service Table
V. Use Cases
VI. Class Diagram
Activity Diagram
a. Unit Testing
The primary goal of unit testing is to take smallest piece of testable part in the application, Isolate
it from remaining code and determining whether it behaves exactly as expected.
Each unit is tested separately before integrating them into modules to test the interfaces between
the modules.
b. System testing
System testing is the black box testing performed by the test team, and at the start of the system testing
complete system is configured in a controlled environment.
The purpose of system testing is to validate application accuracy and completeness in performing the
functions designed.
System testing is deemed complete when actual results and expected results are either inline or differences
are either explinable or acceptable, based on client input.
This application can enhance the business of all the salons available in market. Currently application is
designed for Lotus Nirvana spa but can be changed for other salons as well.
The application attracts major percentage of customers who prefer to book appointments online.
In addition it also provide all the new services available and advertise them to customers so that they can know
about the availability and come down to salon to avail that.
● Design
● Development
● Execution
● And Testing
The characteristics of Agile Methodology makes an easy job for mobile app development so that the mobile
application outcome is adaptable after its release.
is an agile structure that breaks the process of app development into smaller chunks. Each chunk is called
scrum which is managed by an individual project manager called scrum-master. This method helps in
keeping the team focussed and also involves the maximum utilization of resources.
1. For Registration
● Name
● Email
● Phone
● Password
● Confirm password
● Both entered passwords must match
● Image of user
● Address
2. For Login
● User Name(Email)
● Password
2. Prototyping
We released an app in debugging environment to seek any changes from users.
In case of any future android updates and depreciation of existing libraries might impact app performance. But
probability is least as usually it supports existing platforms.
a. Device Fragmentation
Unlike other mobile operating systems, Android is open source. Google allows device manufacturers
to customize and extend Android operating system without any restriction. Hence, the hardware
features provided by various Android devices differ. Due to which various features for instance swipe
gesture behaves differently on different devices. To make app usable we had to make it compatible to
major brands and versions using code.
A hardware manufacturer can customize stock Android operating system according to its precise needs and
strategy. Also, he has option to design a custom user interface (UI) for the device, as Google does not provide a
standard UI for Android operating systems. Hence, the UIs differ from one Android device to another. The
varying UIs made it difficult for us to make an Android app compatible with each device. We implemented the
UI design guidelines recommended by Google to make our Android app look appealing. But the we had to
explore ways to keep the app layout responsive and adaptive to make the app compatible with individual
devices.
c. Programming Language
At present, a mobile app developer has option to choose for two official programming languages for Android
app development — Java and Kotlin. Java is a mature programming language, whereas Kotlin is a modern
programming language. Unlike Java, Kotlin comes with features to simplify Android app development and app
code maintenance. Both Android 8.0 Oreo and Android Studio 3.0 support both programming languages by
default. But a large percentage of existing Android app development tools and frameworks still do not support
Kotlin. Hence, we find it challenging to pick the right programming language for Android app development.
Its massive worldwide market share makes Android more vulnerable to targeted security attacks. Google
frequently released security patches and updates to fix the security issues found in stock Android operating
system. But a variety of security issues are caused due to the changes made by hardware manufacturers to
stock Android. The security updates or patches released by Google do not address such security issues. Hence,
we had to combine robust security features and advanced encryption mechanisms to protect the app and user
data.
As noted earlier, each user has option to choose from over 3.5 million Android apps available in Google Play
Store. Most of these Android apps are available as free downloads. Hence, we had to explore ways to make his
Android app stand out in the crowd to accomplish more downloads.
Current limitation of Lotus Nirvana Spa App is that it is not connected to server , hence data is not live and
there is no server call exists. Currently app runs on local level.
● In future we can make a web interface and keep database on cloud. We can then call data using web
Apis.
● We can integrate advertisements in app to make money with each user click.
● We can even integrate payment gateway to make app capable of taking payments and other
transactions
● We can integrate live chat feature to provide better service to customer
● We can integrate a feedback form for the service availer.
How to publish:
To generate keystores for signing Android apps at the command line, use:
$ keytool -genkey -v -keystore my-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity
10000
A debug keystore which is used to sign an Android app during development needs a specific alias and
password combination as dictated by Google. To create a debug keystore, use:
— Title
— Short Desc
— Full Desc
— App Screenshots(JPEG or 24-bit PNG (no alpha))(Min-2,Max-8)(Min-320px,Max-3840px)
— Hi-res icon(512 x 512)(32-bit PNG (with alpha))
— Feature Graphic(1024 w x 500 h)(JPG or 24-bit PNG (no alpha))
— App Type
— Category
— Content Rating
— Developer/Company Email
— Privacy Policy Url
— And some other details
1. We can integrate advertisement libraries like admob ect. Which can pay us per user click.
2. We can make app paid
3. We can sell InApp products in app
4. We can integrate payment gateways and take payments online.
XVII. Conclusion
Throughout the development journey of app we faced lot of issues and found solutions. We found that being
an open source development, android is much challenging and interesting. Lotus Nirvana Spa app provide end
users an ease to book appointments and at the same time advertise salon services to the customers.
There is a big room for scope of future enhancements and making app more rewarding. It provide all the details
of services and help user to keep record of their appointments.
References
● www.android.com
● Developer.android.com
● http://developer.android.com/reference/packages.html
● http://dev.mysql.com/doc/refman/5.7/en/sql-syntax.html