Skip to content

Andrew-A-A/Location_Reminder

Repository files navigation

📍 Location Reminder

A geo-fencing task manager for Android — set reminders that trigger automatically when you arrive at a location.

Kotlin Android Firebase Google Maps Udacity


Overview

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.


Features

  • 🔐 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

Screenshots

Authentication

The app uses Firebase Authentication to provide seamless sign-in with Gmail — no separate account registration needed.


Adding a Reminder & Selecting a Location

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.


Geo-fence Notification

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.


Tech Stack

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

Architecture

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

Getting Started

Prerequisites

  • Android Studio Flamingo or later
  • Android device or emulator running API 26+
  • Google Maps API key
  • Firebase project with Authentication enabled (Google Sign-In)

Setup

  1. Clone the repository

    git clone https://github.com/Andrew-A-A/Location_Reminder.git
    cd Location_Reminder
  2. Add your Google Maps API key

    In local.properties:

    MAPS_API_KEY=your_api_key_here
    
  3. Connect Firebase

    • Create a Firebase project at console.firebase.google.com
    • Enable Authentication → Google Sign-In
    • Download google-services.json and place it in the /app directory
  4. Build and run

    Open in Android Studio and run on your device or emulator.


Project Background

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.

About

Android app that allows users to set reminders based on their location.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages