{"id":18439605,"url":"https://github.com/binaryshrey/udacity-location-reminder","last_synced_at":"2025-04-14T14:28:12.768Z","repository":{"id":172369600,"uuid":"649068596","full_name":"binaryshrey/Udacity-Location-Reminder","owner":"binaryshrey","description":null,"archived":false,"fork":false,"pushed_at":"2023-06-04T06:00:13.000Z","size":8133,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-16T11:11:53.385Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/binaryshrey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-03T17:11:12.000Z","updated_at":"2023-06-04T04:35:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"e08b418f-e4bd-4145-bcc4-2afde70727b8","html_url":"https://github.com/binaryshrey/Udacity-Location-Reminder","commit_stats":null,"previous_names":["binaryshrey/udacity-location-reminder"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binaryshrey%2FUdacity-Location-Reminder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binaryshrey%2FUdacity-Location-Reminder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binaryshrey%2FUdacity-Location-Reminder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binaryshrey%2FUdacity-Location-Reminder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/binaryshrey","download_url":"https://codeload.github.com/binaryshrey/Udacity-Location-Reminder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248896377,"owners_count":21179413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T06:25:42.616Z","updated_at":"2025-04-14T14:28:12.742Z","avatar_url":"https://github.com/binaryshrey.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Location Reminder\n\nA 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.\n\n## Getting Started\n\n1. Clone the project to your local machine.\n2. Open the project using Android Studio.\n\n### Dependencies\n\n```\n1. A created project on Firebase console.\n2. A create a project on Google console.\n```\n\n### Installation\n\nStep by step explanation of how to get a dev environment running.\n\n```\n1. To enable Firebase Authentication:\n        a. Go to the authentication tab at the Firebase console and enable Email/Password and Google Sign-in methods.\n        b. download `google-services.json` and add it to the app.\n2. To enable Google Maps:\n    a. Go to APIs \u0026 Services at the Google console.\n    b. Select your project and go to APIs \u0026 Credentials.\n    c. Create a new api key and restrict it for android apps.\n    d. Add your package name and SHA-1 signing-certificate fingerprint.\n    c. Enable Maps SDK for Android from API restrictions and Save.\n    d. Copy the api key to the `google_maps_api.xml`\n3. Run the app on your mobile phone or emulator with Google Play Services in it.\n```\n\n## Testing\n\nRight click on the `test` or `androidTest` packages and select Run Tests\n\n### Break Down Tests\n\nExplain what each test does and why\n\n```\n1.androidTest\n        //TODO: Students explain their testing here.\n2. test\n        //TODO: Students explain their testing here.\n```\n\n## Project Instructions\n    1. 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.\n    2. Create a Register screen to allow a user to register using an email address or a Google account.\n    3. 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.\n    4. 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.\n    5. Create a screen to add a reminder when a user reaches the selected location.  Each reminder should include\n        a. title\n        b. description\n        c. selected location\n    6. Reminder data should be saved to local storage.\n    7. For each reminder, create a geofencing request in the background that fires up a notification when the user enters the geofencing area.\n    8. Provide testing for the ViewModels, Coroutines and LiveData objects.\n    9. Create a FakeDataSource to replace the Data Layer and test the app in isolation.\n    10. Use Espresso and Mockito to test each screen of the app:\n        a. Test DAO (Data Access Object) and Repository classes.\n        b. Add testing for the error messages.\n        c. Add End-To-End testing for the Fragments navigation.\n\n\n## Student Deliverables:\n\n1. APK file of the final project.\n2. Git Repository or zip file with the code.\n\n## Built With\n\n* [Koin](https://github.com/InsertKoinIO/koin) - A pragmatic lightweight dependency injection framework for Kotlin.\n* [FirebaseUI Authentication](https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md) - FirebaseUI provides a drop-in auth solution that handles the UI flows for signing\n* [JobIntentService](https://developer.android.com/reference/androidx/core/app/JobIntentService) - Run background service from the background application, Compatible with \u003e= Android O.\n\n## License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinaryshrey%2Fudacity-location-reminder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinaryshrey%2Fudacity-location-reminder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinaryshrey%2Fudacity-location-reminder/lists"}