Académique Documents
Professionnel Documents
Culture Documents
Date:_________
Name Signature
Recommending Approval:
__________________________
Ms. Cecilia P. Abaricia, DT
Thesis Adviser
________________________________
Mr. Manuel Luis C. Delos Santos, MSCS
Dean, Computer Science Department
Dedication
The group dedicates this thesis to the loving parents for helping
through the darkest midst of the subject giving financial and moral support. To
professor Ms. Cecilia P. Abaricia, adviser of thesis subject for not letting
down, encourages to finish and surpassed it. To all person who helped to
finish this study. To God be all the Glory and thanks giving.
Acknowledgement
persons that helps in the making or finishing the thesis and documentation.
school, who help and gave encouragement, uplifted, advises when the group
To the classmates, friends, family, and every single person that was
there in ups and down, thrived to become better and told that the group could
Lastly, the group would like to thank Almighty God for giving strength,
courage, faith, believe that whatever happens by trusting and believing in God
would finish and made this study. Again thanks to everyone from the bottom
Abstract
Introductory statement
application.....
This study focuses on mapping and navigating the location of the Tomb
create an application that provides navigation, regarding the birth and death
date of the tomb and blockings for each specific tomb. The proponents used
Google Map to provide the navigation, also the map where the cemetery was
located, each tomb has specific marker to provide a path towards the tomb,
along with the list of the tomb, there was the name of the deceased person
and the blockings of the tomb. Tomb Locator via Android Application was
software that let the user store the location of the deceased, the user can
insert image of the grave, and the specific location for the desired tomb.
Conclusion
system for effective and quick way of gathering data or information at locating
the easiest or quickest way to go to tomb, also for the future reference for
other proponents, the proponents would prefer this application for lessen the
Chapter I
Introduction
In regular days finding the tomb was hard, visiting the cemetery was a
tradition every year to pay a visit to the loved ones. Cemeteries have vast
area of burial spot, visitors had to experience the situations like asking the
information to locate the tomb of loved ones, but people still experience
difficulties to find the tomb. Peak season comes on first week of November, so
many people visit the loved ones, compare in regular days less people come
Global Positioning System (GPS) via Android Application, to help navigate the
tomb using the application through Smartphones or Android Phones. This can
help people or user if visiting the cemetery. People can forget the location and
landmark of the tomb. This document shows or explains how the application
Cemetery, one of the most cemeteries that has a large amount of people
Tomb Locator was developed to easy navigate the tomb. The users of
this application can already have information of the tomb, so the users have a
Project Context
This application helps the people locate, the exact mark of the tomb,
using this application can make easy for user to ask questions or guidance of
the personnel to locate the tomb of the dead family member. Sangandaan
Cemetery has a large area, so this application provides the direction of the
tomb.
search function that includes the first and last name of the deceased, also it
includes the date of birth and the year of death, take picture of the tomb and
locate the coordinates of the tomb then saving it. After inputting the required
information, the details of the dead person can show the information and also
notification to notify if the user arrived at the destination, and Google Maps
provide a satellite view. The proponents have inputted two (2) markers for
locating the tomb. First, the red marker where the tomb was located and
second, the blue marker would navigate the direction going towards to the red
The main problem in locating the tomb at the cemetery was to ask
people where the specific tomb was located, some people cannot provide
tomb location easily, and the visitor of the cemetery manually search the
location of the tomb that led visitors to be tired before finding the exact
General Problem
Specific Problem
cemetery?
3. How the proponents develop the Tomb Locator using GPS via Android
Application?
4.1 Compatibility
4.2 Functionality
4.3 Portability
4.4 Maintainability
4.5 Reliability
4.6 Security
4.7 Usability
General Objectives
Specific Objectives
3.7 Usability
Scope
The scope of the application Tomb Locator, navigates the path through
the tomb. This application can search and show the details of the dead
person, navigate the way to the area of the tomb, has a marker shown at the
map to indicate the location. The features of the application it use a Global
or data mobile connection to use the GPS, an android application that can be
Package (APK), this application can run smoothly if the user has a fast
internet connection.
notification to notify if the user arrived at the destination, and Google Maps
provide a satellite view, to see the street inside the cemetery and a hassle-
free navigating.
Limitation
The limitation of this application, can only locate area of the deceased,
pictures of the tomb or area not included because the application only
provides aerial view of the map. Navigating the tomb may not exactly accurate
because the Global Positioning System (GPS) rely on the signal of the
smartphone.
time consuming for finding the tomb. Normally, family or visitors asks the
Family. The study provides the family future reference for own
system that may help the said company Sangandaan Cemetery to have a
Chapter II
Conceptual Literature
Foreign Literature
Foreign literature was the thesis topic other than own native literature.
theme, topic, genre of a foreign literature. This can be written in ones own
native language.
Arlington County, Virginia, across the Potomac River from Washington, D.C.,
in whose 624 acres (253 ha) the dead of the nation's conflicts have been
buried, beginning with the American Civil War, as well as re-interred dead
from earlier wars. The United States Department of the Army, a component of
visitors and the public to locate gravesites, events or other points of interest
interest; and receive directions to these locations. The latest version also
the Tom Locator via Global Positioning System (GPS) via Android Application,
the ANC application also used Global Positioning System (GPS) to determine
the location of the tomb, also the blocking included in the map, when the map
was clicked and zoomed, the blocking can appear and the information of the
during the war, further solidifying the friendship and alliance between the two
nations. Many buried at the cemetery died during the Battle of the Atlantic
the Allied effort to secure routes and shipping lanes, and during the Strategic
hinder military operations. Allied forces changed the course of world history.
slope with the west and south sides framed by woodland [2]
Locator Application; it displays the information of the tomb and the picture of
navigation and maps, unlike Tomb Locator for Sangandaan Cemetery, the
information. The Islam-21 allowed the user to perform database query for
grave or death searching, provided user with map direction of the detailed
The application that was study explains that the current manual
Jabatan Agama Islam Selangor (JAIS), and local cemetery visitor in searching
death information and grave cemetery location are still operated manually.
[3]
This paper demonstrated the potential of GIS, GPS.
Grave Sites
at Memorial Park Cemetery to make it easier for people to locate a grave site.
summer-long project, which, when complete later this year, can allow anyone
to type in a name and locate where the person is buried in the cemetery at
Memorial Park Cemetery makes it easier for family or people to locate the
grave site. , The GIS can allow people to search, then see a map marking the
location of the grave and landmarks visible to help guide them, such as
Information System (GIS) as both part of a class and part of my own research.
readers asking how this was done and what exactly I was doing. What I want
and some projects that have already been completed using GIS. [5]
The above topic or study explains how GIS was used for digitally
mapping tomb, gravesites and how it can be used for the family, visitors and
Wilmington, Massachusetts
operation for over 100 years. The cemetery has been storing its owner and
burial information in a Microsoft Access database since 2000, but the spatial
and time consuming. Assisting customers often required the customer to wait
for available staff and then for staff to search the records. The town needed a
system that would allow personnel to access, update, maintain, and analyze
[6]
the data in an efficient and timely manner.
This explains that the study helps and allows the users to pan and
zoom the cemetery map, and visualize, locate, query, and analyze the
cemetery data. The custom interface and tools lets the user input data and
to this system and can perform genealogy research, look for lots to purchase,
The advantages of this system are that it permits the town to use its existing
software and data, and to perform much of the setup and maintenance in-
house. This was more efficient and economical than purchasing an outside
system. This system also has the ability to be expanded in the future as
Unmanned Aerial Vehicles (UAVs) for intelligence gathering. But now, UAVs
are being used in mapping and surveying for various other purposes. A Czech
(the second largest city Czech Republic), explored the possibilities of using a
UAV to map the cemeteries in the country. After mapping the cemeteries the
data, was integrated into a GIS system. This up-to-date database proved
cemetery was mapped in a single flight by the UAV. For mapping smaller
sections of society. The resources that are present within a cemetery were
Australia's past.
as that contained within the Beenleigh Cemetery. This project has found that
the application of this technology to this data type was possible, and in fact
could be easily attached to the current system employed by the local authority
Local Literature
topic, genre of own literature. This cannot be written in other native language.
Locate dearly departed at the Manila North Cemetery with this website
This year, Filipinos with relatives buried in the Manila North Cemetery
may no longer have to worry about locating the tombs of dearly departed.
biggest cemetery had set up a website to help people locate the deceased
loved ones' tombs. Visitors to the website can see a map of the cemetery, and
a list of records of the deceased buried there. They can type in loved ones'
locating the tombs of dearly departed. That is, if they have an Internet
website to help people locate the deceased loved ones' tombs. Visitors to the
website can see a map of the cemetery, and a list of records of the deceased
buried there. They can type in the loved ones' names in the search box. [9]
54 hectares. Filipinos with relatives buried in the Manila North Cemetery may
no longer have to worry about locating the tombs of the dearly departed. That
are dug directly underneath stilt houses. It is argued in this paper that the very
established practice among the Tingguians and the ancestors (i.e. Cole 1922;
Gironire 1854).
(i.e. Lara 2011; E. Lim 2012; Lim and Basilia 2012) and other parts of Ilocos
[10]
like Galimuyod (Ingel 2015) and Nagsingcaoan (Canilao 2011).
with site stratigraphic levels was tackled and discussed in this researched
paper.
Research Literature
Foreign Studies
In order to explain the methodologies and the technologies in use for this
project, the Painted tombs of the northern and southern necropolis are
project, the Painted tombs of the northern and southern necropolis are
Mortuary.
cemetery located in the Dakhleh Oasis, Egypt. The first research objective
examines the relationship between age, sex and grave substructures of 701
and style of grave substructures were influenced by sex or age. Although not
statistically significant, GIS analysis revealed that most of the graves in the
Kellis 2 cemetery have no associated substructures, but of those that did have
and style of grave substructures were influenced by sex or age. Although not
statistically significant, GIS analysis revealed that most of the graves in the
Kellis 2 cemetery have no associated substructures, but of those that did have
water table between 3.1 and 5.1 m, with two groundwater direction flows,
one to the SW and another to the SE. Due to the contamination plumes,
which have the same groundwater direction flow, as well the conductive
extends beyond the limits of the cemetery. The location of the conductive
contamination is linked with the depth of the water table and the burial time.
water table between 3.1 and 5.1 m, with two groundwater direction flows,
Local Studies
system
and navigating that can be helpful for the developing of the application, hence
providing information that benefits the study and importance of navigation and
Global Positioning System, to the locations that can be forgotten easily, with
system
using Global Positioning System (GPS) via Android Application, through the
use of Global Positioning System and mobile internet like Wi-Fi, was to
develop an application that let the user decide and pick the desired location
the user wants, the proponents planned to develop a proposed system that let
the user interact to the using Google Maps and Global Positioning System.
Chapter III
Technical Background
This chapter views on the general methods and design used by the
design, research locale and data gathering tools and instruments that the
Hardware Requirements
and environment for the software under development. An HRS minimizes the
time and effort required by developers to achieve desired goals and also
interacts with system hardware, other programs and human users in a wide
Table 3.1
Hardware Requirements
Software Requirements
software under development. The SRS fully describes what the software does
achieve desired goals and also minimizes the development cost. A good SRS
Table 3.2
Software Requirements
1 piece
Chapter IV
This chapter views on the general methods and design used by the
design, research locale and data gathering tools and instruments that the
Research Design
method, the proponents were able to gather all the necessary findings and
and Support.
Project Design
Figure 4.1 illustrates the user launches the application. It shows that
the user can search people, and add a tomb. The application used a Wi-Fi
and a GPS. The function of the Wi-Fi was to access the Maps for navigation,
and the use of GPS was to locate the coordinates when adding the Tomb.
Then locating where the user and the tomb was mapped and launched. The
application shows that the user can add tomb and add image of the tomb.
Sampling Technique
making a decision. Tomb records, blockings and rentals were all very crucial
questionnaire.
Sangandaan Cemetery, including the opening and closing time, days open,
Interview
The data needed for this study were gathered through personal
development.
respondents that involved within the system. Question in the survey forms
were based in the daily routines of the company process and the
and level of each respondent that which involve within the process of the
The given data which provided from gathering data forms used in the
presented graphical presentation and analysis in this study. The given data
statistical techniques.
The proponents evaluate all the data received from the respondents
and use the different statistical method. The analysis statistical formula shows
Statistical Tools
The statistical tools used this to help the proponents too easily tabulate
and analyze the data gathered during the survey process. It was based on
how data interpreted using the statistics. These tools can also help the
proposed system.
Frequency
occurs. This was the number of times that the event occurs in a study. The
F = f/N
where,
Percentage
P = f/N x 100
where,
P = percentage
N = number of respondents
Mean
The average of a population set. This found by multiplying the
population means to appropriate frequency and add the entire product then
divide the sum of all the frequency by the number of all frequencies. The
formula was:
X= fx/ N
where,
X = mean
f = number of frequency
Likert Scale
the main topic, and also to measure the positive and negative response of the
single qualitative variable and in knowing if the sample under observation and
analysis was drawn from a population with some specified distribution or not.
Further, this was the sum of the squared differences of the observed
X2 = (O-E) 2
E
where,
O= observed frequency
E= expected frequency
= level of significance
Conceptual Framework
methodology, data collection and analysis. Conceptual framework can act like
Manual Process
IPO (appendices)
Figure 4.2 Conceptual Framework of
Proposed System
Figure 4.2 Proposed System, in this figure the Inputs are Add Tomb
and Search Tomb, Process are Input Data, Coordinates, and Image,
Launching Google Maps, the Output are Save and Navigate, navigate and
reach destination, as you can see in this figure, Figure 4.2 show the specific
Flow Chart
Figure 4.3 displays the launching the application and searching the tomb,
after searching, launch the Google Maps and prompted to turn on the Wi-Fi
and GPS. If yes, show the coordinates and proceed to navigate into the tomb.
Adding a tomb, Input the Name, Date of Birth, Date of Death, to locate the
coordinates, turn on the Wi-Fi and GPS to collect coordinates and proceed to
In this figure, the user can search about the name of the deceased
person and then it can show information of the tomb. Then when locating it by
using google maps it can request the location and give you coordinates or
marker on the map on where the user was and your real time location.
After it theres navigation which can show you the way on how to
reach the destination and a voice command can notify you during and after
arriving to it. Lastly, there was a add deceased where you can input the name
In this figure above, the circle shaped is the system, there are two(2)
system is to handle reliability to the user and developer by providing its uses.
In the figure above, it shows how the network diagram flows between
the user, GPS, internet and GSM provider. The user turns on the GPS to
access the Google Maps, Google Maps is viewable only if the user has an
Internet, so the user turns on the internet, Tomb Locator can also be used by
network diagram. GSM Provider provides cellular connection if the user has a
WELCOME SCREEN
This screen can show when the
app is launch by the user.
SEARCH SCREEN
When the search button is tapped or
clicked, you can input the name of the
person you want or the date of birth of
date of death, if you dont know the name
of the deceased.
HOME SCREEN
HOME SCREEN is the default window,
where the user can see the list of people that
are inputted on the application.
RESULT SCREEN
A B C
can see the label of the marker. Tap the navigation button and the
direction can show, as reaching the marker. The application can provide a
navigation and minutes of arrival at destination.
Figure 4.8
some of the well-known human biases that can adversely affect the delivery
changing priorities after the start of a project or not having any clear
characteristics, namely:
Functionality
Reliability
Usability
Efficiency
Maintainability
Portability
Functionality
certain items this is relatively easy to define, for example a ship's anchor has
product has, e.g. an ATM machine, then the more complicated it becomes to
define its functionality. For software a list of functions can be specified, i.e. a
Reliability
Usability
Usability only exists with regard to functionality and refers to the ease
selection, i.e. $20.00, $40.00, $100.00 etc., does not impact the function of
the ATM but addresses the Usability of the function. The ability to learn how to
Efficiency
number of these characteristics, there are overlaps. For example, the usability
takes 3 hours to respond the system would not be easy to use although the
Maintainability
The ability to identify and fix a fault within a software component is what the
with identifying the cause of a fault and then fixing the fault is the concern of
maintainability. Also the ability to verify (or test) a system, i.e. testability, is one
Portability
This characteristic refers to how well the software can adopt to changes in its
a given system.
Using the ISO 9126 (or any other quality model) for derivation of
capability.
In the figure above the input, process, output of the proponent project show
Application.
Before getting to design the app to rule over them all, mobile
your time and think of unique ideas. Compile the ideas and settle on those
that seem promising and feasible. Come up with the concept of the app and
finalize it. Once the developers settle on the final concept, it is then that the
Requirements of the app are then taken into account with all its intended
limitations. Not all app functionality can make it to the final product.
At the end of the discovery phase the Who, Why, What, When and Where
The type of application you want to develop. You ve gathered all the
nuts and bolts to proceed. Now its time for the software development to start.
Assemble your dream team which knows the requirements of the project in
and out. Come up with a work flow chart and design for the project to
Following the success of the design phase, its time for the software
development team to initiate work on the project. This process is iterative and
cyclical. Development goes side by side with testing so that any errors or
bugs in the program are caught at the earliest and rectified right away. This is
check the progress of the project goes smoothly and according to time.
Once the application is completed, it has to undergo further testing so that all
development and testing period. This is the point for the advertising and
and updates. Failure to do so can make the app retention rate drop by the
Chapter V
instrument. These data are analyzed and statistically treated in order to derive
interpretations and inferences. The data are presented in accordance with the
1.1 Gender
Table 5.1
Female 10 50%
10 which was equivalent to 50%, while the female frequency was 10, which
Table 5.2
Seperated 0 0%
Single was 8 which was equivalent to 40% and was in rank 1, the frequency
of married was 8 which was equivalent to 40% and was also in rank 1, while
the frequency of widowed is 4 which was equivalent to 20% and was in rank
2nd.
Table 5.3
26 33 2 10% 4th
34 41 5 25% 2nd
42-49 1 5% 5th
was 8 and was equivalent to 40% and was at 1st rank, age 26-33 frequency
was 2 which was equivalent to 10% and rank 4th, age 34-41 frequency was 5
which was equivalent to 25% and rank 2nd, age 42-49 frequency was only 1
and the equivalent was 5% that get the rank 5th which is the least, age 50
above frequency was 4 which was equivalent to 20% and ranking 3rd.
Table 5.4
Educational Attainment
Masteral 0 0%
Doctorate 1 5% 4th
The conclusion from the above table, the High School frequency is 7
which was equivalent to 35% and gets the rank 2nd, the College frequency is
10 which was equivalent to 50% and rank 1st, the vocational frequency was 2
which was equivalent to 10% and ranks 3rd, lastly the Doctorate frequency
was 1 and equivalent to 5% and get the last rank which is 4th.
Table 5.5
Poor
rated Good which is in rank 2, while 20% rated Very Good which is in rank
3. The computed mean was 4.2 and the verbal interpretation in the systems
Table 5.6
Poor
rated Very Good which is in rank 2, while 20% rated Very Good which is in
rank 3. The computed mean was 4.3 and the verbal interpretation in the
Table 5.7
Poor
which is in rank 2, while 15% rated Very Good which is in rank 3. The
computed mean was 4.3 and the verbal interpretation in the systems
Table 5.8
Fair
rated Very Good which is in rank 2, while 20% rated Good which is in rank
3. The computed mean was 4.2 and the verbal interpretation in the systems
Table 5.9
Fair
rated Very Good which is in rank 2, while 15% rated Good which is in rank
3. The computed mean was 4.3 and the verbal interpretation in the systems
Table 5.10
Good
4.7
Satisfactory
Poor
terms of security 100% for the Excellent which is in rank 1. The computed
classified as Excellent. The computed mean was 4.7 and the verbal
Table 5.11
was 4.2 which was equivalent to Very good and rank 3 rd, the functionality
mean was 4.3 which was equivalent to 4.3 and rank 2 nd, the maintainability
mean was 4.3, resulting to very good verbal interpretation and ranking 2 nd,
portability was 4.2 and rank 3rd, reliability was 4.3 and verbal interpretation
was very good and ranking 2nd, the 1st ranking is the Security which was
equivalent to very good and the Average Mean was 4.3 and equivalent to very
good.
Chapter VI
the study. This study was to help the user locate easily the tomb of the
beloved ones using this application Tomb Locator using Global Positioning
Summary of Findings
The main purpose of our study was to locate the tomb easily especially
see details of the deceased like full name, date of birth, date of death, and
also picture of the tomb. Then after clicking it, user can see the navigation and
direction were to go easily and quickly to the tomb. After that a voice
application for about months. As part of our study we group mates researched
a cemetery where can we have an application that can help people from the
students can made a legitimate study research for this topic. User or
1.1 Compatibility
The respondents average weighted mean was 4.2 and the verbal
1.2 Functionality
The respondents average weighted mean was 4.3 and the verbal
1.3 Maintainability
The respondents average weighted mean was 4.3 and the verbal
1.4 Portability
The respondents average weighted mean was 4.2 and the verbal
1.5 Reliability
The respondents average weighted mean was 4.3 and the verbal
1.6 Security
The respondents average weighted mean was 4.7 and the verbal
Conclusion
This section contains conclusions based on the findings from the study.
quantitative data.
interviews indicate that families or friends are currently using the mobile
there. Some used to remember blockades, but were also using devices as
tools to locate it. Results from the survey indicate that family believes that
locating tomb should be able to use mobile devices in the cemetery and that
kind of use would be beneficial for the user. Most people also reported that
tombs, management of cemetery indicated that they only thought that the use
of mobile devices could have an impact outside the cemetery with regard to
participation of mapping and viewing it real time via aerial view, with respect to
responses were significantly higher than faculty responses, even when both
majority of the respondents convinced that the proposed system was capable
of the respondents were satisfied with the system by providing the right
The proposed system has satisfied all the criteria set forth. Therefore,
efficient with an overall mean of 4.3 for the proposed system concludes a
Recommendation
4. Proponents suggest that the proposed system can have a basis for
the study.
Bibliography
[1] Kerem Ok, Vedat Coskun, Busra Ozdenizci (2011), Theory to Practice,
John Wiley & Son Ltd.: Atrium, Southern Gate, chicsussex, P019
8SQ, United Kingdom. (PATTERN FOR BIBLIOGRAPHY)
IEEE
Archaeology, Methods.
Redlands)
User Manual
Screen 1
Screen 2
of deceased
Screen 3
Screen 4
In the next screen, we can show you the result of an actual person and
its location, also how to navigate.
Screen 5
This button with a cross shaped is the Navigation button, as you tap it, it can
proceed to the next screen, which is the Google Maps.
Screen 6
Screen 7
Adding a Tomb
Tap Edit:
Appendix A
Approval Letter
Appendix B
Evaluation Tools
1. Age 2. GGender
18-25 Male
23-33 Female
34-41
42-49
50 above
Attainment
Police
Teacher Elementary
Student
Staff High School
Others
College
Masteral
stored data?
proposed system?
Comments/Suggestions:
Appendix C
Screenshots
Appendix D
Market Analysis
Hardware Requirement
Software Requirement
= 35,565 * 0.20
Development Cost:
Appendix E
Environmental Analysis
Environmental Analysis
provide independently. With the use of this technology, this lessens the hustle
of locating the exact location of the tomb. With the use of smartphone, the
user can install the application and start to use it in the desired cemetery, a
Samsung Galaxy J2 X
Prime
Appendix F
COMPUTER SCIENCE DEPARTMENT
93
ASIAN INSTITUTE OF COMPUTER STUDIES
410 D and I Bldg, Edsa Corner, Caloocan City
Metro Manila, Philippines
Legal Implications
Legal Implications
communications (NFC) were far reaching for new business applications, for
the delivery of public services such as transport, and for public policy. This
stimulated innumerable innovative forms, but so far there has been insufficient
CHAPTER I
GENERAL PROVISIONS
SECTION 1. Short Title. This Act shall be known as the Data Privacy Act of
2012.
and communications systems in the government and in the private sector are
SEC. 3. Definition of Terms. Whenever used in this Act, the following terms
(b) Consent of the data subject refers to any freely given, specific, informed
indication of whereby the data subject agrees to the collection and processing
subject to do so.
processed.
(e) Filing system refers to any act of information relating to natural or juridical
material form or not, from which the identity of an individual is apparent or can
or when put together with other information would directly and certainly
identify an individual.
subject.
(j) Processing refers to any operation or any set of operations performed upon
personal information including, but not limited to, the collection, recording,
(k) Privileged information refers to any and all forms of data which under the
(1) About an individuals race, ethnic origin, marital status, age, color, and
but not limited to, social security numbers, previous or cm-rent health records,
kept classified.
SEC. 4. Scope. This Act applies to the processing of all types of personal
equipment that are located in the Philippines, or those who maintain an office,
including:
(1) The fact that the individual is or was an officer or employee of the
government institution;
(2) The title, business address and office telephone number of the individual;
(3) The classification, salary range and responsibilities of the position held by
(4) The name of the individual on a document prepared by the individual in the
including the terms of the contract, and the name of the individual given in the
individual, including the name of the individual and the exact nature of the
benefit;
purposes;
(e) Information necessary in order to carry out the functions of public authority
which includes the processing of personal data for the performance by the
No. 1405, otherwise known as the Secrecy of Bank Deposits Act; Republic Act
No. 6426, otherwise known as the Foreign Currency Deposit Act; and
Republic Act No. 9510, otherwise known as the Credit Information System Act
(CISA);
(f) Information necessary for banks and other financial institutions under the
ng Pilipinas to comply with Republic Act No. 9510, and Republic Act No. 9160,
including any applicable data privacy laws, which is being processed in the
Philippines.
Republic Act No. 53, which affords the publishers, editors or duly accredited
protection from being compelled to reveal the source of any news report or
(b) The entity has a link with the Philippines, and the entity is processing
(3) An entity that has a branch, agency, office or subsidiary in the Philippines
and the parent or affiliate of the Philippine entity has access to personal
information; and
(c) The entity has other links in the Philippines such as, but not limited to:
Philippines.
CHAPTER II
implement the provisions of this Act, and to monitor and ensure compliance of
the country with international standards set for data protection, there is hereby
of this Act;
act as a collegial body. For this purpose, the Commission may be given
(c) Issue cease and desist orders, impose a temporary or permanent ban on
on the security and technical measures and recommend the necessary action
(f) Coordinate with other government agencies and the private sector on
(g) Publish on a regular basis a guide to all laws relating to data protection;
codes shall adhere to the underlying data privacy principles embodied in this
Act: Provided, further, that such privacy codes may include private dispute
information controller. For this purpose, the Commission shall consult with
codes applying the standards set out in this Act, with respect to the persons,
entities, business activities and business sectors that said regulatory bodies
finally. That the Commission may review such privacy codes and require
(n) Ensure proper and effective coordination with data privacy regulators in
(o) Negotiate and contract with other data privacy authorities of other
privacy laws;
possession.
Policies and Planning. The Privacy Commissioner and the two (2) Deputy
for a term of three (3) years, and may be reappointed for another term of three
(3) years. Vacancies in the Commission shall be filled in the same manner in
The Privacy Commissioner must be at least thirty-five (35) years of age and of
recognized expert in the field of information technology and data privacy. The
information and communications technology and data privacy. This shall enjoy
Undersecretary.
on the behalf or under the direction, shall not be civilly liable for acts done in
good faith in the performance of the duties. However, he or she shall be liable
for canful or negligent acts done by him or her which are contrary to law,
morals, public policy and good customs even if he or she acted under orders
such official on the subject of the performance of his or her duties, where such
served for at least five (5) years in any agency of the government that is
involved in the processing of personal information including, but not limited to,
CHAPTER III
this Act and other laws allowing disclosure of information to the public and
proportionality.
(a) Collected for specified and legitimate purposes determined and declared
purposes only;
(c) Accurate, relevant and, where necessary for purposes for which it is to be
processing restricted;
(d) Adequate and not excessive in relation to the purposes for which collected
and processed;
(e) Retained only for as long as necessary for the fulfillment of the purposes
for which the data was obtained or for the establishment, exercise or defense
and
(f) Kept in a form which permits identification of data subjects for no longer
than is necessary for the purposes for which the data were collected and
may lie processed for historical, statistical or scientific purposes, and in cases
laid down in law may be stored for longer periods: Provided, further, that
prohibited by law, and when at least one of the following conditions exists:
fulfillment of a contract with the data subject or in order to take steps at the
comply with the requirements of public order and safety, or to fulfill functions
(f) The processing is necessary for the purposes of the legitimate interests
whom the data is disclosed, except where such interests are overridden by
fundamental rights and freedoms of the data subject which require protection
(a) The data subject has given his or her consent, specific to the purpose prior
(b) The processing of the same is provided for by existing laws and
information: Provided, further, That the consent of the data subjects are not
(c) The processing is necessary to protect the life and health of the data
subject or another person, and the data subject is not legally or physically
processing is only confined and related to the bona fide members of these
personal information are not transferred to third parties: Provided, finally, that
(f) The processing concerns such personal information as is necessary for the
responsible for ensuring that proper safeguards are in place to ensure the
Act and other laws for processing of personal information. The personal
information processor shall comply with all the requirements of this Act and
inadmissible.
Appendix G
Relevant Source Code
Source Code
AndroidManifest.xml
<uses-feature
android:name="android.hardware.location"
android:required="true" />
<uses-feature
android:name="android.hardware.location.gps"
android:required="true" />
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="Tomb Locator"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTask">
<intent-filter>
</intent-filter>
</activity>
<activity
android:name=".AddGraveActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTask"
android:parentActivityName=".MainActivity" />
<activity
android:name=".MapSelectActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTask"
android:parentActivityName=".AddGraveActivity" />
<activity
android:name=".DetailsActivity"
android:configChanges="orientation|keyboardHidden|screenSize" />
<activity
android:name=".PreferencesMainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTask"
android:parentActivityName=".MainActivity" />
<activity android:name=".Splashscreen">
<intent-filter>
</intent-filter>
</activity>
<activity
android:name=".Main2Activity"
android:label="@string/title_activity_main2"
android:theme="@style/AppTheme.NoActionBar"></activity>
</application>
AddGraveActivity.class
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_grave);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setButton();
updateUI();
@Override
getMenuInflater().inflate(R.menu.menu_add_grave,menu);
return super.onCreateOptionsMenu(menu);
@Override
if (item.getItemId() == R.id.menu_item_save_and_add) {
if
(checkEnteredData(editTextName.getText().toString(),editTextBirth.getText().toString(
), editTextDeath.getText().toString())) {
imageViewPhoto.getDrawable()).getBitmap();
db.insertGrave(editTextName.getText().toString(),
setResult(Activity.RESULT_OK);
finish();
return super.onOptionsItemSelected(item);
showWrongDataDialog(getString(R.string.error_empty_text_boxes));
return false;
if (!data1.matches("[0-9]{2}[.][0-9]{2}[.][0-9]{2}")) {
showWrongDataDialog(getString(R.string.error_birth_bad_format));
return false;
if (!data2.matches("[0-9]{2}[.][0-9]{2}[.][0-9]{2}")) {
showWrongDataDialog(getString(R.string.error_death_bad_format));
return false;
return true;
builder.setTitle(getString(R.string.saving_error));
builder.setMessage(message);
builder.setPositiveButton(getString(R.string.ok_capital), new
DialogInterface.OnClickListener() {
});
dialog.show();
buttonEditLocation.setOnClickListener(new View.OnClickListener() {
@Override
startActivityForResult(intent,MAP_REQUEST_ID);
});
buttonEditImage.setOnClickListener(new View.OnClickListener() {
@Override
selectImage();
});
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
getString(R.string.select_img)), IMAGE_REQUEST_ID);
@Override
if (resultCode == Activity.RESULT_OK) {
if (requestCode == MAP_REQUEST_ID) {
if (data != null) {
Picasso.with(this).load(imageUri).fit().centerInside().into(imageViewPhoto);
updateUI();
CameraFragment.class
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
*/
public CameraFragment() {
@Override
Bundle savedInstanceState) {
Databasehelper.class
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
@Override
@Override
if (oldVer == 1) {
oldVer++;
bitmap.compress(Bitmap.CompressFormat.PNG, 0, stream);
return stream.toByteArray();
public void insertGrave(String name, String birth, String death, double latitude,
SQLiteDatabase db = this.getWritableDatabase();
contentValues.put(GRAVES_NAME,name);
contentValues.put(GRAVES_BIRTH,birth);
contentValues.put(GRAVES_DEATH,death);
contentValues.put(GRAVES_LATITUDE,String.valueOf(latitude));
contentValues.put(GRAVES_LONGITUDE,String.valueOf(longitude));
contentValues.put(GRAVES_PHOTO,bitmapToBytes(photo));
contentValues.put(GRAVES_NOTE, note);
SQLiteDatabase db = this.getWritableDatabase();
return res;
if (cursor.getCount() == 0)
while (cursor.moveToNext()) {
String note;
if (cursor.getString(7) == null)
note = "";
else
note = cursor.getString(7);
graves.add(new Grave(cursor.getInt(0),
random.nextInt(9),cursor.getString(1),cursor.getString(2),cursor.getString(3),note));
return graves;
SQLiteDatabase db = this.getWritableDatabase();
return res;
res.moveToNext();
bundle.putParcelable(Tags.PHOTO, bitmap);
bundle.putDouble(Tags.MAP_LATITUDE,res.getDouble(4));
bundle.putDouble(Tags.MAP_LONGITUDE,res.getDouble(5));
bundle.putString(Tags.NOTE,res.getString(7));
return bundle;
SQLiteDatabase db = this.getWritableDatabase();
db.close();
DetailsActivity.class
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
setData();
floatingButton();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@Override
if (item.getItemId() == android.R.id.home)
ActivityCompat.finishAfterTransition(this);
return super.onOptionsItemSelected(item);
floatingActionButtonMap = (FloatingActionButton)
findViewById(R.id.floatingActionButtonAddToMap);
floatingActionButtonMap.setOnClickListener(new View.OnClickListener() {
@Override
startActivity(intent);
});
textViewName.setText(getIntent().getExtras().getString(Tags.NAME));
textViewDate.setText(getIntent().getExtras().getString(Tags.DATE));
textViewNote.setText(bundle.getString(Tags.NOTE));
latitude = bundle.getDouble(Tags.MAP_LATITUDE);
longitude = bundle.getDouble(Tags.MAP_LONGITUDE);
imageViewPhoto.setImageBitmap(bitmap);
Devicelocation.class
import android.Manifest;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AlertDialog;
import org.osmdroid.api.IMapController;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
import org.osmdroid.views.overlay.Marker;
this.mapController = mapController;
this.mapView = mapView;
this.context = context;
this.activity = activity;
locationSaved = false;
locationManager = (LocationManager)
context.getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(activity,
Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED
&&ActivityCompat.checkSelfPermission(activity,
Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
requestedLocation = true;
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
this);
if
(locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
requestedLocation = true;
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER
, 0, 0, this);
if (!requestedLocation) {
showDialogLocationProviderError();
} else {
showLoading();
builder.setTitle(context.getString(R.string.no_location_services_title));
builder.setMessage(context.getString(R.string.no_location_services));
builder.setPositiveButton(context.getString(R.string.ok_capital), new
DialogInterface.OnClickListener() {
});
dialog.show();
if (locationMarker == null)
locationMarker.setPosition(geoPoint);
locationMarker.setAnchor(Marker.ANCHOR_CENTER,
Marker.ANCHOR_BOTTOM);
mapView.getOverlays().add(locationMarker);
locationMarker.setTitle(context.getString(R.string.set_location));
mapView.invalidate();
if (loadingDialog == null)
context.getString(R.string.wait_loading), true);
loadingDialog.cancel();
if (locationMarker == null) {
return null;
} else {
return locationMarker.getPosition();
if (ActivityCompat.checkSelfPermission(activity,
Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED
&&ActivityCompat.checkSelfPermission(activity,
Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
locationManager.removeUpdates(this);
@Override
if (!locationSaved) {
drawMarker(myPointPosition);
mapController.setCenter(myPointPosition);
hideLoading();
locationSaved = true;
} else {
mapController.animateTo(myPointPosition);
removeUpdates();
@Override
@Override
@Override
GalleryFragment.class
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
*/
public GalleryFragment() {
/**
*/
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
@Override
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
@Override
Bundle savedInstanceState) {
GettingHereFragment.class
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public GettinghereFragment() {
@Override
Bundle savedInstanceState) {
Grave.class
public Grave(int id, int color, String name, String birthDate, String deathDate,
String note) {
this.id = id;
this.color = color;
this.name = name;
this.birthDate = birthDate;
this.deathDate = deathDate;
this.note = note;
return id;
return color;
return name;
return birthDate;
return deathDate;
return note;
GravesAdapter.class
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v4.util.Pair;
import android.support.v7.widget.RecyclerView;
import android.transition.Fade;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
inflater = LayoutInflater.from(context);
this.activity = activity;
this.gravesList = gravesList;
@Override
return holder;
@Override
holder.textViewName.setText(gravesList.get(position).getName());
gravesList.get(position).getDeathDate());
holder.textViewInitials.setText(parseInitials(gravesList.get(position).getName()));
holder.imageViewCircle.setImageDrawable(getCircleColor(position));
holder.idValue = gravesList.get(position).getId();
nameToParse.length() >= 2) {
Z]+")) {
returnedValue += nameToParse.toUpperCase().charAt(0);
int i = 1;
i++;
returnedValue += nameToParse.toUpperCase().charAt(i+1);
return returnedValue;
} else {
return "??";
this.gravesList = gravesList;
notifyDataSetChanged();
gravesList.remove(position);
notifyItemRemoved(position);
originalGravesList = null;
return removedGraved;
gravesList.add(positon, grave);
notifyItemInserted(positon);
originalGravesList = null;
return gravesList.get(position).getId();
switch (gravesList.get(position).getColor()) {
case 0:
return inflater.getContext().getDrawable(R.drawable.circle_100);
case 1:
return inflater.getContext().getDrawable(R.drawable.circle_200);
case 2:
return inflater.getContext().getDrawable(R.drawable.circle_300);
case 3:
return inflater.getContext().getDrawable(R.drawable.circle_400);
case 4:
return inflater.getContext().getDrawable(R.drawable.circle_500);
case 5:
return inflater.getContext().getDrawable(R.drawable.circle_600);
case 6:
return inflater.getContext().getDrawable(R.drawable.circle_700);
case 7:
return inflater.getContext().getDrawable(R.drawable.circle_800);
case 8:
return inflater.getContext().getDrawable(R.drawable.circle_900);
default:
return null;
@Override
return gravesList.size();
@Override
@Override
if (originalGravesList == null)
originalGravesList = gravesList;
if (charSequence != null){
if (g.getName().toLowerCase().contains(searchedValue) ||
g.getBirthDate().toLowerCase().contains(searchedValue) ||
g.getDeathDate().toLowerCase().contains(searchedValue) ||
g.getNote().toLowerCase().contains(searchedValue)) {
results.add(g);
oReturn.values = results;
return oReturn;
@Override
filterResults) {
gravesList = (ArrayList<Grave>)filterResults.values;
notifyDataSetChanged();
};
View.OnClickListener {
TextView textViewName;
TextView textViewDates;
TextView textViewInitials;
ImageView imageViewCircle;
int idValue;
super(itemView);
itemView.setOnClickListener(this);
imageViewCircle = (ImageView)
itemView.findViewById(R.id.imageViewMulticolorCircle);
@Override
activity.getWindow().setEnterTransition(new Fade(Fade.IN));
intent.putExtra(Tags.ID, idValue);
intent.putExtra(Tags.NAME, textViewName.getText().toString());
intent.putExtra(Tags.DATE, textViewDates.getText().toString());
ActivityOptionsCompat options =
ActivityOptionsCompat.makeSceneTransitionAnimation(
activity,
new Pair<View,
String>(view.findViewById(R.id.textViewName),inflater.getContext().getString(R.string
.transition_name)),
new Pair<View,
String>(activity.findViewById(R.id.floatingActionButtonAdd),inflater.getContext().getSt
ring(R.string.transition_floating_button)),
new Pair<View,
String>(view.findViewById(R.id.textViewDates),inflater.getContext().getString(R.string
.transition_date))
);
ActivityCompat.startActivity(inflater.getContext(),intent,options.toBundle());
Main2Activity.class
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.app.FragmentManager;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
implements NavigationView.OnNavigationItemSelectedListener {
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("Sangandaan Cemetery");
toolbar.setSubtitle("aics.edu.ph");
toolbar.setLogo(android.R.drawable.ic_menu_info_details);
fab.setOnClickListener(new View.OnClickListener() {
@Override
Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
});
R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
@Override
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
@Override
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main2, menu);
return true;
@Override
// Handle action bar item clicks here. The action bar can
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
return super.onOptionsItemSelected(item);
@SuppressWarnings("StatementWithEmptyBody")
@Override
int id = item.getItemId();
if (id == R.id.nav_camera) {
manager.beginTransaction().replace(R.id.relativelayout_for_fragment,
galleryFragment,
galleryFragment.getTag()
).commit();
manager.beginTransaction().replace(R.id.relativelayout_for_fragment,
cameraFragment,
cameraFragment.getTag()
).commit();
manager.beginTransaction().replace(R.id.relativelayout_for_fragment,
gettinghereFragment,
gettinghereFragment.getTag()
).commit();
drawer.closeDrawer(GravityCompat.START);
return true;
MainActivity.class
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.helper.ItemTouchHelper;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = new DatabaseHelper(this);
preferencesMain = PreferenceManager.getDefaultSharedPreferences(this);
setFloatingActionButton();
setRecyclerView();
PermissionChecker.checkForPermissions(this);
@Override
getMenuInflater().inflate(R.menu.menu_main,menu);
menu.findItem(R.id.menu_searcher).getActionView();
searchView.setMaxWidth(Integer.MAX_VALUE);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
return false;
@Override
if (newText.isEmpty()) {
gravesAdapter.getFilter().filter("");
} else {
gravesAdapter.getFilter().filter(newText);
return false;
});
return super.onCreateOptionsMenu(menu);
@Override
if (item.getItemId() == R.id.menu_settings) {
finishAffinity();
return super.onOptionsItemSelected(item);
@Override
if (isReadyToExit) {
finishAffinity();
} else {
Toast.makeText(this, getString(R.string.press_back_button_to_exit),
Toast.LENGTH_LONG).show();
isReadyToExit = true;
floatingActionButtonAdd = (FloatingActionButton)
findViewById(R.id.floatingActionButtonAdd);
floatingActionButtonAdd.setOnClickListener(new View.OnClickListener() {
@Override
startActivityForResult(intent,ADD_REQUEST_ID);
});
recyclerView.setAdapter(gravesAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
DividerItemDecoration(recyclerView.getContext(),
linearLayoutManager.getOrientation());
recyclerView.addItemDecoration(dividerItemDecoration);
ItemTouchHelper(createItemTouchCallback());
itemTouchHelper.attachToRecyclerView(recyclerView);
ItemTouchHelper.SimpleCallback(0,
ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
@Override
return false;
@Override
gravesAdapter.getGraveId(positonRemovedItem);
gravesAdapter.removeItem(positonRemovedItem);
if (preferencesMain.getBoolean("pref_snackbar",true)) {
.make(recyclerView, getString(R.string.item_removed),
Snackbar.LENGTH_LONG)
.setAction(getString(R.string.undo_upper), new
View.OnClickListener() {
@Override
gravesAdapter.restoreItem(positonRemovedItem,
removedGrave);
});
snackbar.addCallback(new Snackbar.Callback() {
@Override
if (event == Snackbar.Callback.DISMISS_EVENT_TIMEOUT)
db.removeGraveById(idItemToRemove);
});
snackbar.show();
} else {
db.removeGraveById(idItemToRemove);
};
return simpleCallback;
@Override
if (requestCode == ADD_REQUEST_ID) {
Activity.RESULT_OK)
Snackbar.make(recyclerView, getString(R.string.item_added),
Snackbar.LENGTH_LONG).show();
gravesAdapter.refreshData(db.getAllGraves());
if(view.getId() == R.id.Bdisplay)
startActivity(i);
MapSelectActivity.class
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import org.osmdroid.api.IMapController;
import org.osmdroid.events.MapEventsReceiver;
import org.osmdroid.tileprovider.constants.OpenStreetMapTileProviderConstants;
import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
import org.osmdroid.views.overlay.MapEventsOverlay;
import org.osmdroid.views.overlay.infowindow.InfoWindow;
MapEventsReceiver {
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map_select);
preferencesMain = PreferenceManager.getDefaultSharedPreferences(this);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
PermissionChecker.checkForPermissions(this);
enableMaps();
setOverlay();
deviceLocation.getLocation();
@Override
super.onDestroy();
deviceLocation.removeUpdates();
@Override
getMenuInflater().inflate(R.menu.menu_map_select,menu);
return super.onCreateOptionsMenu(menu);
@Override
if (item.getItemId() == R.id.menu_item_set_location) {
if (geoReturnPoint == null) {
resultData.putExtra("Lat", 0);
resultData.putExtra("Lon", 0);
} else {
resultData.putExtra(Tags.MAP_LATITUDE, geoReturnPoint.getLatitude());
resultData.putExtra(Tags.MAP_LONGITUDE,
geoReturnPoint.getLongitude());
setResult(Activity.RESULT_OK, resultData);
finish();
return super.onOptionsItemSelected(item);
map.getOverlays().add(0, mapEventsOverlay);
OpenStreetMapTileProviderConstants.setUserAgentValue(BuildConfig.APPLICATIO
N_ID);
setMapSource();
map.setBuiltInZoomControls(true);
map.setMultiTouchControls(true);
mapController = map.getController();
mapController.setZoom(20);
switch (Integer.valueOf(preferencesMain.getString("pref_map_provider","3"))) {
case 0:
map.setTileSource(TileSourceFactory.CYCLEMAP);
break;
case 1:
map.setTileSource(TileSourceFactory.BASE_OVERLAY_NL);
break;
case 2:
map.setTileSource(TileSourceFactory.HIKEBIKEMAP);
break;
case 3:
map.setTileSource(TileSourceFactory.MAPNIK);
break;
case 4:
map.setTileSource(TileSourceFactory.USGS_SAT);
break;
default:
map.setTileSource(TileSourceFactory.MAPNIK);
break;
@Override
InfoWindow.closeAllInfoWindowsOn(map);
deviceLocation.drawMarker(geoPoint);
return false;
@Override
return false;
PermissionChecker.class
import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
if (ContextCompat.checkSelfPermission(activity,
Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED)
{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
if (ContextCompat.checkSelfPermission(activity,
Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED)
{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
PreferencesMainActivity.class
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.support.v7.app.AppCompatActivity;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preferences_main);
FragmentTransaction mFragmentTransaction =
mFragmentManager.beginTransaction();
mFragmentTransaction.replace(android.R.id.content, mPrefsFragment);
mFragmentTransaction.commit();
PreferencesMainFragment.class
import android.os.Bundle;
import android.preference.PreferenceFragment;
@Override
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences_main);
SplashScreen.class
import android.app.Activity;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.Window;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.LinearLayout;
super.onAttachedToWindow();
window.setFormat(PixelFormat.RGBA_8888);
Thread splashTread;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splashscreen);
StartAnimations();
anim.reset();
l.clearAnimation();
l.startAnimation(anim);
anim.reset();
iv.clearAnimation();
iv.startAnimation(anim);
@Override
try {
int waited = 0;
sleep(100);
waited += 100;
MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
Splashscreen.this.finish();
} catch (InterruptedException e) {
// do nothing
} finally {
Splashscreen.this.finish();
};
splashTread.start();
Tags.class
Alpha.xml
<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="3000" />
Translate.xml
<set
xmlns:android="http://schemas.android.com/apk/res/android">
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0%"
android:toXDelta="0%"
android:fromYDelta="200%"
android:toYDelta="0%"
android:duration="2000"
android:zAdjustment="top" />
</set>
Activity_add_grave.xml
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_add_grave"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:background="@drawable/background"
tools:context="com.jakubbilinski.cemeterygravelocator.AddGraveActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="@dimen/activity_vertical_margin">
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/name"
android:id="@+id/editTextName"
android:maxLines="1" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/birth_date"
android:inputType="date"
android:id="@+id/editTextBirth"
android:maxLines="1" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/death_date"
android:inputType="date"
android:id="@+id/editTextDeath"
android:maxLines="1" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/note"
android:id="@+id/editTextNote"
android:inputType="textMultiLine"/>
</android.support.design.widget.TextInputLayout>
<Space
android:layout_width="match_parent"
android:layout_height="10dp" />
<TextView
android:text="@string/location"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textViewLocation"
android:textSize="20sp" />
<TextView
android:text="@string/latitude"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textViewLatitude" />
<TextView
android:text="@string/longitude"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textViewLongitude" />
<Button
android:text="@string/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/buttonEditLocation"
style="@style/Widget.AppCompat.Button.Borderless" />
<TextView
android:text="@string/photo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textViewPhoto"
android:textSize="20sp" />
<ImageView
android:layout_width="match_parent"
app:srcCompat="@drawable/replace"
android:id="@+id/imageViewPhoto"
android:scaleType="centerInside"
android:layout_height="200dp"
android:contentDescription="@string/photo_of_grave" />
<Button
android:text="@string/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/buttonEditPhoto"
style="@style/Widget.AppCompat.Button.Borderless" />
<Space
android:layout_width="match_parent"
android:layout_height="15dp" />
</LinearLayout>
</ScrollView>
Activity_details.xml
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_details"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.jakubbilinski.cemeterygravelocator.DetailsActivity">
<ImageView
android:layout_width="wrap_content"
app:srcCompat="@drawable/replace"
android:id="@+id/imageViewPhoto"
android:layout_height="200dp"
android:scaleType="centerCrop"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:elevation="2dp"
android:contentDescription="@string/photo_of_grave" />
<View
android:layout_width="0dp"
android:background="@color/colorPrimaryDark"
app:layout_constraintTop_toBottomOf="@+id/imageViewPhoto"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:id="@+id/ViewColoredDark"
android:layout_height="100dp" />
<View
android:layout_width="0dp"
android:background="@android:color/white"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:id="@+id/ViewColoredWhite"
app:layout_constraintHorizontal_bias="1.0"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@+id/ViewColoredDark"
app:layout_constraintBottom_toBottomOf="parent"
android:elevation="2dp" />
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textViewName"
android:layout_marginStart="16dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageViewPhoto"
android:layout_marginTop="16dp"
android:textSize="36sp"
android:transitionName="@string/transition_name"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textViewDates"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/textViewName"
android:layout_marginStart="32dp"
app:layout_constraintLeft_toLeftOf="parent"
android:transitionName="@string/transition_date"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
app:fabSize="normal"
app:srcCompat="@drawable/ic_add_location"
android:id="@+id/floatingActionButtonAddToMap"
android:layout_marginEnd="16dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/imageViewPhoto"
android:transitionName="@string/transition_floating_button"
android:layout_marginTop="175dp" />
<TextView
android:layout_width="0dp"
android:layout_height="0dp"
android:id="@+id/textViewNoteContent"
android:layout_marginStart="24dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginEnd="24dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="16dp"
app:layout_constraintTop_toBottomOf="@+id/textViewNote"
android:elevation="2dp"
app:layout_constraintHorizontal_bias="0.458"
app:layout_constraintVertical_bias="0.0" />
<TextView
android:text="@string/note_colon"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/textViewNote"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/ViewColoredDark"
android:layout_marginStart="16dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginEnd="16dp"
android:elevation="2dp"/>
</android.support.constraint.ConstraintLayout>
Activity_main.xml
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
tools:context="com.jakubbilinski.cemeterygravelocator.MainActivity">
<android.support.v7.widget.RecyclerView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.0"
android:id="@+id/recyclerView" />
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
app:srcCompat="@drawable/ic_add"
android:id="@+id/floatingActionButtonAdd"
app:layout_constraintBottom_toBottomOf="@+id/recyclerView"
app:layout_constraintRight_toRightOf="@+id/recyclerView"
android:layout_marginEnd="16dp"
android:layout_marginBottom="24dp"
android:transitionName="@string/transition_floating_button"
app:fabSize="normal" />
<Button
android:id="@+id/Bdisplay"
android:layout_width="65dp"
android:layout_height="53dp"
android:layout_marginBottom="26dp"
android:layout_marginRight="72dp"
android:background="@mipmap/ic_launcher"
android:onClick="onButtonClick"
android:text=""
app:layout_constraintBottom_toBottomOf="@+id/recyclerView"
app:layout_constraintRight_toRightOf="@+id/recyclerView"
tools:layout_editor_absoluteX="247dp"
tools:layout_editor_absoluteY="424dp" />
</android.support.constraint.ConstraintLayout>
Activity_main2.xml
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
android:background="@drawable/background1"
<include
layout="@layout/app_bar_main2"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main2"
app:menu="@menu/activity_main2_drawer" />
</android.support.v4.widget.DrawerLayout>
Activity_map_select.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_map_select"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.jakubbilinski.cemeterygravelocator.MapSelectActivity">
<org.osmdroid.views.MapView android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Activity_preferences_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_preferences_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/background"
tools:context="com.jakubbilinski.cemeterygravelocator.PreferencesMainActivity">
</RelativeLayout>
Activity_splashscreen.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:layout_gravity="center"
android:id="@+id/lin_lay"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/splash"
android:background="@drawable/splash_img" />
</LinearLayout>
App_bar_main2.xml
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.jakubbilinski.cemeterygravelocator.Main2Activity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:visibility="invisible"
app:srcCompat="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>
Content_main2.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/relativelayout_for_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.jakubbilinski.cemeterygravelocator.Main2Activity"
tools:showIn="@layout/app_bar_main2">
</RelativeLayout>
Fragment_camera.xml
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
tools:context="com.jakubbilinski.cemeterygravelocator.CameraFragment">
<TextView
android:id="@+id/textView11"
android:layout_width="347dp"
android:layout_height="16dp"
android:textAppearance="@style/TextAppearance.AppCompat.Button"
android:textStyle="bold|italic"
tools:layout_editor_absoluteX="2dp"
tools:layout_editor_absoluteY="0dp" />
<TextView
android:id="@+id/textView17"
android:layout_width="361dp"
android:layout_height="46dp"
android:layout_marginTop="0dp"
android:fontFamily="sans-serif-condensed"
Computer Studies. This application was created to fulfill the requirements for the
app:layout_constraintTop_toBottomOf="@+id/textView11"
tools:layout_editor_absoluteX="0dp" />
<TextView
android:id="@+id/textView18"
android:layout_width="360dp"
android:layout_height="21dp"
android:layout_marginTop="0dp"
android:text="ACKNOWLEDGEMENT"
android:textAppearance="@style/TextAppearance.AppCompat.Button"
android:textStyle="bold|italic"
app:layout_constraintTop_toBottomOf="@+id/textView17"
tools:layout_editor_absoluteX="0dp" />
<TextView
android:id="@+id/textView19"
android:layout_width="315dp"
android:layout_height="36dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="8dp"
android:fontFamily="sans-serif-condensed"
android:text="The proponents want to give thanks to all the person that have
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView18"
app:layout_constraintHorizontal_bias="0.517" />
<TextView
android:id="@+id/textView20"
android:layout_width="315dp"
android:layout_height="31dp"
android:fontFamily="sans-serif-condensed"
android:text="First we would like to thank our God for giving us the strength to
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/textView19"
app:layout_constraintHorizontal_bias="0.517" />
<TextView
android:id="@+id/textView21"
android:layout_width="315dp"
android:layout_height="33dp"
android:fontFamily="sans-serif-condensed"
android:text="To our families for the moral and financial support in order to finish
this study."
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/textView20"
app:layout_constraintHorizontal_bias="0.517" />
<TextView
android:id="@+id/textView22"
android:layout_width="313dp"
android:layout_height="36dp"
android:fontFamily="sans-serif-condensed"
android:text="To Mr. Tomas Benjamin P. Berbano III for giving us time to finish
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/textView21"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/textView23"
android:layout_width="313dp"
android:layout_height="34dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="8dp"
android:fontFamily="sans-serif-condensed"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView22" />
<TextView
android:id="@+id/textView24"
android:layout_width="315dp"
android:layout_height="36dp"
android:fontFamily="sans-serif-condensed"
android:text="And lastly to all the respondents for the full cooperation that made
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/textView23" />
<TextView
android:id="@+id/textView25"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="22dp"
android:layout_marginTop="8dp"
android:fontFamily="sans-serif-condensed"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView24" />
<TextView
android:id="@+id/textView26"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="43dp"
android:layout_marginTop="0dp"
android:fontFamily="sans-serif-condensed"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView25" />
<TextView
android:id="@+id/textView27"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-1dp"
android:fontFamily="sans-serif-condensed"
app:layout_constraintTop_toBottomOf="@+id/textView26"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/textView28"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="51dp"
android:layout_marginTop="0dp"
android:fontFamily="sans-serif-condensed"
android:text="Jhaycee N. Benitez"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView27" />
<ImageView
android:id="@+id/imageView6"
android:layout_width="83dp"
android:layout_height="66dp"
app:srcCompat="@drawable/aics"
android:layout_marginLeft="53dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="33dp" />
<TextView
android:id="@+id/textView29"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-condensed"
app:layout_constraintLeft_toRightOf="@+id/imageView6"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.205"
android:layout_marginTop="14dp"
app:layout_constraintTop_toBottomOf="@+id/textView28" />
<TextView
android:id="@+id/textView30"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-condensed"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toRightOf="@+id/imageView6"
android:layout_marginLeft="8dp"
app:layout_constraintHorizontal_bias="0.129"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/textView29" />
</android.support.constraint.ConstraintLayout>
Fragment_Gallery.xml
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
tools:context="com.jakubbilinski.cemeterygravelocator.GalleryFragment">
<ImageView
android:id="@+id/imageView2"
android:layout_width="383dp"
android:layout_height="135dp"
android:scaleType="centerCrop"
app:srcCompat="@drawable/sangandaan"
tools:layout_editor_absoluteX="1dp"
tools:layout_editor_absoluteY="-4dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat.Button"
android:textStyle="bold|italic"
tools:layout_editor_absoluteX="1dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/imageView2" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-condensed"
android:text="Address"
android:textStyle="bold"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-condensed"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/textView3"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-condensed"
android:text="Open Hours:"
android:textStyle="bold"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/textView4" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-condensed"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/textView5"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.086" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Owner:"
android:textStyle="bold"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/textView6" />
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-condensed"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@+id/textView7"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.077" />
</android.support.constraint.ConstraintLayout>
Fragment_gettinghere.xml
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
tools:context="com.jakubbilinski.cemeterygravelocator.GettinghereFragment">
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="7dp"
android:text="HOW TO NAVIGATE:"
android:textStyle="bold"
app:layout_constraintHorizontal_bias="0.012"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
<TextView
android:id="@+id/textView10"
android:layout_width="365dp"
android:layout_height="43dp"
android:layout_marginLeft="10dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="9dp"
app:layout_constraintTop_toBottomOf="@+id/textView9"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/textView12"
android:layout_width="352dp"
android:layout_height="54dp"
navigation. 4G LTE and Pocket Wi-FI are the same because both devices uses LTE
SimCard."
android:layout_marginTop="13dp"
app:layout_constraintTop_toBottomOf="@+id/textView10"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.187" />
<TextView
android:id="@+id/textView13"
android:layout_width="352dp"
android:layout_height="53dp"
Cemetery, you may want to switch to Satellite View when using the Navigation."
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="7dp"
app:layout_constraintTop_toBottomOf="@+id/textView12"
app:layout_constraintHorizontal_bias="0.187" />
<TextView
android:id="@+id/textView14"
android:layout_width="351dp"
android:layout_height="71dp"
android:text="The Red Marker should indicate the Pin where the Tomb is
located, if the GPS is on, a color blue circle icon is your location. Walk until you reach
the Red Pin Marker and look the name of the Tomb."
android:layout_marginTop="7dp"
app:layout_constraintTop_toBottomOf="@+id/textView13"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.176" />
<TextView
android:id="@+id/textView16"
android:layout_width="333dp"
android:layout_height="45dp"
android:text="If you have any question and want to make this application better,
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="33dp"
app:layout_constraintTop_toBottomOf="@+id/textView14"
app:layout_constraintHorizontal_bias="0.514" />
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@android:drawable/stat_sys_phone_call"
android:layout_marginLeft="16dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="12dp"
app:layout_constraintTop_toBottomOf="@+id/textView16"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="8dp"
app:layout_constraintVertical_bias="0.157"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.0" />
<TextView
android:id="@+id/textView31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="facebook.com/enzooooKAI"
android:layout_marginTop="20dp"
app:layout_constraintTop_toBottomOf="@+id/textView16"
app:layout_constraintLeft_toRightOf="@+id/imageView"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.063" />
<TextView
android:id="@+id/textView32"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="facebook.com/kevin.roque.19"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/textView31"
app:layout_constraintHorizontal_bias="0.276" />
<TextView
android:id="@+id/textView33"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="facebook.com/24dustincamacho"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/textView32"
app:layout_constraintHorizontal_bias="0.312" />
</android.support.constraint.ConstraintLayout>
Nav_header_main2.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@drawable/splash_img"
android:gravity="bottom"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@android:color/holo_orange_dark" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Androidprogrammers@EnDustVin"
android:textColor="@color/colorPrimaryLight" />
</LinearLayout>
Row_Grave_Item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="55dp">
android:background="@drawable/background"
<RelativeLayout
android:orientation="vertical"
android:layout_width="60dp"
android:layout_height="match_parent">
<ImageView
android:layout_width="40dp"
android:layout_height="wrap_content"
app:srcCompat="@drawable/circle_500"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:id="@+id/imageViewMulticolorCircle"
android:contentDescription="@string/circle_initials" />
<TextView
android:text="TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:id="@+id/textViewInitials"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="18sp"
tools:ignore="HardcodedText" />
</RelativeLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textViewName"
android:textSize="24sp"
android:transitionName="@string/transition_name"
tools:ignore="HardcodedText" />
<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textViewDates"
android:textStyle="normal|italic"
android:transitionName="@string/transition_date"
tools:ignore="HardcodedText" />
</LinearLayout>
Activity_main_2_drawer.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_camera"
android:icon="@drawable/ic_menu_cross"
<item
android:id="@+id/nav_gallery"
android:icon="@drawable/ic_menu_group"
<item
android:id="@+id/nav_gettinghere"
android:icon="@drawable/ic_menu_bus"
</group>
<item android:title="Communicate">
<menu>
<item
android:id="@+id/nav_share"
android:icon="@drawable/ic_menu_share"
android:title="Share" />
<item
android:id="@+id/nav_send"
android:icon="@drawable/ic_menu_send"
android:title="Send" />
</menu>
</item>
</menu>
Main2.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
</menu>
Menu_add_grave.xml
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_item_save_and_add"
android:title="@string/save"
app:showAsAction="always"
android:icon="@drawable/ic_save_white_24dp"/>
</menu>
Menu_main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/menu_searcher"
android:title="@string/search"
android:icon="@drawable/ic_search_white_24dp"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always" />
<item android:id="@+id/menu_settings"
android:title="@string/settings"
android:icon="@drawable/ic_settings_white_24dp"
app:showAsAction="ifRoom" />
<item android:id="@+id/menu_import_export"
android:title="@string/import_export"
app:showAsAction="never" />
<item android:id="@+id/menu_close_app"
android:title="@string/close_app"
app:showAsAction="never" />
</menu>
Menu_map_select.xml
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_item_set_location"
android:title="@string/set"
app:showAsAction="always"
android:icon="@drawable/ic_done_white_24dp" />
</menu>
Dependencies(build.gradle)module;app
repositories {
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.jakubbilinski.cemeterygravelocator"
minSdkVersion 21
targetSdkVersion 25
versionCode 1020170125
versionName "1.0.2017.01.25"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
buildTypes {
release {
minifyEnabled false
rules.pro'
dependencies {
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
})
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
compile 'com.android.support:recyclerview-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
compile 'com.github.MKergall:osmbonuspack:6.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.support:support-v4:25.3.0'
testCompile 'junit:junit:4.12'
Appendix H
Gantt chart
COMPUTER SCIENCE DEPARTMENT
256
ASIAN INSTITUTE OF COMPUTER STUDIES
410 D and I Bldg, Edsa Corner, Caloocan City
Metro Manila, Philippines
NOVEMBER
OCTOBER
AUGUST
SEPT.
JUNE
MAR.
DEC.
JULY
APR.
FEB.
JAN.
TASK
WEEK 1-4
Constructing a
Proposed Title
Gathering
Information about
the
Proposed Study
Analyzing the
Proposed System
Documentation of
the Proposed
Study
Designing the
Proposed System
Experimentation
Deployment and
Software
Implementation of
the Proposed
System
Appendix I
Progress Report
Progress Report
Introduction
progress evaluation.
TASK 1.
DESCRIPTION:
City. The challenge is how the study be conducted in order that the proposed
noticed that mapping system was needed in order to organize all the details
TASK 2:
DESCRIPTION:
the key informant of the research project, Mr. Federico Maghinang, Cemetery
Administrative Officer.
TASK 3:
DESCRIPTION:
This was existing problem in every cemetery in which the proper record
management must maintained. In this way, the proponents have come up with
the idea of using Global Positioning System (GPS) in the way to mapped and
locate the tomb to be used in order to provide navigation with ease to the
Sangandaan Cemetery.
TASK 4:
DESCRIPTION:
This was conducted in more than (7) seven months; the proponents
were on track in documenting this study. The documentation of this study was
TASK 5:
DESCRIPTION:
This was intended for more than seven (7) months, the proponents
engineered the proposed system. The ideas and concepts formed from the
analysis of the problem were applied to use in system development and thus
the following stages of system development were worked out with the
TASK 6:
DESCRIPTION:
In the facilitation of the proposed system the data of the patients were
input in the tomb locator to ease the work of the personnel. After the
random family that had been the subject of the study. Twenty (20)
TASK 7:
DESCRIPTION:
The data gathered from the conducted survey were analyzed by the
proponents for the studys statistical treatment. Each respondents rating was
result. The Likert Scale method was towards the rating scheme of the
respondents.
TASK 8:
DESCRIPTION:
The final task in the entire study was to operate the system and this
Appendix J
Computation for
Statistical Treatment
COMPUTER SCIENCE DEPARTMENT
265
ASIAN INSTITUTE OF COMPUTER STUDIES
410 D and I Bldg, Edsa Corner, Caloocan City
Metro Manila, Philippines
I. Computation of Frequency
Formula: F = F/N
where,
Solution:
Excellent:
f = (2)/1
f=2
Very Good:
f= (8)/1
f=8
Good:
f = (11)/1
f = 11
Satisfactory:
f = (3)/1
f= 3
Fair:
f= (1)/1
f= 1
2 8 11 3 1 25
Formula: P = f/ N x 100
where,
P = percentage
N = number of respondents
Solution:
Excellent:
P = (2/25) * 100
P = 8%
Very Good:
P = (8/25) * 100
P = 32%
Good:
P = (11/25) * 100
P = 44%
Satisfactory:
P = (3/25) * 100
P = 12%
Fair:
P = (1/25) * 100
P = 4%
X
x
Formula: n
where:
Solution:
X ( 2 8 11 3 1) / 7 3.57
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 19 20 21 2 23 24 25
8 2
Comp 1 4 2 3 3 3 3 3 3 3 4 3 3 2 3 4 4 3 4 4 3 3 3 3 4 1
atibilit
y
(O E ) 2
2
Formula:
x E , with df = c-1
where,
O = observed frequency
E = expected frequency
df = degrees of freedom
= level of significance
Computation:
2 4 -2 4 1
8 4 4 16 4
11 4 7 49 12.3
3 4 -1 1 0.3
1 4 -3 9 2.25
X2 Computed 19.85
(19.85) was greater than the critical or table value (9.48) at 0.05 level of
terms of the overall compatibility feature of the proposed Mobile tap card. The
ability of the system to provide medical record of the patient using NFC card
was evident.
I. Computation of Frequency
Formula: F = F/N
where,
Solution:
Excellent:
f = (0)/1
f=0
Very Good:
f= (10)/1
= 10
Good:
f = (8)/1
f=8
Satisfactory:
f = (7)/1
f=7
Fair:
f= (0)/1
f=0
0 10 8 7 0 25
Formula: P = f/ N x 100
where,
P = percentage
N = number of respondents
Solution:
Excellent:
P = (0/25) * 100
P = 0%
Very Good:
P = (10/25) * 100
P = 40%
Good:
P = (8/25) * 100
P = 32%
Satisfactory:
P = (7/25) * 100
P = 28%
Fair:
P = (0/25) * 100
P = 0%
Formula:
X
x
n
where:
Solution:
X (0 10 8 7 0) / 7 4.00
Categ Items
ory
Actual Observation Per Respondents Mean
No.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Functi 1 2 2 4 4 4 4 4 3 4 2 2 4 3 2 3 3 3 4 3 2 2 3 4 4 3
onalit
4.00
y
Formula:
(O E ) 2
2
x E , with df = c-1
where,
O = observed frequency
E = expected frequency
df = degrees of freedom
= level of significance
Computation:
0 4 -4 16 4
10 4 6 36 9
8 4 4 16 4
7 4 3 9 2.25
0 4 -4 16 4
X2 Computed 23.25
(23.25) was greater than the critical or table value (9.48) at 0.05 level of
terms of the overall functionality feature of the proposed Mobile tap card. The
ability of the system to provide medical record of the patient using NFC card
was evident.
I. Computation of Frequency
Formula: F = F/N
where,
Solution:
Excellent:
f = (7)/1
=7
Very Good:
f= (12)/1
= 12
Good:
f = (4)/1
=4
Satisfactory:
f = (2)/1
=2
Fair:
f= (0)/1
=0
7 12 4 2 0 25
Formula: P = f/ N x 100
where,
P = percentage
N = number of respondents
Solution:
Excellent:
P = (7/25) * 100
= 28%
Very Good:
P = (12/25) * 100
= 48%
Good:
P = (4/25) * 100
= 16%
Satisfactory:
P = (2/25) * 100
= 8%
Fair:
P = (0/25) * 100
= 0%
Formula:
X
x
n
where:
Solution:
X (7 12 4 2 0) / 7 3.60
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Maint 1 3 5 4 2 4 4 3 4 3 4 3 2 3 2 4 4 4 4 3 2 3 3 4 3 4
anabil
4.00
ity
Formula:
(O E ) 2
2
x E , with df = c-1
where,
O = observed frequency
E = expected frequency
df = degrees of freedom
= level of significance
Computation:
7 4 -4 16 4
12 4 8 64 16
4 4 0 0 0
2 4 -2 4 1
0 4 -4 16 4
X2 Computed 25.00
(25.00) was greater than the critical or tabular value (9.48) at 0.05 level of
terms of the overall maintainability feature of the proposed Mobile tap card.
The ability of the system to provide medical record of the patient using NFC
I. Computation of Frequency
Formula: F = F/N
where,
Solution:
Excellent:
f = (3)/1
=3
Very Good:
f= (8)/1
=8
Good:
f = (11)/1
= 11
Satisfactory:
f = (3)/1
=3
Fair:
f= (0)/1
=0
3 8 11 3 0 25
Formula: P = f/ N x 100
where,
P = percentage
N = number of respondents
Solution:
Excellent:
P = (3/25) * 100
= 12%
Very Good:
P = (8/25) * 100
= 32%
Good:
P = (11/25) * 100
= 44%
Satisfactory:
P = (3/25) * 100
= 12%
Fair:
P = (0/25) * 100
= 0%
Formula:
X
x
n
where:
Solution:
X (7 12 4 2 0) / 7 4.00
Categ Items
ory
Actual Observation Per Respondents Mean
No.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Porta 1 4 5 3 3 4 4 3 3 4 4 4 3 3 2 3 3 3 4 4 4 2 3 3 3 3
bility
4.00
Formula:
(O E ) 2
2
x E , with df = c-1
where,
O = observed frequency
E = expected frequency
df = degrees of freedom
= level of significance
Computation:
3 4 -1 1 0.25
8 4 4 16 4
11 4 7 49 12.25
3 4 -1 1 1
0 4 -4 16 4
X2 Computed 21.50
(21.50) was greater than the critical or tabular value(9.48) at 0.05 level of
terms of the overall portability feature of the proposed Mobile tap card. The
ability of the system to provide medical record of the patient using NFC card
was evident.
I. Computation of Frequency
Formula: F = F/N
where,
Solution:
Excellent:
f = (1)/1
=1
Very Good:
f= (9)/1
=9
Good:
f = (11)/1
= 11
Satisfactory:
f = (4)/1 = 4
Fair: f= (0)/1
=0
1 9 11 4 0 25
Formula: P = f/ N x 100
where,
P = percentage
N = number of respondents
Solution:
Excellent:
P = (1/25) * 100
= 4%
Very Good:
P = (9/25) * 100
= 36%
Good:
P = (11/25) * 100
= 44%
Satisfactory:
P = (4/25) * 100
= 16%
Fair:
P = (0/25) * 100
= 0%
X
x
Formula: n
where:
Solution:
X (7 12 4 2 0) / 7 3.57
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Reliab 1 2 4 4 3 3 3 4 4 3 2 1 3 3 2 3 3 4 3 3 3 4 3 4 4 4
ility
4.00
Formula:
(O E ) 2
2
x E , with df = c-1
where,
O = observed frequency
E = expected frequency
df = degrees of freedom
= level of significance
terms of the overall reliability feature of the proposed system improving health
Computation:
1 4 -3 1 0.25
9 4 5 25 6.25
11 4 7 49 12.25
3 4 -1 1 1
0 4 -4 16 4
X2 Computed 23.75
(23.75) was greater than the critical or tabular value(9.48) at 0.05 level of
terms of the overall reliability feature of the proposed Mobile tap card. The
ability of the system to provide medical record of the patient using NFC card
was evident.
I. Computation of Frequency
Formula: F = F/N
where,
Solution:
Excellent:
f = (6)/1
=6
Very Good:
f= (13)/1
= 13
Good:
f = (4)/1
=4
Satisfactory:
f = (2)/1
=2
Fair:
f= (0)/1
=0
6 13 4 2 0 25
Formula: P = f/ N x 100
where,
P = percentage
N = number of respondents
Solution:
Excellent:
P = (6/65) * 100
= 24%
Very Good:
P = (13/25) * 100
= 52%
Good:
P = (4/25) * 100
= 16%
Satisfactory:
P = (2/25) * 100
= 8%
Fair:
P = (0/25) * 100
= 0%
Formula:
X
x
n
where:
Solution:
X (6 13 4 2 0) / 7 4.00
Categ Items
ory
Actual Observation Per Respondents Mean
No.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Securi 1 3 4 4 2 3 4 3 4 3 2 2 3 2 3 4 4 4 3 4 3 2 4 3 4
ty
4.00
Formula:
(O E ) 2
2
x E , with df = c-1
where,
O = observed frequency
E = expected frequency
df = degrees of freedom
= level of significance
terms of the overall security feature of the proposed system improving health
Computation:
6 4 2 4 1
13 4 9 81 20.25
4 4 0 0 0
2 4 -2 4 1
0 4 -4 16 4
X2 Computed 26.25
(26.25) was greater than the critical or tabular value(9.48) at 0.05 level of
terms of the overall security feature of the proposed Mobile tap card. The
ability of the system to provide medical record of the patient using NFC card
was evident.
I. Computation of Frequency
Formula: F = F/N
where,
Solution:
Excellent:
f = (7)/1
=7
Very Good:
f= (13)/1
= 13
Good:
f = (4)/1
=4
Satisfactory:
f = (1)/1
=1
Fair:
f= (0)/1
=0
7 13 4 1 0 25
Formula: P = f/ N x 100
where,
P = percentage
N = number of respondents
Solution:
Excellent:
P = (7/25) * 100
= 28%
Very Good:
P = (13/25) * 100
= 52%
Good:
P = (4/25) * 100
= 16%
Satisfactory:
P = (1/25) * 100
= 4%
Fair:
P = (0/25) * 100
= 0%
Formula:
X
x
n
where:
Solution:
X (7 13 4 1 0) / 7 3.57
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Usabil 1 2 2 3 3 3 4 3 4 3 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 3
ity
4.00
Formula:
(O E ) 2
2
x E , with df = c-1
where,
O = observed frequency
E = expected frequency
df = degrees of freedom
= level of significance
terms of the overall usability feature of the proposed system improving health
Computation:
7 4 3 9 2.25
13 4 7 49 12.25
4 4 0 0 0
1 4 -3 9 2.25
0 4 -4 16 4
X2 Computed 20.75
(20.75) was greater than the critical or tabular value(9.48) at 0.05 level of
terms of the overall portability feature of the proposed Mobile tap card. The
ability of the system to provide medical record of the patient using NFC card
was evident.
Appendix K
Grammarians Certificate
G R A M M A R I A N S C E R T I F I C A T E
Kaunlaran High School has reviewed and went through all the pages of the
that govern the composition of sentences, phrases, and words in the English
language.
SIGNED:
Grammarian
Appendix M
Curriculum Vitae