Skip to content

zfml/DroidShop

Repository files navigation

🛍️ Droid Shop – Modern E-Commerce App with Jetpack Compose

A fully functional and beautifully designed shopping app built with Jetpack Compose, Firebase, Room, StateFlow, and Hilt. This project showcases my ability to take an inspired UI/UX and refactor it into a real-world, scalable app using clean architecture and modern Android tools.

📌 Inspiration: This project’s UI/UX was inspired by this YouTube video(Watch Here) and this GitHub repository. I rebuilt the app using a completely different codebase, added modern Android architecture (MVVM, Hilt, Room, StateFlow), and used Firebase for authentication and data storage.


✨ Features

  • 🔐 Firebase Authentication (Email/Password)
  • 🧾 product data via Firebase Firestore
  • 🛒 Shopping cart with quantity control and checkout
  • 🗂️ MVVM + Clean Architecture
  • 💾 Offline support with Room
  • 🌙 Material 3
  • 🔁 StateFlow for reactive UI
  • 🧩 Modular structure with Hilt for dependency injection

Login Home

Details Cart

Details Cart

Details

✅ The app follows Clean Architecture with a clear separation of concerns, testability, and maintainability.


🧑‍💻 Tech Stack

Layer Technology
Language Kotlin
UI Jetpack Compose + Material 3
Architecture MVVM + Clean Architecture
State StateFlow (Reactive UI)
Backend Firebase Authentication + Firestore
Database Room
DI Hilt
Navigation Compose Navigation

Architecture

The application adopts a modified Clean Architecture pattern, emphasizing separation of concerns. While it maintains distinct data and presentation layers, Viewmodels directly interact with Repositories, bypassing a dedicated use case layer for simplicity in this project.

  • data: Handles all data retrieval and storage operations from various sources (local database, remote API).
  • domain: Contains the core business models and abstract repository interfaces, ensuring business rules are independent of data sources or UI.
  • ui: Deals with the presentation layer, including Jetpack Compose UI elements and ViewModels that directly consume data from the repositories.
  • di: Manages dependency injection using Hilt.
  • utils: Contains common utility functions, constants, and helpers.

Project Structure

project structure

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages