In this architecture, first the locations are obtained either applications,
Google Maps or Foursquare.
Then, the Location Tagging Manager saves the obtained location information into the SQLite database.
Reminder Manager is responsible for forming the features of the reminder (content, time, etc.)
and saving it into the SQLite database.
Finally, Notification Manager checks whether the conditions to alert occur or not.
It gathers the current location information either via GPS and Wi-Fi/Cell ID sensors and checks whether a reminder exists for the current location and time interval.
Therefore,the Notification Manager is mainly responsible for triggering the alert when all the conditions are satisfied.
The following sections will explain each major component in detail.