You are on page 1of 21

Abstract

The project Indore Business directory was based on android application. The system defines
the growing needs of the Businessmen in Indore city. Indore is the largest city and the
commercial capital of the Indian state of Madhya Pradesh. Indore city has a population of
2,167,447. Indore is often referred as the commercial capital of Madhya Pradesh with a bulk
of its trade coming from Small, Mid and Large scale manufacturing & service industries.
These industries range from Automobile to Pharmaceutical and from Software to Retail and
from Textile trading to Real estate, what not. Several IT services companies have presence in
Indore. So there obviously arises a need to communicate to do business, perform commercial
practices and all these needs the information like contact number and address which was
earlier searched through typical “YELLOW PAGES”.
In growing Business environment, businessman needs to deal with the other businessman,
search for the shop, place like hotel, coffee shop, college, institutions, industries, firms, food
shops, restaurant etc. and want to get contact information and search in the conventional
yellow pages (a thick hard copy like diary that contains information of business organization
and commercial entities in tabular format) which contains only phone number and address,
not much information. The yellow pages are hard to carry and hard to search for when it
comes to the need to go to a place or arrangement of a particular meeting.
Even if he will go for an option like internet a no of web pages will be opened. Nobody
carries heavy gadgets like laptop now-a-days and if carries then too it is not feasible to search
anything about it.
If the Business is dynamic like ‘packers and movers’, they often needs a guide to help them
in getting the information of the place where they have to deliver the goods and commodities,
or from where they have to carry away the consignments. They may be sometimes but not
always are familiar with the place they are going to visit.

Introduction
2.1 Objective
The objective is to make an android product for the Businessmen to help them
exploring their business by providing them with the facility of instant contacting with
any organization. Today every businessman has an android phone. By downloading
the application, they will be able to use the facilities provided by it. The main
objective is to make a user friendly interface of an android application, so as to benefit
the businessmen and making it suitable to call and contact to any shopkeeper
instantly, without wasting their time.
Switching from yellow pages to a ready-made mobile app.
 In today’s scenario, if a person has to search for a place like hotel, coffee shop,
college etc. And wants to get appropriate information will search in yellow pages
which contains only limited information hence it is wastage of time.
 To switch from net surfing for a small purpose into a time saving environment.
 To provide 24*7 facility for searching a place just with the help of a cell phone
means Nobody carries heavy gadgets like laptop, all the time and if carries then too it
is not feasible to search anything about it.
 To help the tourist with this app so that they will not require to hire the guide for the
place they are going to visit.
 For taking immediate action like in case of emergency i.e heart attack, immediate
action will be needed for going to a hospital, to make a call etc.
 Employees or Job seekers often require quick response so they would not waste their
precious time in surfing over the net or visiting the location.
 Headache of filling forms over the internet while visiting any website for the purpose
of searching can easily be removed; hence no need to worry about the accessibility or
leak of our personal information.

2.2 Scope

 In future dynamic business directory can be made, in which a user can also make
changes.
 Business directory with updatable database can be made in which a businessman can
add a new business of his own or any other business or place like hotel, petrol pump,
boutique, his favorite pizza shop etc.
 Also if user wants, he can delete the place which is of no use for him.

 This project is only limited to Indore city, but in future it can also be made for 2 to 3
cities or the whole state.

 A ‘share’ option can be provided below every organization name, so that the user can
share the contact information with anyone.

 If a similar web application exists i.e. an online business directory then the data
(contact information of a place) can be imported from there directly on your android
phone.

2.3 Problems in existing system


Problems faced in real life situations are as follows:
 In today’s scenario, if a person has to search for a place like hotel, coffee shop,
college etc. And wants to get appropriate information will search in yellow pages
which contains only limited information hence it is wastage of time.
 Even if he will go for an option like internet we need to open a no of web pages
which is a time consuming process.

 Nobody carries heavy gadgets like laptop, all the time and if carries then too it is
not feasible to search anything about it.

 Tourist often needs a guide and is not familiar with the place they are going to
visit.

 In case of emergency, like a heart attack, immediate action will be needed for
going to a hospital, to make a call etc.

 Job seekers often require quick response so they would not waste their precious
time.

 Headache of filling forms over the internet while visiting any website for the
purpose of searching can easily be removed,hence no need to worry about the
accessibility or leak of our personal information.
 It is helpful for employees they can search the information about the desired
company.So helpful in global market to share and access the organization details.

2.4 Justification to the Project


An android application will prove to be a better solution for this, by providing
following features:
 Address information: Complete address.
 Message: Immediate message facility.

 Website link: connect you to the official website on just one click.

 Exact location: Search for exact location on maps (Google maps).

 Call: In case of emergency immediate call can be made.

This android application will play important role in many areas right from the
industries to local places.It is helpful for employees they can search the information about the
desired company.So helpful in global market to share and access the organization details.Job
seekers can easily search the company or college where they will be going to attend the off or
pool campus.Tourist will not require any guide for the place they are going to visit hence they
would really enjoy even more the place without wasting time in querring or searching.

System Requirement Analysis


3.1 Information Gathering (Literature Review)
3.1.1 System Components Identified

ACTIVITY:
a. Activity is an individual user interface screen in an Android application where visual
elements called Views (also known as widgets) can be placed and the user can perform
various actions by interacting with it.
b. The widgets in an Activity can be created in two different ways, by pure java code and
by adding XML code to define the UI. The latter is always preferred.
c. An application can have more than one Activity and each Activity operates
independently, but can be linked to one another and each Activity created must be defined in
the application’s manifest file.

SERVICE:
a. A service is an Android application component that runs in background and has no
visual UI.
b. Services are used to perform the processing parts of the application in the background.
a. While the user is working on the foreground UI, services can be used to handle the
processes that need to be done in the background.
A service can be started by other Android application components such as an activity or other
services and it will continue to run in the background

CONTENT PROVIDER:
a. Content provider in Android provides a flexible way to make data available across
applications. Suppose you are creating any type of data in your application.
b. Suppose a particular type of data is created in an application and they are stored at any
storage location, it may be in the data base, file system or in any online storage space.
c. Then through content providers other applications are able to query, access or even
modify the data been created, as long as the content provider allows it.
d. In a similar way one can access the data that other utilities have created, by using
content providers.

BROADCAST RECEIVER:
a. Broadcast receivers are one of Android application components that are used to receive
messages that are broadcasted by the Android system or other Android applications.
b. There are many broadcasts that are initiated by the Android system itself and other
applications can receive by using Broadcast receiver.

INTENTS:
a. Intents are not one of Android application components; instead it is the component
activating mechanism in Android.
b. It constitutes the core message system in Android and defines a message to activate a
particular component.
c. For example, if a new activity is to be invoked from a current activity, intent needs to
be fired specifying the new Activity. And if other application needs to be started from the
Activity, then also it would require to fire intent.

3.1.2 System Architecture for Proposed System


Control Flow Diagram:
System Structure:

Methodological contributions:

In this project various methods for implementing Google maps, phone dialer, sms service etc.
will be required as the major features. Here are few methods which will be used mainly.

Methods and resources for Google maps:

 Geopoint-to set the location of any particular point.


 setZoom-to zoom in or zoom out in the map.
 locationManager- which provides APIs to determine location and bearing of the
underlying device (if available).
 animateTo- To animate properties for a View , call animate() to construct a
ViewPropertyAnimator object for that View .
 MAP API KEY-used to programetically access data from google server.

Methods for Dialer:

 launchDialer- The method launchDialer(String) initiates the phone call.

Various permissions are also used for these services like-

 Geolocation permission
 Internet Permission
 call_phone Permission
 write_External_storage Permission ,etc.
Packages used-

Location and map based capabilities incorporated into the mobile for users are done using the
package android.location and Google Maps External Library.

1. android.location-

The central component of the former package is LocationManager system service which is a
class.This class provides access to the system location services which in turn allow
applications to obtain periodic updates of the device's geographical location.
You do not instantiate this class directly;instead, retrieve it through
getSystemService(Context.LOCATION_SERVICE).
Once the LocationManager is instantiated,application is able to-
1. Query for all the LocationProvider for the last known user location.
2. Register/Unregister periodic updates of the user's current location from a location
provider.
LocationProvider is an abstract superclass that provides the periodic updates of the
geographic location of device.

Classes and interfaces in the android.location package are-


1. Interfaces-

GpsStatus.Listener Used for receiving notifications when GPS


status has changed.

GpsStatus.NmeaListener Used for receiving NMEA sentences from the


GPS.

LocationListener Used for receiving notifications from the


LocationManager when the location has
changed.

2. Classes-

Address A class representing an Address, i.e, a set of


Strings describing a location.

Criteria A class indicating the application criteria for


selecting a location provider.

Geocoder A class for handling geocoding and reverse


geocoding.

GpsSatellite This class represents the current state of a GPS


satellite.

GpsStatus This class represents the current state of the


GPS engine.

Location A class representing a geographic location


sensed at a particular time (a "fix").

LocationManager This class provides access to the system


location services.

LocationProvider An abstract superclass for location providers.

GpsStatus.NmeaListener-
NMEA 0183 is a standard for with marine electronic devices and is common method for
receiving data from GPS .
Geocoder-
A class for handling geocoding and reverse geocoding. Geocoding is the process of
transforming a street address or other description of a location into a (latitude, longitude)
coordinate. Reverse geocoding is the process of transforming a (latitude, longitude)
coordinate into a (partial) address.
Location-
A class representing a geographic location at a particular time. A location consists of latitude,
longitude, UTC timestamp & information on altitude,speed & bearing.
2. Google Maps Android API-External Library
To make it easier for you to add powerful mapping capabilities to your application, Google
provides a Maps external library that includes the com.google.android.maps package. The
classes of the package offer built-in downloading, rendering, and caching of Maps tiles, as
well as a variety of display options and controls.
The key class in the Maps package is com.google.android.maps.MapView, a subclass of
ViewGroup.
A MapView displays a map with data obtained from the Google Maps service. When the
MapView has focus, it will capture key presses and touch gestures to pan and zoom the map
automatically, including handling network requests for additional maps tiles. It also provides
all of the UI elements necessary for users to control the map. Your application can also use
MapView class methods to control the MapView programmatically and draw a number of
Overlay types on top of the map.
Challenges in determining User Locations-
When developing a location aware application for android, GPS and Android’s Network
Location Provider can be utilized to get the location of device.Since GPS is most accurate but
only works outside, consumes more battery power and does not responds as quickly as
expected.
Android’s Network Location Provider determines user location using cell tower and Wi-Fi
signals, providing location information in a way that works indoors and outdoors, responds
faster, and uses less battery power.
Obtaining user location from a mobile device can be complicated. There are several reasons
why a location reading (regardless of the source) can contain errors and be inaccurate. Some
sources of error in the user location include:
 Multitude of location sources
GPS, Cell-ID, and Wi-Fi can each provide a clue to users location. Determining
which to use and trust is a matter of trade-offs in accuracy, speed, and battery-
efficiency.
 User movement
Because the user location changes, you must account for movement by re-estimating
user location every so often.
 Varying accuracy
Location estimates coming from each location source are not consistent in their
accuracy. A location obtained 10 seconds ago from one source might be more accurate
than the newest location from another or same source.

3.2 System Feasibility


After the analysis and specifications of the requirements of the proposed system feasibility
study is conducted. It is done to find out whether the system is beneficial to the organization
or not. For each proposed solution it is checked whether it is practical to implement that
solution, this is done through feasibility study. Various feasibility aspects are considered .
The feasibility study includes the investigation of the information needs of the end user and
objectives, constraints, basic resource requirement and cost benefits. The main and prime
objective of feasibility study is not to solve the problem but to acquire a sense of its scope.
The feasibility study includes the investigation of,
 Needs of the end user and objectives
 Information
 Constraints
 Basic resource requirements
3.2.1 Economical
The system is economically feasible because there are no requirements of any special Costly
hardware or software to develop the system. This system uses minimum resources for
development and usage so it is very economic and user friendly system. The organization for
which it is meant can avail it at a very low cost. The objectives are fulfilled within minimum
resources.Hence our project is economically feasible.

3.2.2 Technical
The project is technically feasible because it will not develop or use any technology which is
under research. The project uses Android and java as front end and designing is done using
Eclipse IDE. The back end of the project is “SQLite” which is again a part of android itself.
In technical feasibility the following issues are taken into consideration:

1. Whether the required technology is available or not?


The work for the project can be done wih the current equipment and existing software
technology that the organisation possessess.
2. Whether the required resources are available?
The system does not have any rigid hard-ware and software requirements and there is
availability of the people who can perform the software engineering activities required for the
development of the system.Hence, the system is technically feasible.

3.2.3 Behavioral
Behavioral feasibility is concerned with as curtaining the views of the examiners and
organizers about the use of the computer facility. The support or the lack of the support that
the examiners are likely to give to the system is the critical aspect of the feasibility in all
respects except the behavioral and fails miserably because of human problems. Our project is
behavioral feasible because it is time saving and reliable.

For which problem do you lack good solutions?


There was need to create a integrated system which surpasses the expectations of the person
needing the information regarding pvc pipes manufacturing company and through which
Administrators can also update & access the information from any location all over the
world.

How would you like to solve it?


To solve this problem we have made a web based application through which customer that
can do online Registration on the site and without extra effort can get the all the basic
information about company.Admin module is also made web based and hence administrators
can access from any where in the world.

3.3 Platform specification (Both Development and Deployment)

3.3.1 Hardware

Architecture: Android application architecture follows very modern Model-View-View


Model (MVVM) architectural pattern in how it handles relationships between GUI and a
logic supporting the GUI. This is actually good news for Android developers since this is the
latest and greatest architecture for GUI applications at the moment. In MVVM architecture:
 GUI development is done by a GUI designer in technology more or less natural
for this task (XML)
 Logic behind the GUI is implemented by a developer as ViewModel (which
actually means Model of View) component.

 Functional relationships between GUI and ViewModel are implemented through


bindings that essentially define rules like “if a button A is clicked, method
onButtonAClick() should be called on ViewModel”. Bindings can be written in the
code or defined in a declarative way (Android uses both types of bindings)
MVVM architecture is used in one way or another by all modern GUI
technologies like Microsoft WPF and Silverlight, Oracle (former Sun) JavaFX,
Adobe Flex, AJAX.

Backend: SQLite
Frontend: SDK
Server: apache-tomcat-7.0.23
HardDisk: 29 MB.

3.3.2 Software implementation language/technology


Programming language: core java
Querry Language: SQL
Operating System: Windows XP professional
Framework: eclipse helios
3.4 Milestones and Time lines
3.4.1 Software Deliverables
3.4.2 Project Schedule - Gantt chart
System Analysis

4.1 System Specifications

4.1.1 Functional Specifications


The functional requirement specifies how the system behaves under certain condition. It
describes an interface between system and environment.
The functional requirements in our project are:
 The app is to be designed for all type of users for the places of indore city only.
 An intuitive graphical user interface is to be offered, that must be accessible through
the mobile phone with installation.
 The app should show the current position on the map.
4.1.2 Non Functional Specifications
The nonfunctional requirements describe a restriction on the system that limits our choice for
developing a solution to the problem.
 Usable App
 Reliable
 Efficient in finding places
 Location can be easily detected
 The project should be completed within one to two months of time.
 Video promos (if provided by the owner)
 24 X 7 availability
 The cost involved in making the project should be less.
 It should be able to enhance its functionality time to time as required.

4.2 Information Flow Representation

Activity Diagram:
home screen
appears

user types a place


name in search bar

clicks on open app


search button

list of item is
display view address
open app

select option

clicks on call
button

calling get
initated

open app

select option

clicks message
icon

message activity
displayed
open app

select option

website opens

open app

select option

clicks on map
icon

map view get


generated
Use Case Diagram:

Search for organization


Visitor

<<extends>>
<<extends>>
<<extends>>
<<extends>>
<<extends>>

View website
View map
View Detail
Make a call Send SMS
State chart Diagram:

start

Open
application

Splash screeen
appears

Search
place

No
Search
successful

yes

Details

OS service Select option


interaction call.message

perform Access
operation permission

Close app
Sequence Diagram :
Collaboration Diagram:

Supplementary Section
5.1 Need of Documentation in Software Engineering Practices

Documentation is an important part of software engineering. Types of documentation include:


1. Requirements - Statements that identify attributes capabilities, characteristics, or qualities
of a system. This is the foundation for what shall be or has been implemented.
2. Architecture/Design - Overview of software includes relations to an environment and
construction principles to be used in design of software components.
3. Technical - Documentation of code, algorithms, interfaces, and APIs.
4. End User - Manuals for the end-user, system administrators and support staff.
5. Marketing - How to market the product and analysis of the market demand.

5.2 Individual Roles and Responsibilities in Software Development Team

Provide project management and technical leadership for every aspect of software.
Prepare lifecycle for different projects inclusive of research, development, design, evaluation,
testing along with delivery to product management.
Supervise architecture plus lead efforts to develop technical roadmap of all projects.
Establish and stimulate software development standards and processes along with best
practices for delivery of scalable and high quality software.
Perform closely with Engineers, Developers and Product Management throughout
organization to influence product development assisting or improving products.
Develop relations with existing and prospective internal customers to interpret all individual
requirements.
Learn and display as how products would add value to respective business.
Ensure top quality design reviews attaining business goals.
Supervise resource allocation to assure attainment of apt business and personnel development
goals.
Involve in strategic plans to accomplish technical as well as business with leadership chain,
team and with customers.
Manage and execute software development projects from beginning to finish.
Evaluate projects, develop and update schedules plus supervise project status.
Collaborate effectively with all team members as well as hold regular team meetings.