Code Monkey home page Code Monkey logo

hieuwu / android-groceries-store Goto Github PK

View Code? Open in Web Editor NEW
214.0 3.0 55.0 25.5 MB

A Groceries Store app with basic order flow. ๐Ÿ• Help you learn modern Android development skills in real production environment. โค๏ธ

Home Page: https://hieuwu.github.io/android-groceries-store/

License: MIT License

Kotlin 100.00%
android-development android-jetpack-compose mvvm-architecture supabase supabase-client hacktoberfest jetpack-compose android

android-groceries-store's Introduction

android-groceries-store's People

Contributors

aditya-gupta99 avatar allcontributors[bot] avatar amartyasingh97 avatar dekan avatar dependabot[bot] avatar devendra34 avatar elekiwi avatar fejd avatar geanik avatar hieuwu avatar ishanvaghani avatar kardelio avatar lokified avatar niranjannlc avatar p42rthicle avatar raghu1124 avatar saurabhkpatel avatar yashraj254 avatar yopilot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

android-groceries-store's Issues

Migrate data from Firebase to Supabase

  • Move data from Firebase to Supabase by extracting local data and upload with CSV (categories, products)

  • Set up tables on Supabase

  • Set up constraint for order, line item, user data on Supabase

DTO should be placed at data section

The DTO of this current version is not in the right place. It should be placed in the data, because when the API format changes, we have to change in both data and domain.

Delete option in the cart not working.

Describe the bug
The delete option in the cart to remove items from the cart is not working. Also, the " - " button to decrease the number of items in the cart is not working when the number of items in the cart is 1.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'cart'
  2. Click on 'delete option beside products'
  3. See error

Expected behavior
When the delete button beside the product is clicked, all the items must be removed from the cart. If the " - " button is pressed and the number of items is 1, the item should be deleted from the cart.

Screenshots
Screenshot_20221001-222410_Groceries Store
Screenshot_20221001-221349_Groceries Store

Desktop (please complete the following information):
-NA

Smartphone (please complete the following information):

  • Device: Android
  • OS: 11

Additional context
NA

Kotlin-android-extensions Gradle plugin is deprecated

Describe the bug
The 'kotlin-android-extensions' Gradle plugin is deprecated. Please use this migration guide (https://goo.gle/kotlin-android-extensions-deprecation) to start working with View Binding (https://developer.android.com/topic/libraries/view-binding) and the 'kotlin-parcelize' plugin.

To Reproduce
Build the project and observe build logs

Expected behavior
Remove deprecated 'kotlin-android-extensions' plugin and migrate to recommended approach.

Migrate updateprofile to Jetpack Compose

Currently feature Account in presentation/updateprofile package is implemented with XML view system. Let's convert it to Jetpack Compose. See shop feature for reference

Move dependencies to a Gradle version catalog

Is your feature request related to a problem? Please describe.
I'd like to convert the dependencies to use the Gradle version catalog feature.

Describe the solution you'd like
Move dependencies and plugins from the build.gradle files to a TOML file.

Describe alternatives you've considered
Dependencies could also be located in buildSrc, however version catalog is a "native" Gradle feature.

Additional context

Use HiltViewModel to provide ViewModels

Is your feature request related to a problem? Please describe.
Use HiltViewModel to provide ViewModels to avoid boilerplate code

Describe the solution you'd like
Use HiltViewModel

Describe alternatives you've considered
None

Provide dependencies at right scope

Is your feature request related to a problem? Please describe.
Currently every dependencies is provided at @singleton scope. This is not a good approach. Some components like UseCase can be provided only when we need to use it in ViewModel

Describe the solution you'd like
Provide UseCases at ViewModelScope instead of Singleton

Describe alternatives you've considered
None

Migrate product list to Jetpack Compose

Currently feature Account in presentation/productlist package is implemented with XML view system. Let's convert it to Jetpack Compose. See shop feature for reference

Improve Onboarding Screen

Is your feature request related to a problem? Please describe.
When I opened the app, I didn't find any detailed information about how the app works.

Describe the solution you'd like
To demonstrate how the app works, I would like to use viewpager2 in order to display all the features of the app.

Describe alternatives you've considered
I can also implement a bubble showcase to show all the hidden features of the app.

Improve Auth Page

Is your feature request related to a problem? Please describe.
The text entered on the sign-in page and sign-up page does not appear in the text view while the text is being typed. As soon as the keyboard is lowered, it can be seen.

Describe the solution you'd like
I will fix this by using different text input types and also implementing an outline box style to the text view which makes it looks more user-friendly.

Customize multiple notification styles based on feature

Description:

  • When user create an order, the app displays a notification to notify user.
  • In the Firebase Cloud Message, we have a chanel named "promotion". This is used to send user notification about promotion with attractive thumbnail
  • When the database complete its renew, notify to user
    The app requires 3 styles of notification, in different channels
    Implementation:

In user profile, we need a section where we put the setting of notification registration. User can enable/disable each notification chanel.
We need to add 3 properties to user collection: IsPromotionNotiEnabled, IsOrderNotiEnabled, IsDatabaseNotiEnabled
When user first create account, these 3 properties would be set as true by default.

Migrate LiveData to StateFlow in ViewModels and observe in Fragments

Is your feature request related to a problem? Please describe.
To adapt Android modern development, we need to migrate from LiveData to StateFlow

Describe the solution you'd like
It would be great if we can just make 1 or some screens to be fully using Flow so that other developer can join and do it folowing the convention

Describe alternatives you've considered
None

Improve Favourite page

**Is your feature request related to a problem? Please describe
The favorite fragment does not seem to be as user-friendly as it should be.

Describe the solution you'd like
As I work on it, I will strive to make it as user-friendly as possible.

Use ConstraintLayout for the whole layout files

Currently, most of the UIs of the app is implemented with LinearLayout, RelativeLayout. This is not good for render performance because of nested level of XML tags
Need to use ConstraintLayout to improve this

Introduce compose lint

Is your feature request related to a problem? Please describe.
Introduce compose lint to scan through code and keep the coding style consistent

Bug - Can not add the same item to cart

Thank you Devendra34 for pointing this out
Describe the bug
Can not add the same item to cart. We should be able to add the same item to cart

To Reproduce
Steps to reproduce the behavior:

  1. Launch the app and add some item from shop fragment using plus icon
  2. open cart bottom sheet. (added items are shown properly till here)
  3. now close this bottom sheet and add another item same as step 1
  4. open the cart bottom sheet again. Now you will not see the recently added item in the list

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
https://user-images.githubusercontent.com/51832211/193946013-965e3d7e-5c2a-48b6-88b2-f917232f622c.mp4

Additional context
Looks like this is due to the latest PR merged (#130 )

Improve laggy effect of the cart list when edit item

Is your feature request related to a problem? Please describe.
Currently, int the cart list screen, when edit item like increase or decrease quantity of each item, it has a fade effect

Describe the solution you'd like
It would be nice if we can make this more smooth

Issue

Android.Emulator.-.Pixel_2_API_28_5554.2022-10-04.20-13-14.mp4

Edit text in number of items in cart.

Describe the bug
When you click on the number of items in the cart, it opens as an edit text box.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'cart'
  2. Click on 'number of items'
  3. See error

Expected behavior
It should be only text view rather than edit text.

Screenshots
https://user-images.githubusercontent.com/85061899/193423954-8814287d-627d-406a-a1b9-fe221b674a89.mp4

Desktop (please complete the following information):

  • NA

Smartphone (please complete the following information):

  • Device: [Samsung Galaxy M30S]
  • OS: [Android 11]

Additional context
Add any other context about the problem here.

Improve Shop page

Is your feature request related to a problem? Please describe.
On the shop home page when you are entering the app, you will notice that the view pager photo does not have any motion at all. In order to change it, the user had to scroll from left to right in order to do so.

Describe the solution you'd like
I will use view pager 2 . This will allow me to add logic to make it move. and I will also make the shop page more user-friendly.

Improve animation when open product detail

Is your feature request related to a problem? Please describe.
I'm always frustrated when open product detail sceen
Describe the solution you'd like
It would be great if the animation applied for the item be more smooth.

Describe alternatives you've considered

Additional context
Add any other context or screenshots about the feature request here.

Improve explore page

Is your feature request related to a problem? Please describe.
When you search for something in the explore navigation, then switch to the main navigation and return to explore again after searching for something in the explore navigation. It is likely that you will face a recycle view that will have some bugs in it.

Describe the solution you'd like
I will make it work perfectly will make sure that everything works perfectly. I'll go through the code, I'm confident that I'll fix this. I'll also make the search bar more user-friendly.

Migrate onboarding to Jetpack Compose

Currently feature Account in presentation/onboarding package is implemented with XML view system. Let's convert it to Jetpack Compose. See shop feature for reference

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.