Shopkaro is an e-commerce app that utilizes modern Android technologies, including Jetpack Compose, MVVM architecture, Retrofit, and Hilt. The app allows users to authenticate, view products, add them to the cart, and place orders using Firebase Authentication and Firebase Realtime Database. The products are fetched from the Fakestore API.
- Authentication using Firebase Authentication with email and password.
- Dependency injection with Hilt.
- Fetches products using the Fakestore API.
- Users can add products to the cart, which is stored in Firebase Realtime Database.
- Users can place orders by adding shipping details and choosing a payment method.
- Utilizes nested navigation and a bottom bar.
- Fully created with Jetpack Compose.
data
: Responsible for producing data. Contains API, repository, and model classes.di
: Hilt modules.ui
: UI layer of the app.nav
: Contains app navigation and destinations.screens
: Contains UI components.theme
: Material3 theme.
utils
: Utility classes used across the app.
Kotlin: As the programming language.
Jetpack Compose : To build UI.
Jetpack Navigation : For navigation between screens.
Retrofit: Used for making network requests to fetch product data from the Fakestore API.
Hilt : For injecting dependencies.
Coil : To load image asynchronously.
This app uses a nested navigation structure with multiple NavGraphs to manage different sections of the app efficiently. Each section, such as authentication, product listing, and order management, has its own NavGraph, allowing for clear separation of concerns and modular navigation flows.
If you have any suggestions for improving this navigation structure or would like to contribute, feel free to share your ideas.
Simple clone this app and open in Android Studio.
Follow these steps to link Firebase to this app for authentication and storing cart and order data using Realtime Database:
- Set up Firebase in your project by following the official Firebase setup guide.
- Download the google-services.json file from your Firebase project.
- Place the google-services.json file in the app/ directory of your project.