romanyn36 / location_reminder

A Todo list app with location reminders that remind the user to do something when he reaches a specific location. 4th project in Advanced Android Kotlin Development NANODEGREE , passed submission for this project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Location Reminder

Github top language Github language count Repository size Github issues Github forks Github stars

Facebook Twitter LinkedIn GitHub

Table of Contents
  1. About
  2. Features
  3. Technologies
  4. Starting
  5. Testing
  6. Built With
  7. Contact
  8. License

Blood_bank Project Blood_bank Project Blood_bank Project Blood_bank Project

try the Location Reminders App :APK

🎯 About

A Todo list app with location reminders that remind the user to do something when he reaches a specific location. The app will require the user to create an account and login to set and access reminders.

✨ Features

  • βœ”οΈ Login/Register users using an email address or a Google account.

  • βœ”οΈ shows a map with the user's current location and asks the user to select a point of interest to create a reminder.

  • βœ”οΈ add a reminder when a user reaches the selected location

  • βœ”οΈ Reminder data should be saved to local storage.

  • βœ”οΈ For each reminder, create a geofencing request in the background that fires up a notification when the user enters the geofencing area.

πŸš€ Technologies

The following tools were used in this project:

  • Firebase authentication, Maps API
  • Geofencing
  • Kotlin, Coroutines
  • Espresso, Mockito
  • MVVM, LiveData
  • Android Testing ,UnitTesting, MainCoroutineRule, FakeData Source, dependency injection, End-To-End
  • Android Studio

🏁 Starting and installation

Step by step explanation of how to get a dev environment running.

# Clone this project
$ git clone https://github.com/romanyn36/location_reminder.git
# Access
$ cd starter
1. To enable Firebase Authentication:
        a. Go to the authentication tab at the Firebase console and enable Email/Password and Google Sign-in methods.
        b. download `google-services.json` and add it to the app.
2. To enable Google Maps:
    a. Go to APIs & Services at the Google console.
    b. Select your project and go to APIs & Credentials.
    c. Create a new api key and restrict it for android apps.
    d. Add your package name and SHA-1 signing-certificate fingerprint.
    c. Enable Maps SDK for Android from API restrictions and Save.
    d. Copy the api key to the `google_maps_api.xml`
3. Run the app on your mobile phone or emulator with Google Play Services in it.

Testing

app contain testing :

  • ViewModels, Coroutines and LiveData objects.
  • FakeDataSource replace the Data Layer and test the app in isolation.
  • Espresso and Mockito to test each screen of the app
  • Test DAO (Data Access Object) and Repository classes.
  • testing for the error messages.
  • End-To-End testing for the Fragments navigation.
Right click on the `test` or `androidTest` packages and select Run Tests

Built With

  • Koin - A pragmatic lightweight dependency injection framework for Kotlin.
  • FirebaseUI Authentication - FirebaseUI provides a drop-in auth solution that handles the UI flows for signing
  • JobIntentService - Run background service from the background application, Compatible with >= Android O.

πŸ“§ Contact

Facebook Twitter GitHub Stack Overflow linkedin

πŸ“ License

This project is under Open Source license

Made by Romani

 

Back to top

About

A Todo list app with location reminders that remind the user to do something when he reaches a specific location. 4th project in Advanced Android Kotlin Development NANODEGREE , passed submission for this project


Languages

Language:Kotlin 100.0%