Skip to content

A Todo list android app with location reminders that remind the user to do something when he reaches a specific location using kotlin.

License

Notifications You must be signed in to change notification settings

yusufnasserdev/location-reminder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

location-reminder

A Todo list android app with location reminders that remind the user to do something when he reaches a specific location using kotlin.


Test run

2022-10-17.01-06-13.mp4

As Shown in the test run, the geofence and the notifications work on emulator pixel 3 API 29.

2022-10-17.01-34-05.mp4

All the unit tests as well as the instrumented tests pass.

Dependencies

1. A created project on Firebase console.
2. A created project on Google Cloud console.

Testing

Right click on the test or androidTest packages and select Run Tests

Tests Break Down

  • All tests and test related functions are properly explained in their respective files.

Project Walkthrough

  • A Login screen to ask users to login using an email address or a Google account. Upon successful login, it navigates the user to the Reminders screen. If there is no account, it navigates to a Register screen.

  • A Register screen to allow a user to register using an email address or a Google account.

  • A home screen that displays the reminders retrieved from local storage. If there are no reminders, it shows a "No Data" indicator. If there are any errors, it displays an error message.

  • A screen that shows a map with the user's current location and asks the user to select a point of interest to create a reminder.

  • An add a reminder screen when a user reaches the selected location. Each reminder should include a title, a description, and the selected location.

  • Reminder data is saved to local storage.

  • For each reminder, a geofence is created that fires up a notification when the user enters the geofencing area.

  • ViewModels, Coroutines and LiveData objects unit tests.

  • A FakeDataSource to replace the Data Layer and test the app in isolation.

  • Used Espresso and Mockito to test each screen of the app:

    • DAO (Data Access Object) and Repository classes testing.
    • Error messages testing.
    • End-To-End testing for the Fragments navigation.

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.

About

A Todo list android app with location reminders that remind the user to do something when he reaches a specific location using kotlin.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages