GithubHelp home page GithubHelp logo

project4's Introduction

# Location Reminder 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. ## Getting Started 1. Clone the project to your local machine. 2. Open the project using Android Studio. ### Dependencies ``` 1. A created project on Firebase console. 2. A create a project on Google console. ``` ### Installation Step by step explanation of how to get a dev environment running. ``` 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 Right click on the `test` or `androidTest` packages and select Run Tests ### Break Down Tests Explain what each test does and why ``` 1.androidTest //TODO: Students explain their testing here. 2. test //TODO: Students explain their testing here. ``` ## Project Instructions 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. 2. Create a Register screen to allow a user to register using an email address or a Google account. 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. 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. 5. 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 6. Reminder data should be saved to local storage. 7. For each reminder, create a geofencing request in the background that fires up a notification when the user enters the geofencing area. 8. Provide testing for the ViewModels, Coroutines and LiveData objects. 9. Create a FakeDataSource to replace the Data Layer and test the app in isolation. 10. Use Espresso and Mockito to test each screen of the app: a. Test DAO (Data Access Object) and Repository classes. b. Add testing for the error messages. c. Add End-To-End testing for the Fragments navigation. ## Student Deliverables: 1. APK file of the final project. 2. Git Repository with the code. ## Built With * [Koin](https://github.com/InsertKoinIO/koin) - A pragmatic lightweight dependency injection framework for Kotlin. * [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 * [JobIntentService](https://developer.android.com/reference/androidx/core/app/JobIntentService) - Run background service from the background application, Compatible with >= Android O. ## License # project4

project4's People

Contributors

khaatteerr avatar

Stargazers

sonu pandey avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.