Groceries Store is a project to help people order grocery online

Overview

🚀 Groceries Store

Android CI

Groceries Store

Download on Google Play Store

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

Design

Architecture

MAD Scorecard:

Caption

Libraries

  • Glide - Loading images.
  • Timber - Logging.
  • Retrofit2 - Construct the REST APIs and paging network data.
  • Moshi - A modern JSON library for Kotlin and Java.
  • 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
  1. If you have any changes in the Firestore collections, feel free to update the FirebaseStoreConstant.kt file

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐
Also, follow me on GitHub for my next creations! 🤩

Comments
  • Fixed the bugs and improved cart UI.

    Fixed the bugs and improved cart UI.

    First of all, fixed the delete items from the cart button which was not working. Added a simple delete icon in a cart rather than an option thing to make it more user-friendly and good-looking. Changed the edit-text type to text view in the cart while showing a number of items.

    https://user-images.githubusercontent.com/85061899/193472856-88c6d00c-aad0-4d27-820c-fa7e43ed6810.mp4

    hacktoberfest-accepted 
    opened by AmartyaSingh97 10
  • Improve Favourite page

    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.

    hacktoberfest 
    opened by Aditya-gupta99 9
  • Improve animation when open product detail

    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.

    enhancement hacktoberfest 
    opened by hieuwu 8
  • Use HiltViewModel to provide ViewModels

    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

    good first issue hacktoberfest 
    opened by hieuwu 5
  • Delete option in the cart not working.

    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

    hacktoberfest 
    opened by AmartyaSingh97 5
  • Added transition effect to product detail

    Added transition effect to product detail

    Refer Issue: #97 Added animation and transition files under res/anim and res/transition section which can be used later anywhere in the app. Used slide right and fade transition effect into product details while entering and exiting the fragment respectively.

    hacktoberfest-accepted 
    opened by AmartyaSingh97 5
  •  refactored duplicate code items of assighning adapter

    refactored duplicate code items of assighning adapter

    Before : binding.exclusiveOfferRecyclerview.adapter = GridListItemAdapter( GridListItemAdapter.OnClickListener( clickListener = { viewModel.displayPropertyDetails(it) }, addToCartListener = { addToCart(it) } )

    I introduced the grdlistItemAdpater varaible and assighned it on other three places to avoid duplication

    hacktoberfest-accepted 
    opened by NiranjanNlc 4
  • Improve explore page

    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.

    enhancement hacktoberfest 
    opened by Aditya-gupta99 3
  • Improve Shop page

    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.

    enhancement hacktoberfest 
    opened by Aditya-gupta99 3
  • Add ktlint

    Add ktlint

    Add support for checking the code with ktlint. The ktlintCheck task can be run to get an issue report. The ktlint configuration is set up to produce a plain text report and an HTML report.

    This fixes #19.

    hacktoberfest-accepted 
    opened by fejd 2
  • Use Gradle version catalog for dependencies

    Use Gradle version catalog for dependencies

    Use the Gradle version catalog feature for dependencies, by moving libraries, versions and plugins to a TOML file. Dependencies with multiple artifacts, such as Firebase, have been bundled. This allows for a more readable dependency block in the build.gradle file.

    Also use the plugins {...} block in favor of the legacy "apply plugin". This allows us to skip the classpath declaration in the root build.gradle file.

    Fixes #141.

    hacktoberfest-accepted 
    opened by fejd 2
  • Improve laggy effect of the cart list when edit item

    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

    https://user-images.githubusercontent.com/43868345/193828656-f13eced8-e56d-4d49-a72f-de044ab4ee61.mp4

    enhancement hacktoberfest 
    opened by hieuwu 2
  • Improve Onboarding Screen

    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.

    feature hacktoberfest 
    opened by Aditya-gupta99 4
  • Use ConstraintLayout for the whole layout files

    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

    enhancement good first issue hacktoberfest 
    opened by hieuwu 5
Releases(v1.1.0)
Owner
Hieu Vu
Mobile Development enthusiast. Scalability and flexibility oriented.
Hieu Vu
How-Many-People-Are-In-Space - Do you wonder how many people are in space? Now you can check instantly with this app

How Many People Are In Space? Do you wonder how many people are in space right n

null 2 May 10, 2022
Bookstore - online store with books, audiobooks and ebooks

Bookstore - online store with books, audiobooks and ebooks How to run After clon

Jakub Frączek 1 Jan 19, 2022
NikeStore - Nike Store Online shop App With Kotlin

Nike Store - Online shop November 2021 Online store to buy Nike shoes ● - Develo

Saeed Shamloo 2 Feb 11, 2022
Haven is an app to help people in need find resources.

Haven Haven is an app to help people in need find resources. Haven connects people to resources such as food pantries, homeless shelters, healthcare,

Dev Patel 2 Sep 25, 2022
This is an android app using which users can chat to people nearby them with help of Bluetooth.

This is an android app using which users can chat to people nearby them with help of Bluetooth. This app is developed in Kotlin programming language. It is still in its early stages of development and currently let user to one-person-one-time chat at a time. It is under heavy development ????

Shalu Ambasta 4 Sep 28, 2022
Connect is an Android Application to connect people for a project and can then work on the application to efficiently complete the project

Connect is an Android Application to connect people for a project and can then work on the application to efficiently complete the project

Shubhaprasad Padhy 1 Jan 9, 2022
This project was developed during the fourcamp journey, in order to improve the knowledge in native android development

This project was developed during the fourcamp journey, in order to improve the knowledge in native android development

Henrique Marinho Teixeira 1 Apr 1, 2022
This is an android project developed in order to practice and prepare for the Google AAD Exam

TaskMaker This is an android project developed in order to practice and prepare for the Google Associate Android Developer Exam (AAD). I tried to impl

Babatunde Owoleke 11 Jun 30, 2022
This is Mini Project - Android app for Passenger to file FIR Online.

Passenger-Security-2021 Passenger Security - Online FIR Filing System This is project of Smart India Hackathon 2018 - Software Edition under the Minis

null 2 Jul 20, 2022
A pet project created to practise Android Development skills in Kotlin after finishing multiple courses online.

A pet project created to practise Android Development skills in Kotlin after finishing multiple courses online. The app displays a list of hundreds of characters provided by The Rick and Morty API https://rickandmortyapi.com/. In other screens user can access detailed information about a particular character, such as status, location and episodes. Libraries used in a project: - Kotlin - Jetpack libraries (Navigation, Room, Hilt, Palette) - other: Glide, Retrofit

Ania 0 Dec 15, 2021
Help-page-finder - Help page finder for android

help-page-finder This app allows to search for help articles on a website. It is

null 0 Feb 13, 2022
This app reminds people to take medicine according to their respective schedule.

Medicine Reminder App Reminds people for medicine. Objective In this busy and competitive world, it is very difficult for a person to remember each an

Naman Agarwal 4 Jun 3, 2021
Kalam is an app that gives people a chance to write their stories on the app.

Kalam is an app that gives people a chance to write their stories on the app. This app gives a good story for the story readers and gives good story writers a chance to write their own story

Uday Chugh 0 Apr 26, 2022
An android mobile app for connecting volunteers with people in need.

NeighborGood An android mobile app for connecting volunteers with people in need. Using a single app create profiles for both "helpers" and "helpees"

null 0 Nov 2, 2021
This app aims at helping people keep track of their job applications, and remind them regularly about the same.

Applications Tracker Lately I have been applying for many roles, and it has become a hard task to keep track of all the applications. Spreadsheets are

Kartik Pant 4 Feb 20, 2022
Spohn App - for people associated with the Spohngymnasium in Ravensburg, Germany

Spohn App This is the application for people associated with the Spohngymnasium in Ravensburg, Germany. It aims to provide easy access to relevant inf

Spohngymnasium Ravensburg 4 Mar 7, 2022
This is a food donation android application designed to reduce food wastage by donating excess food to poor or needy people. Based on Kotlin and currently under development

FOODONOR This is a food donation android application designed to reduce food wastage by donating excess food to poor or needy people. Based on Kotlin

Robert Muriithi 8 Oct 12, 2022
An easy, cross-platform method of keeping track of other people's timezones

TimezoneDB TimezoneDB is an easy, cross-platform method of keeping track of others' timezones. This project is inspired by PronounDB, and we'd like to

Synapse Technologies, LLC 13 Nov 16, 2022
App uses the TMDB in order to provide a list of movies, artists and TV shows

MoviesAppTMDB This app uses the TMDB in order to provide a list of movies, artists and TV shows. The purpose of this app is to demonstrate the use of

null 0 Nov 4, 2021