Beruflich Dokumente
Kultur Dokumente
1. Introduction 2
1.1 synopsis 3
1.2 modules 5
2. System analysis 7
2.1 Existing system 8
2.2 Proposed system 8
2.3 Feasibility analysis 9
3. System specification 11
3.1 Hardware requirement 12
3.2 software requirement 12
4.System design 13
4.1 Data flow diagram 14
5.Software development 15
5.1 Platform overview 16
6. Source code 19
7. System testing and implementation 38
7.1 System testing 39
7.2 System implimentation 41
7.3 System maintanance 41
8.Conclusion 43
9.Future enhancement 45
10.Appendix 47
11.Bibliography 56
1
INTRODUCTION
..
2
SYNOPSIS
Auto Spotty is a location based reminder scheduling android application .This application
also manages calls and profiles according to location and time. Your phone will never again
ring at the theater or at in office. No spam calls during office hours or at night. Block calls,
remind yourself to buy something when you are near the store. Change ringtone and vibration
based on your current spot.
Imagine you have to remember to buy something when youre near the market, or you want
to set silent mode when you are at office or even send a message to your family when you are
at work automatically. Its easy, automatic and reliable thanks to a very powerful geo-
localization technology, developed to improve your time and resources. You can set specific
time range, or simply decide it doesnt matter where but only when. Emergency Panic
Button is another feature that Improve your own safety by installing this app on your device
and letting everybody know you are in trouble by sending a short alert notification containing
your current location that is fetched using GPS to your friends/family via email or SMS. IF
GPS or Internet connectivity is not available then the CellID and LAC (Location Area Code)
of the SIM currently in use will be sent friends/family along with a custom message. When
you are in driving you cant attend the call then sent a message to the caller that you are
driving /travelling.
Description:
Reminders, whether from calendars or to-do lists, are typically time based, so they will remind
you to perform an action at a desired time. However, in this project location based reminders
or 'geo-reminders' has been proposed and this could possibly be used to avoid drawbacks of
existing system.
Location based reminders are reminders which, instead of alerting you at a set time, alert you
when you enter a set location. So, you may set a reminder to 'buy more bread' for when you
are next at the supermarket, or 'call John' for when you get in the office. This means you will
be alerted when you are at the place where you can action the reminder. This isn't designed to
replace time based reminders, but instead work alongside. You could also (in theory) combine
the two by setting a reminder to 'buy birthday card for Sam' when you are in town around the
5th of June. AutoSpotty has also one security feature i.e. to send sms or email alert to friends
3
and family on being in danger or need help by pressing of a panic button or number on dial
pad. Geo location details and message will be sent to them.
Add Spots by double taping on the map and moving the pushpin,search for an address, or
using your current position and add reminders, change profiles or block calls and messages
for this position.
Send SMS to someone when you are at the current spot or when you leave it.
Enable details regarding events to fire when you enter or leave a current location.
Block all calls at your office for instance, or choose to allow from your address book, block
Sleeping in the bus or train and missing the station?No problem, set an alarm and add a Spot
and a radius marker and you will be notified right on time before you have to take off!
New-custom locations. Add Spots on map interface and add details and events on it for
You can also disable the GPS for a time range of the day . A good example is if you're at the
office and would like to disable GPS if you're not using Spoty for that proximity. You can
enter the time range and the app will stop using GPS and save your battery and will fire once
again when you leave the office. Another good example is while you sleep
You can add GPS timeout - Spoty will look for a GPS fix for a certain amount of time and
AutoSpotty is the solution for you when you have experienced similar situations to the below:
You keep forgetting to get milk from the nearby supermarket on the way back home
4
You keep missing to pick up your husband/wifes dry cleaning
You never remember to bring that book your roommate wanted every time you visit
the library
In a nutshell, AutoSpotty is your friend when you need to remember something according to
your location and not time.
The strong points of AutoSpotty is that it works in the background, so you dont have to
worry about checking it. When you are within the radius you set, an alert will pop up. Its also
kind on your device and its battery.
MODULES
The modules included in the project Autospotty are
In this module the user can set a secure pin lock code to unlock the app and enter into
the application. The user needs to enter the pin always to enter the application interface
screen. This will provide a security to the application Autospotty.
The principle behind GPS is that receivers are able to use the technique of trilateration to
calculate their coordinates on Earth by measuring the time taken for signals from various
satellites to reach them.
Current location of user will be extracted using inbuilt GPS system in mobile.With the help of
GPS location listener the application get the location of the user and it will refresh in a small
interval and it will give the data to the other modules. Spot based reminder will be provided to
the user when he/she enters the Geo-Fence of a location added in reminder list.
5
3. Reminder
Location based reminders are mobile service that has the capability to provide real time
information based on the users location. Global Positioning System (GPS) has been the heart
of Location based reminders, in order to provide all the functionalities in Location based
reminders. The user can set the range of the location where the reminder wants to pop up.
4. Privacy Manager
Change profile to silent/general for particular location, this will work with the help of
GPS Location listener. Current location of user will be extracted using inbuilt GPS system in
mobile, with the help of GPS location listener the application get the location of the user and it
will refresh in a small interval.
5. Emergency Service
Emergency Panic Button will send a short alert notification containing the current location
with address of users to their friends/family. It will fetch the current location using GPS, If
GPS or Internet connectivity is not available then the CellID and LAC (Location Area Code)
of the SIM currently in use will be sent.
6. Preferences
There is an option to set the friends/family numbers and email address to send emergency
messages with set GPS location and address.
6
SYSTEM ANALYSIS
7
EXISTING SYSTEM
In the existing system the profiles need be set manually. Reminders are Time based system so
they do not remind the users accurately but reminders pop up when the time is set. And also
Location based call and SMS blocking are not available in the existing system. No emergency
alert services are available in the current system which can send location details.
ProblemStatement
The existing system needs to set profiles manually; since the reminders are time based system
it will ring based on when not where. Location based call and SMS blocking are not
available in the existing system, and also no emergency alert service are available in current
system by sending the location details. The success of the proposed system is with the help of
the very powerful geo-localization technology. The proposed system will improve the time
and resources. The user can set specific time range, or simply decide it doesnt matter when
but only where.
Reminders, whether from calendars or to do lists, are typically time based, so they will
remind you to perform an action at a desired time. However, in this project, location based
reminders or 'geo-reminders' has been proposed and this could possibly be used to avoid
drawbacks of existing system.
PROPOSED SYSTEM
8
The main objective of the project is to develop software using the android application
where the user can set location based reminders. The user can set the range of the location
where the reminder should pop up. And another feature of this application is that it
automatically changes the profiles within the location basis. And also categorize the contact
numbers into black list or white list to help block spam calls for the user at busy times.
Emergency panic button helps to get help in some situations for the user .If the user cant
attend the call then it sends an automatically generated message to the caller with details of
the user.
FEASIBILITY ANALYSIS
The prime objective of feasibility study is to ensure that the problem is worth to be solved.
At this stage a cost benefit analysis is performed to assertion that the benefit from the system
will over rule the cost associated with the whole analysis, design and development of the new
system. An important outcome of the preliminary investigation determining whether the
system required is feasible.
Feasibility study is a test of proposed system regarding its efficiency, impact on the
organization, ability to meet the needs of users and effective use of resources. Thus, when a
new project is proposed, it normally goes through a feasibility study before it is approved for
development.All the projects are given unlimited resources and infinite time. Unfortunately,
the development process of a computer-based system is time bound and Feasibility and risk
analysis are related in many ways. If project risk is great, the feasibility of producing the
quality software is reduced. There are three aspects in the
Economical Feasibility
Here an evaluation of development cost weighted against the ultimate income or benefit
derived from the developed system. The cost for the development of the project has been
evaluated and we want to check that the cost does not exceed beneficial cost of the system.
Economic and Financial analysis is used for evaluating the effectiveness of the candidate
system. This project also under gone economical feasibility study and found that it is feasible.
9
Because java is a free developing tool and is platform independent. So the cost for
development does not exceed its beneficial cost.
Technical Feasibility
It is a study of function, performance and constraints that may affect the ability to achieve an
acceptable system. The technical requirements for the MotoBhp.com are currently available
and are widely used. The technology used is found to be optimal for the system and are able to
withstand the complexities, which are inherent to the system. The main points that are
considered to prove that the project is technically feasible are:
Behavioral Feasibility
The determination of any violation of rules or liability that could result from the development
of the system is behavioral feasibility .There is no barrier for implementing the system. The
system also helps to access the information immediately as need arises. Thus the system is
found to be operational feasible. The software used for the above system can also work
efficiently for satisfying users and administrators needs.
10
SYSTEM SPECIFICATION
11
HARDWARE REQUIREMENTS
SOFTWARE REQUIREMENTS
12
SYSTEM DESIGN
13
DATA FlOW DIAGRAM
Level 0
Level 1
14
SOFTWARE DEVEOLPMENT
15
PLATFORM OVERVIEW
Introduction to Android
Android is open source and Google releases the code under the Apache License. This
open source code and permissive licensing allows the software to be freely modified and
distributed by device manufacturers, wireless carriers and enthusiast developers. Additionally,
Android has a large community of developers writing applications ("apps") that extend the
functionality of devices, written primarily in a customized version of the Java programming
language. In October 2012, there were approximately 700,000 apps available for Android, and
the estimated number of applications downloaded from Google Play, Android's primary app
store, was 25 billion.
These factors have allowed Android to become the world's most widely used
smartphone platform and the software of choice for technology companies who require a low-
cost, customizable, lightweight operating system for high tech devices without developing one
from scratch. As a result, despite being primarily designed for phones and tablets, it has seen
additional applications on televisions, games consoles and other electronics. Android's open
nature has further encouraged a large community of developers and enthusiasts to use the
open source code as a foundation for community-driven projects, which add new features for
16
advanced users or bring Android to devices which were officially released running other
operating systems.
Android had a worldwide smartphone market share of 75% during the third quarter of
2012,with 500 million devices activated in total and 1.3 million activations per day. The
operating system's success has made it a target for patent litigation as part of the so-called
"smartphone wars" between technology companies.
On 5 November 2007, the Open Handset Alliance, a consortium of several companies which
include Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel and NVIDIA, was
unveiled with the goal to develop open standards for mobile devices. Along with the
formation of the Open Handset Alliance, the OHA also unveiled their first product, Android,
an open source mobile device platform based on the Linux operating system.
Hardware
Google has unveiled at least three prototypes for Android, at the Mobile World Congress on
February 12, 2008. One prototype at the ARM booth displayed several basic Google
applications. A'd-pad' control zooming of items in the dock with a relatively quick response.A
prototype at the Google IO conference on May 28, 2008
had a 528 MHz Qualcomm processor and a Synaptic capacitive touch screen, and used the
UMTS cellular standard. It had 128 MB of RAM and 256 MB of flash, showing that
Android's memory requirements are reasonable. The demo was carried out using a 3.6 Mbit/s
HSDPA connection.
2.2 Features
Application Framework
It is used to write applications for Android. Unlike other embedded mobile environments,
Android applications are all equal, for instance, an applications which come with the
phone are no different than those that any developer writes. The framework is supported
by numerous open source libraries such as openssl, SQLite and libc. It is also supported
17
by the Android core libraries. From the point of security, the framework is based on UNIX
file system permissions that assure applications have only those abilities that mobile phone
owner gave them at install time.
18
Dalvik Virtual Machine
It is extremely low-memory based virtual machine, which was designed especially for
Android to run on embedded systems and work well in low power situations. It is also
tuned to the CPU attributes. The Dalvik VM creates a special file format (.DEX) that
is created through build time post processing. Conversion between Java classes and
.DEX format is done by included dx tool.
Integrated Browser
Google made a right choice on choosing WebKit as open source web browser. They
added a two pass layout and frame flattening. Two pass layout loads a page without
waiting for blocking elements, such as external CSS or external JavaScript and after
a while renders again with all resources downloaded to the device. Frame flattening
converts founded frames into single one and loads into the browser. These features
increase speed and usability browsing the internet via mobile phone.
Optimized Graphics
19
SOURCE CODE
20
Sample Source code
MainActivity(Android Eclipse)
packagecom.code.aspotty;
importcom.code.aspotty.R;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.app.Dialog;
importandroid.content.DialogInterface;
importandroid.content.Intent;
importandroid.content.SharedPreferences;
importandroid.content.SharedPreferences.Editor;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.widget.EditText;
importandroid.widget.Toast;
EditTexte, e1;
SharedPreferencespref;
@Override
protectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.passcode_home);
REMINDER ACTIVITY
packagecom.code.aspotty;
importjava.io.IOException;
importjava.util.Calendar;
importjava.util.List;
importjava.util.Locale;
importjava.util.Vector;
importandroid.app.DatePickerDialog;
importandroid.app.Dialog;
importandroid.app.PendingIntent;
importandroid.content.Intent;
importandroid.content.SharedPreferences;
importandroid.location.Address;
importandroid.location.Criteria;
importandroid.location.Geocoder;
21
importandroid.location.Location;
importandroid.location.LocationListener;
importandroid.location.LocationManager;
importandroid.os.AsyncTask;
importandroid.os.Bundle;
importandroid.os.StrictMode;
import android.support.v4.app.FragmentActivity;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.DatePicker;
importandroid.widget.EditText;
importandroid.widget.RadioButton;
importandroid.widget.Toast;
importcom.db.DbUtils;
importcom.google.android.gms.common.ConnectionResult;
importcom.google.android.gms.common.GooglePlayServicesUtil;
importcom.google.android.gms.maps.CameraUpdateFactory;
importcom.google.android.gms.maps.GoogleMap;
importcom.google.android.gms.maps.GoogleMap.OnMapClickListener;
importcom.google.android.gms.maps.GoogleMap.OnMapLongClickListener;
importcom.google.android.gms.maps.SupportMapFragment;
importcom.google.android.gms.maps.model.BitmapDescriptorFactory;
importcom.google.android.gms.maps.model.LatLng;
importcom.google.android.gms.maps.model.Marker;
importcom.google.android.gms.maps.model.MarkerOptions;
22
Button add,findAdd;
StringBuilderstrAddress;
privatePendingIntentpendingInt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_data);
SearchAdd = (EditText)
findViewById(R.id.editText1_addressSearch);
findAdd = (Button) findViewById(R.id.button1_Find);
findAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String location = SearchAdd.getText().toString();
23
c2 = (RadioButton) findViewById(R.id.radioButtonGeneral);
// Showing status
if (status != ConnectionResult.SUCCESS) { // Google Play Services
are
// not available
intrequestCode = 10;
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status,
this,
requestCode);
dialog.show();
24
LocationManagerlocationManager = (LocationManager)
getSystemService(LOCATION_SERVICE);
if (location != null) {
onLocationChanged(location);
}
// locationManager.requestLocationUpdates(provider, 50000, 0,
this);
googleMap.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
googleMap.clear();
drawMarker(point);
lat.setText(point.latitude + "");
lon.setText(point.longitude + "");
getMyLocationAddress(point.latitude, point.longitude);
Toast.makeText(
getBaseContext(),
"Latitude Selected :" + point.latitude
+ "Longitude Selected :" +
point.longitude,
25
Toast.LENGTH_LONG).show();
}
});
googleMap.setOnMapLongClickListener(new
OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng point) {
}
});
@Override
protected List<Address>doInBackground(String... locationName) {
// Creating an instance of Geocoder class
Geocodergeocoder = new Geocoder(getBaseContext());
List<Address> addresses = null;
try {
// Getting a maximum of 3 Address that matches the
input text
addresses =
geocoder.getFromLocationName(locationName[0], 3);
} catch (IOException e) {
e.printStackTrace();
}
return addresses;
}
@Override
protected void onPostExecute(List<Address> addresses) {
26
Toast.makeText(getBaseContext(), "No Location
found",
Toast.LENGTH_SHORT).show();
}
googleMap.animateCamera(CameraUpdateFactory
.newLatLng(latLng));
}
}
}
27
public void onClick(View v)
{
if (!title.getText().toString().equals("")
&& !desc.getText().toString().equals("")
&& !lat.getText().toString().equals("")
&& !lon.getText().toString().equals("")
&& !date.getText().toString().equals("")) {
} else {
gen = "general";
}
getReverseGeoCoding g = new getReverseGeoCoding();
try {
//
g.getAddress(Double.parseDouble(lat.getText().toString()),
//
Double.parseDouble(lon.getText().toString()));
finally {
// String l=strAddress.toString();
Vector<String>vectObj = new Vector<String>();
vectObj.add(title.getText().toString());
vectObj.add(desc.getText().toString());
vectObj.add(gen);
vectObj.add(lat.getText().toString());
vectObj.add(lon.getText().toString());
vectObj.add(strAddress.toString());
vectObj.add(date.getText().toString());
// vectObj.add(time.getText().toString());
db.insertReminder(vectObj);
title.setText("");
28
desc.setText("");
lat.setText("");
lon.setText("");
// pendingInt =
PendingIntent.getService(ReminderActivity.this, 0,
// myIntent,
PendingIntent.FLAG_CANCEL_CURRENT);
// final AlarmManageralarmMan = (AlarmManager)
getSystemService(ALARM_SERVICE);
// final Calendar cal = Calendar.getInstance();
// cal.setTimeInMillis(System.currentTimeMillis());
Toast.makeText(getApplicationContext(),
"Reminder Added Successfully",
5000).show();
Thread t = new Thread(new Runnable() {
@Override
public void run() {
//
alarmMan.setRepeating(AlarmManager.RTC_WAKEUP,
// cal.getTimeInMillis(), 3000,
pendingInt);
Intent myIntent = new
Intent(ReminderActivity.this,
ServiceLoc.class);
startService(myIntent);
}
});
t.start();
}
}
else {
Toast.makeText(getApplicationContext(), "Please Enter All
Values",
5000).show();
}
29
}
if (addresses != null) {
for (int i = 0; i
<fetchedAddress.getMaxAddressLineIndex(); i++) {
strAddress.append(fetchedAddress.getAddressLine(i));
}
Log.d("loc", strAddress.toString());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
googleMap.addMarker(markerOptions);
30
Log.d("DobDay", dobDay+"");
if (dobDay<10) {
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DOB_DATE_DIALOG:
return new DatePickerDialog(this, dobDateSetListener,
dobYear,
dobMonth, dobDay);
}
return null;
}
privateDatePickerDialog.OnDateSetListenerdobDateSetListener = new
DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, intpYear, intpMonth,
intpDay) {
dobYear = pYear;
dobMonth = pMonth;
dobDay = pDay;
updateFromDateDisplay();
}
};
31
@Override
public void onLocationChanged(Location location) {
googleMap.clear();
// getMyLocationAddress(latitude,
// longitude);
lat.setText(latitude + "");
lon.setText(longitude + "");
googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
32
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
DATABASE
package database;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.logging.Level;
importjava.util.logging.Logger;
/**
*
* @author Nazif
*/
public class DbConnect {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/spotty", "root",
"mysql");
} catch (ClassNotFoundException ex) {
Logger.getLogger(DbConnect.class.getName()).log(Level.SEVERE, null, ex);
33
} catch (SQLException ex) {
Logger.getLogger(DbConnect.class.getName()).log(Level.SEVERE, null, ex);
}
34
}
<?xmlversion="1.0"encoding="utf-8"?>
<ScrollViewxmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sv1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title :"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000"
android:textStyle="bold"/>
<EditText
android:id="@+id/editTextTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10">
<requestFocus/>
</EditText>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Description :"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000"
android:textStyle="bold"/>
<EditText
android:id="@+id/editTextDesc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"/>
<RadioGroup
android:id="@+id/ProfileGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
35
android:textColor="#000">
<RadioButton
android:id="@+id/radioButtonSilent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Silent Mode"
android:textColor="#000"
android:textStyle="bold"/>
<RadioButton
android:id="@+id/radioButtonGeneral"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="General Mode"
android:textColor="#000"
android:textStyle="bold"/>
</RadioGroup>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/editText1_addressSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"/>
<Button
android:id="@+id/button1_Find"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Find"/>
</LinearLayout>
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="319dp"
class="com.google.android.gms.maps.SupportMapFragment"/>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Latitude :"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000"
android:textStyle="bold"/>
<EditText
android:id="@+id/editTextLat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"/>
36
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Longitude :"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000"
android:textStyle="bold"/>
<EditText
android:id="@+id/editTextLon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"/>
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Date :"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000"
android:textStyle="bold"/>
<LinearLayout
android:id="@+id/lin1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/editTextDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.26"
android:ems="10"
android:inputType="date"/>
<ImageButton
android:id="@+id/dateBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="showDobDateDialog"
android:src="@drawable/datepicker"/>
</LinearLayout>
<!--<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Time"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000"
android:textStyle="bold" />
<EditText
37
android:id="@+id/editText1_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
-->
<Button
android:id="@+id/buttonAddSpot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="TAP TO SAVE SPOTTY REMINDER"
android:textColor="#000"
android:textStyle="bold"/>
</LinearLayout>
</ScrollView>
38
SYSTEM TESTING
&
IMPLEMENTATION
39
SYSTEM TESTING
Testing is the process of executing a program with the indent of finding
any errors. A good test of course has the high probability of finding a yet
undiscovered error. A successful testing is the one that uncovers a yet undiscovered
error.
A test is vital to the success of the system. System test makes a logical assumption
that if all parts of the system are correct, then goal will be successfully achieved .
The candidate system is subjected to a variety of tests online like its value
responsiveness , its value, stress and security. A series of tests are performed before the
system is already for user acceptance testing.
TYPE OF TESTING
Unit Testing
Integration Testing
Validation Testing
Output Testing
User Acceptance Testing
UNIT TESTING
Here we test each module individually and integrate the overall system. Unit
testing focuses verification efforts even in the smallest unit of software design in each
module. This is also known as Module Testing. The modules of the system are tested
separately. This testing is carried out in the programming style itself. In this testing each
module is focused to work satisfactorily as regard to expected output from the module.
There are some validation checks for the fields.
INTEGRATTION TESTING
Data can be lost across an interface, one module can have an adverse
effect on the other sub-functions, when combined may not produce the desired
40
functions. Integrated testing is the systematic testing to uncover the errors within the
interface. This testing is done with simple data and the developed system has run
successfully with this simple data. The need for integrated system is to find the overall
system performance.
VALIDATION TESTING
OUTPUT TESTING
After performing validation testing, the next step is output testing of the proposed system.
Since the system cannot be useful if it does not produce the required output. Asking the
user about the format in which the system is required tests the output displayed or
generated by the system under consideration. Here the output format is considered in two
ways. One is on screen format and another one is printed format. The output format on
the screen is found to be corrected as the format was designed in the system phase
according to the user needs. As for the hard copy the output comes according to the
specification requested by the user. Here the output testing does not result in any
correction in the system.
Taking various kinds of data plays a vital role in system testing. After
preparing the test data, system under study is tested using the test data. While testing,
errors are again uncovered and corrected by using the above steps and corrections are
also noted for future use. The system has been verified and validated by running test data
and live data.First the system is tested with some sample test data that are generated with
the knowledge of the possible range of values that are required to hold by the fields. The
system runs successfully for the given test data and for the live data and for live data
41
USER ACCEPTNESS TESTING
User acceptance testing of the system is the key factor for the success of
any system. The system under consideration is tested for user acceptance by constantly
keeping in touch with prospective system at the time of development and making change
whenever required. This is done with regard to the input screen design and output screen
design.
SYSTEM IMPLIMENTATION
Implementation is the stage in the project where the theoretical design is turned into a
working system. The most critical stage is achieving a successful system and in giving
confidence on the new system for the users, that it will work efficient and effectively.
It involves careful planning, investing of the current system, and its constraints
on implementation, design of methods to achieve the change over, an evaluation
of change over methods.
The implementation process begins with preparing a plan for the implementation
of the system. According to this plan, the activities are to be carried out in these plan,
discussion has been made regarding the equipment, resources and how to test activities.
Thus a clear plan was prepared for the activities.
Apart from planning, the two major tasks of preparing for implementations are
education and training of user and testing of the system. Education of users should have
taken place much earlier in the project. When they were being involved in the
investigation and design work. Training has to been given to the staff regarding the new
system. Once staff has been trained the system can be used.
SYSTEM MAINTANANCE
Software maintenance is a set of software engineering activities that occur after software
has been delivered for the customer and put into operation. The success of the software
and the project relies on the maintenance procedure performed.
42
As with the venture of human, not a single one is perfect. The further modifications are
left to the followers. It is because; the opinion or vision of a thing differs from individual
to individual. The maintenance is performed at regular intervals to keep the project
safe and reliable.
43
CONCLUSION
44
From the past couple of years, Android application development market has
turned up to be a booming sector as most of the people are opting for android based
smart-phones because of its flexibility .Our project, Autospotty , could be developed in
an attractive dialog fashion. So the user with minimum knowledge about computers can
also operate the system easily. The system could be designed in such a way that it can be
modified with very little effort when such a need arises in the future. To survive from the
competition there is a need to produce some modifications to it in the future. New
features will provide the system a new fresh look, by which it can attract a lot of users.
Changes are inevitable when android mobile phone based system are built. We are living
in a rapidly changing world. To keep track with the changing environment, the system
that we developed should be easily enhanced. Due to this reason its necessary that the
system need to be modified according to the users requirements.
The intent of this is to create versions of existing programs that create higher
quality. AUTOSPOTTY is flexible and allows for modifications and future
enhancements. And further enhancements to system by adding functions and procedures
to increase the processing of system. Since the system is more flexible, further
enhancements can easily be done if time and cost schedules are suitable for the
modifications.
45
FUTURE ENHANCEMENT
46
Enhancing means adding, modifying or developing the code to support the
changes in the specification. It is the process of adding new capabilities such as reports,
new interfaces with other systems and new features such as better screen or report layout.
The proposed system is developed and tested with some amount of sample data which
satisfy all the requirements. It has high degree of accuracy, user friendliness and
efficiency. The system is flexible and changes can be made in the system to make overall
work easier. There are many more exciting features will be included in the future and We
still working on it
47
APPENDIX
48
Screen lock setting
49
Reminder Home Page
50
Add reminder page
51
View reminder page
52
Preference setting page
53
Emergency Setting Page
54
Emergency Preferences
55
Alert/Notification
56
BIBLIOGRAPHY
57
http://www.wikipedia.org
http://www.w3schools.com
http://www.msdn.microsoft.com
http://www.toutorialspoints.com
http://www.stackoverflow.com
58