Vous êtes sur la page 1sur 40

I.

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.

Project Hardware Requirement

▪ Android Device (cell / tablet …)


▪ Computer / Laptop
Project Software Requirements

▪ 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

The basic components of any android application are the following:


● Activities
● Intent and broadcast receivers
● Services
● Content Providers
● Widgets and Notifications

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.

Android Widgets and Notifications


Android App widgets are the small application views. These views can be embedded into other applications.
They can receive updates on periodic basis. Now what is a widget first of all? A widget is a quick view of your
app’s functionality and data. This view is accessible from home screen of your device. Now widgets are of
following types:

Lotus Nirvana Spa App Components:


When user does not login

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

Treatment Detail Screen


B. Register/Login
Book appointment for a treatment Screen
Schedule an appointment screen
About Us screen

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

user_id user_name user_email user_password user_address user_phone user_pic

0 abc abc@gma 1234 abc 123456789 DCIM/scree


il.com 0 n/user1

1 xyz xyz@gmai 1234 xyz 123456789 DCIM/scree


l.com 0 n/user2

Service Table

service_id service_na service_ic service_de service_pr service_ti service_di service_de service_im


me on tail ice me scount tail_img g

0 Acne 4568238 abc 50 30 min 5 6384683 48364


Treatme 2 64
nt

V. Use Cases
VI. Class Diagram
Activity Diagram

VII. Data flow diagram


VIII. Android navigation architecture
IX. Testing

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.

X . Potential to the market

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.

XI . Software development methodology used


Any application installed on a smartphone, a game or a social networking application requires many
factors to be in place for its proper functioning. The factors which need to be in place are

● Idea of the application

● 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.

The methodology used in app can be explained as:


The agile scrum methodology for mobile apps is a type of agile development methodology in which scrum

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.

Pros of Agile methodology

● It follows a team based approach.


● It allows you to make changes, add new features and keep evolving with the changing trends.
● Testing can be performed at each stage.
● Since testing happens simultaneously hence projects can be launched sooner.
● Customer satisfaction by continuous and rapid delivery of app modules.
● People and interactions are emphasized more than process and tools as the customer, developers and
testers are in constant communication with one another.
XII . Validations used

1. For Registration

Required fields are:

● Name
● Email
● Phone
● Password
● Confirm password
● Both entered passwords must match
● Image of user
● Address

2. For Login

● User Name(Email)
● Password

3. For Booking appointment


XIII . Security strengthen areas of app

1. Encrypting all the credentials:


All the credentials used in app are encrypted properly. A proper integration of google and facebook APIs using
official docs is been used in app.

2. Prototyping
We released an app in debugging environment to seek any changes from users.

3. Test your code


App has been tested properly for all the violation list from google play policies.

4. Download apps from trusted sources


We have distributed app from google play only which is the trusted most source for android apps
XIII. Future risks

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.

XIII. Practical and Technical issues faced

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.

b. Absence of Standard User Interface for Android

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.

d. Emerging Security Issues

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.

e. Increasing App Visibility

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.

XIV. Current limitations

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.

Other limitation is lack of whole service provider interface.

Lack of live chat between client and provider.

XV. Future Expansions

● 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.

XVI. How to publish and earn money

How to publish:

1. Make its Signed Apk(Using Release Keystore)

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:

$ keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass


android -keyalg RSA -keysize 2048 -validity 10000

Keystore name: “debug.keystore”

Keystore password: “android”

Key alias: “androiddebugkey”

Key password: “android”

2. Login to your Gmail Account and visit this link :


https://play.google.com/apps/publish/

3. Create a Merchant Account


4. Fill Mandatory Fields needed in App Listing:

— 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

5. Now rollout to market

How to make money

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

Vous aimerez peut-être aussi