Android application to find restaurants near you. Allow you to choose one for the next lunch and share your selection with your coworkers. You'll also be able to check out where your coworkers are headed for lunch and decide if you want to go with them. Be notified by a push notification before the lunch break: this will inform you of the address and the employees who will be at the same place.
- Authentification with Gmail and Facebook via Firebase Authentification
- Main activity:
- Navigation Drawer (access to your lunch of the day, settings for the notification and logout)
- SearchView with autocomplete from GoogleMap API
- 3 fragments:
- the listView (listAdapter), which displays a list of 20 restaurants with full opening hours
- the mapView, which displays a GoogleMap with your position and the restaurant list
- the workmatesView (listAdapter), which displays the coworkers list and if they have chosen a restaurant
- A restaurant details activity that allows you to call the restaurant, visit website, add to favorite, select this place for today and see coworkers with the same choice
- A chat activity that can be launched from the workmatesView
- Every day, the database will create a collection with the actual date to store the user's choice
- The notification push is managed with a WorkManager, and will display the notification just before lunch break
- Material Design:
- constraint layout
- coordinator layout
- collapsing toolbar
- Glide
- Firebase Auth
- Firebase Firestore
- Facebook SDK
- Retrofit
- WorkManager
- Mockito
- Desugar
- MVVM with an approach of clean Architecture (viewModel, ViewState, Usecase, Repository)
- LiveData (currently being migrated to Flow)
- ViewModel factory, handmade (soon replaced by Hilt)
- ViewModel and usecase with Mockito
- Google Map API:
- place nearby search
- place details
- place autocomplete
- Go to build.gradle line 24 & 25
- replace OC_P7_Google_Maps_Sdk_key by '"your-google-map-key-here"'
- or edit/create gradle.properties in user.gradle folder with GOOGLE_MAP_API_KEY="your-google-map-key-here"
Feel free to send feedback about your experience ! Happy coding !
Stéphane