123 lines
7.3 KiB
Markdown
123 lines
7.3 KiB
Markdown
<h1 align="center"> 🚀 Groceries Store</h1>
|
|
|
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
[](#contributors-)
|
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
[](https://github.com/hieuwu/android-groceries-store/actions/workflows/app-build.yml)
|
|
|
|
|
|

|
|
<img src="https://github.com/hieuwu/hieuwu.github.io/blob/master/assets/img/rocket.gif" align="right" height="330px">
|
|
|
|
<!-- [](https://github.com/hieuwu/android-groceries-store)
|
|
[](https://github.com/hieuwu/android-groceries-store)
|
|

|
|

|
|

|
|
 -->
|
|
|
|
[Download on Google Play Store](https://play.google.com/store/apps/details?id=com.hieuwu.groceriesstore)
|
|
|
|
|
|
|
|
## About
|
|
Groceries Store is a project to help people order grocery online. The main purpose of this project is to demonstrate modern Android development skills in real production environment, reduce the learning curve when jump into Android development world.
|
|
|
|
## UI Design & Architecture
|
|
<img src="https://github.com/hieuwu/hieuwu.github.io/blob/master/assets/img/real-estate.gif" align="left" height="280px">
|
|
|
|
|
|
**Design**
|
|
- [Groceries Store Design](https://www.figma.com/file/exhlJtkLIcHvfxd8SDja3T/Online-Groceries-App-UI-(Community)?node-id=1%3A2)
|
|
- <a href='https://www.freepik.com/vectors/background'>Background vector created by freepik - www.freepik.com</a>
|
|
- <a href='https://www.freepik.com/vectors/food'>Food vector created by terdpongvector - www.freepik.com</a>
|
|
|
|
**Architecture**
|
|
- [Use Case](https://proandroiddev.com/why-you-need-use-cases-interactors-142e8a6fe576)
|
|
- [Clean Architecture](https://medium.com/@dmilicic/a-detailed-guide-on-developing-android-apps-using-the-clean-architecture-pattern-d38d71e94029)
|
|
- [MVVM Architecture](https://medium.com/swlh/understanding-mvvm-architecture-in-android-aa66f7e1a70b)
|
|
|
|
|
|
## MAD Scorecard:
|
|
|
|

|
|
|
|
## Libraries
|
|
- [Glide](https://github.com/bumptech/glide) - Loading images.
|
|
- [Timber](https://github.com/JakeWharton/timber) - Logging.
|
|
- [Retrofit2](https://github.com/square/retrofit) - Construct the REST APIs and paging network data.
|
|
- [Moshi](https://github.com/square/moshi/) - A modern JSON library for Kotlin and Java.
|
|
- [Hilt](https://dagger.dev/hilt/) for dependency injection.
|
|
- JetPack
|
|
- Lifecycle - dispose of observing data when lifecycle state changes.
|
|
- ViewModel - UI related data holder, lifecycle aware.
|
|
- Room Persistence - construct a database using the abstract layer.
|
|
|
|
## Setup
|
|
|
|
#### Android Studio
|
|
Android Studio Bumblebee or later
|
|
SDK 23 or later
|
|
|
|
#### Firestore
|
|
1. Create your Firebase account and setup your own Google service following instruction from Firebase
|
|
2. Update the properties in each collection as below
|
|
- `products`
|
|
- `category`: reference (to specific category)
|
|
- `description`: string
|
|
- `id`: string
|
|
- `image`: string
|
|
- `name`: string
|
|
- `nutrition`: string
|
|
- `price`: number
|
|
|
|
- `orders`
|
|
- `address`: string
|
|
- `lineItems`: array
|
|
- `total`: number
|
|
|
|
- `categories`
|
|
- `description`: string
|
|
- `image`: string
|
|
- `name`: string
|
|
|
|
- `users`
|
|
- `address`: string
|
|
- `email`: string
|
|
- `name`: string
|
|
- `phone`: string
|
|
|
|
3. If you have any changes in the Firestore collections, feel free to update the `FirebaseStoreConstant.kt` file
|
|
|
|
## Find this repository useful? :heart:
|
|
Support it by joining __[stargazers](https://github.com/hieuwu/android-groceries-store/stargazers)__ for this repository. :star: <br>
|
|
Also, __[follow me](https://github.com/hieuwu)__ on GitHub for my next creations! 🤩
|
|
|
|
## Contributors ✨
|
|
|
|
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
|
|
|
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-disable -->
|
|
<table>
|
|
<tbody>
|
|
<tr>
|
|
<td align="center"><a href="https://github.com/saurabhkpatel"><img src="https://avatars.githubusercontent.com/u/1188367?v=4?s=100" width="100px;" alt="Saurabh Patel"/><br /><sub><b>Saurabh Patel</b></sub></a><br /><a href="https://github.com/hieuwu/android-groceries-store/commits?author=saurabhkpatel" title="Code">💻</a></td>
|
|
<td align="center"><a href="https://aditya-gupta99.github.io/"><img src="https://avatars.githubusercontent.com/u/94394661?v=4?s=100" width="100px;" alt="Aditya Gupta"/><br /><sub><b>Aditya Gupta</b></sub></a><br /><a href="#design-Aditya-gupta99" title="Design">🎨</a> <a href="https://github.com/hieuwu/android-groceries-store/commits?author=Aditya-gupta99" title="Code">💻</a> <a href="#example-Aditya-gupta99" title="Examples">💡</a></td>
|
|
<td align="center"><a href="https://github.com/DeKaN"><img src="https://avatars.githubusercontent.com/u/1156370?v=4?s=100" width="100px;" alt="Dmitriy"/><br /><sub><b>Dmitriy</b></sub></a><br /><a href="https://github.com/hieuwu/android-groceries-store/commits?author=DeKaN" title="Code">💻</a></td>
|
|
<td align="center"><a href="https://github.com/Devendra34"><img src="https://avatars.githubusercontent.com/u/51832211?v=4?s=100" width="100px;" alt="Devendra Varma"/><br /><sub><b>Devendra Varma</b></sub></a><br /><a href="https://github.com/hieuwu/android-groceries-store/commits?author=Devendra34" title="Code">💻</a></td>
|
|
<td align="center"><a href="https://developers.google.com/profile/u/115663579126625722254"><img src="https://avatars.githubusercontent.com/u/85061899?v=4?s=100" width="100px;" alt="Amartya"/><br /><sub><b>Amartya</b></sub></a><br /><a href="#design-AmartyaSingh97" title="Design">🎨</a></td>
|
|
<td align="center"><a href="https://github.com/NiranjanNlc"><img src="https://avatars.githubusercontent.com/u/25600880?v=4?s=100" width="100px;" alt="NLC"/><br /><sub><b>NLC</b></sub></a><br /><a href="#design-NiranjanNlc" title="Design">🎨</a> <a href="https://github.com/hieuwu/android-groceries-store/commits?author=NiranjanNlc" title="Code">💻</a></td>
|
|
<td align="center"><a href="https://github.com/fejd"><img src="https://avatars.githubusercontent.com/u/4249809?v=4?s=100" width="100px;" alt="Fredrik Henricsson"/><br /><sub><b>Fredrik Henricsson</b></sub></a><br /><a href="https://github.com/hieuwu/android-groceries-store/commits?author=fejd" title="Code">💻</a></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
|
|
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
|
|
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|