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.
-
Create a Login screen to ask users to login using an email address or a Google account. Upon successful login, navigate the user to the Reminders screen. If there is no account, the app should navigate to a Register screen.
-
Create a Register screen to allow a user to register using an email address or a Google account.
-
Create a screen that displays the reminders retrieved from local storage. If there are no reminders, display a "No Data" indicator. If there are any errors, display an error message.
-
Create 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.
-
Create a screen to add a reminder when a user reaches the selected location. Each reminder should include a. title b. description c. 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.
#Dependencies
- A created project on Firebase console.
- A created project on Google console.
#Tools & Technologies Used
Kotlin.
FirebaseUI Authentication - FirebaseUI provides a drop-in auth solution that handles the UI flows for signing
Google Maps & Geofencing
BroadCastReceiver
RecyclerView
LiveData & MVVM
Coroutine
test the ViewModels and LiveData objects
Test DAO (Data Access Object) and Repository classes.
Use Espresso and Mockito to test each screen of the app:
#ScreenShots
#Login Screen
#Sign up screen
#Add reminder item Flow