A geo-fencing task manager for Android — set reminders that trigger automatically when you arrive at a location.
Location Reminder lets users create to-do reminders that fire a notification the moment they enter a defined geographic area — no manual checking required. Built as the capstone project for the Udacity Advanced Android Kotlin Developer Nanodegree, it demonstrates a complete production-ready Android app with authentication, map interaction, background geofencing, and local persistence.
- 🔐 Firebase Authentication — sign in with your Google/Gmail account in one tap
- 🗺️ Interactive Map — long-press anywhere on the map to drop a pin and set it as your reminder trigger zone
- 🔔 Geo-fence Notifications — background geofence monitors your location; a notification fires automatically when you enter the target area
- 📋 Reminder List — view all your saved reminders with title, description, and linked location
- ✏️ Edit & Delete — manage your reminders with full CRUD support
- 🔋 Battery-efficient — uses Android's Geofencing API for low-power background tracking
The app uses Firebase Authentication to provide seamless sign-in with Gmail — no separate account registration needed.
Users can add a new reminder with a title and description, then open the map to tap exactly where the reminder should activate — anywhere in the world.
Once the user enters the selected area, a notification fires instantly — showing the reminder title and the name of the reached place — even when the app is in the background.
| Layer | Technology |
|---|---|
| Language | Kotlin |
| Architecture | MVVM (ViewModel + LiveData) |
| Authentication | Firebase Authentication (Google Sign-In) |
| Maps & Location | Google Maps SDK, Android Location Services |
| Geo-fencing | Android Geofencing API |
| Local Persistence | Room Database |
| Dependency Injection | Koin |
| Navigation | Android Navigation Component |
| Build | Gradle |
The app follows the MVVM pattern with a clean separation of concerns:
UI Layer → Fragments + ViewModels (LiveData observations)
Domain Layer → Repository pattern for data access abstraction
Data Layer → Room (local DB) + Firebase (auth) + Geofencing API
- Android Studio Flamingo or later
- Android device or emulator running API 26+
- Google Maps API key
- Firebase project with Authentication enabled (Google Sign-In)
-
Clone the repository
git clone https://github.com/Andrew-A-A/Location_Reminder.git cd Location_Reminder -
Add your Google Maps API key
In
local.properties:MAPS_API_KEY=your_api_key_here -
Connect Firebase
- Create a Firebase project at console.firebase.google.com
- Enable Authentication → Google Sign-In
- Download
google-services.jsonand place it in the/appdirectory
-
Build and run
Open in Android Studio and run on your device or emulator.
Built as the capstone project for the Udacity Advanced Android Kotlin Developer Nanodegree (Aug–Sep 2022). The goal was to deliver a fully functional, architecturally sound Android app combining authentication, maps, background services, and local persistence — demonstrating mastery of the modern Android development stack.





