# horratha/beckie_deal_app_android architecture

> Architecture diagram of the GitHub repository horratha/beckie_deal_app_android, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/horratha/beckie_deal_app_android
- Repository: https://github.com/horratha/beckie_deal_app_android

## Overview

Beckie Deal is an Android shopping app for product discovery, purchasing, and account management. The principal flow is browsing or searching a catalog, inspecting a product, managing a cart, completing checkout and payment, then viewing orders; wishlists, promotions, reviews, and profiles are parallel capabilities. The README documents the major features and REST integration. Sampled code confirms selected repository, API, and network relationships; unsampled screen-to-screen and service wiring is shown only where documented or left unverified.

Main entry points: [`app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ProductRepository.java`](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ProductRepository.java) (Product catalog data), [`app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/CategoryDetailActivity.java`](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/CategoryDetailActivity.java) (Categories and brands), [`app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/checkout/CheckoutActivity.java`](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/checkout/CheckoutActivity.java) (Checkout), [`app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ReviewRepository.java`](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ReviewRepository.java) (Product reviews)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Catalog discovery"]
  node_home["Home and navigation<br/>[MainActivity.java]"]
  node_catalog["Categories and brands"]
  node_search["Search and filters"]
  node_product["Product details"]
end

subgraph group_commerce["Shopping and orders"]
  node_cart["Cart management<br/>[CartActivity.java]"]
  node_checkout["Checkout"]
  node_payment["Payment"]
  node_orders["Order tracking"]
end

subgraph group_account["Identity and engagement"]
  node_identity["Sign-in and verification<br/>[LoginActivity.java]"]
  node_profile["Profile and preferences"]
  node_wishlist["Wishlist"]
  node_reviews["Product reviews"]
  node_promotions["Coupons and promotions<br/>[CouponManager.java]"]
end

subgraph group_platform["Data and networking"]
  node_productdata["Product catalog data"]
  node_productmodel["Product model<br/>[Product.java]"]
  node_cartdata["Cart repository"]
  node_cartmodel["Cart model<br/>[Cart.java]"]
  node_authapi["Authentication API"]
  node_reviewapi["Review API"]
  node_brandmodel["Brand model<br/>[Brand.java]"]
  node_reviewmodel["Review model<br/>[Review.java]"]
  node_network["Retrofit networking"]
  node_token["Token storage<br/>[TokenManager.java]"]
end

node_shopper(("Shopper"))
node_backend{{"REST backend"}}

node_shopper -.->|"opens app"| node_home
node_shopper -.->|"browses catalog"| node_catalog
node_shopper -.->|"searches products"| node_search
node_shopper -.->|"signs in"| node_identity
node_home -.->|"navigates to"| node_catalog
node_catalog -.->|"loads catalog"| node_productdata
node_search -.->|"searches catalog"| node_productdata
node_product -.->|"loads details"| node_productdata
node_productdata -->|"returns products"| node_productmodel
node_cart -.->|"manages cart"| node_cartdata
node_cartdata -.->|"returns cart"| node_cartmodel
node_cart -.->|"starts checkout"| node_checkout
node_checkout -.->|"selects payment"| node_payment
node_checkout -.->|"places order"| node_orders
node_identity -.->|"authenticates"| node_authapi
node_authapi -->|"calls REST"| node_backend
node_profile -.->|"opens wishlist"| node_wishlist
node_product -.->|"shows reviews"| node_reviews
node_reviews -->|"requests reviews"| node_reviewapi
node_reviewapi -->|"calls REST"| node_backend
node_reviews -->|"caches reviews"| node_reviewmodel
node_catalog -.->|"displays brands"| node_brandmodel
node_productdata -->|"uses client"| node_network
node_network -->|"sends requests"| node_backend
node_network -.->|"adds credentials"| node_token
node_shopper -.->|"uses deals"| node_promotions

click node_home "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/main/MainActivity.java"
click node_catalog "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/CategoryDetailActivity.java"
click node_search "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/SearchActivity.java"
click node_product "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/ProductDetailActivity.java"
click node_productdata "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ProductRepository.java"
click node_productmodel "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Product.java"
click node_cart "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/cart/CartActivity.java"
click node_cartdata "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/CartRepository.java"
click node_cartmodel "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Cart.java"
click node_checkout "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/checkout/CheckoutActivity.java"
click node_payment "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/payment/KhqrPaymentActivity.java"
click node_orders "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/cart/MyOrdersActivity.java"
click node_identity "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/auth/LoginActivity.java"
click node_authapi "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/api/AuthApiService.java"
click node_profile "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/profile/ProfileActivity.java"
click node_wishlist "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/profile/WishlistActivity.java"
click node_reviews "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ReviewRepository.java"
click node_reviewapi "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/api/ReviewApiService.java"
click node_brandmodel "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Brand.java"
click node_reviewmodel "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Review.java"
click node_network "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/network/RetrofitClient.java"
click node_token "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/security/TokenManager.java"
click node_promotions "https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/utils/managers/CouponManager.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_home,node_catalog,node_search,node_product toneBlue
class node_cart,node_checkout,node_payment,node_orders toneAmber
class node_identity,node_profile,node_wishlist,node_reviews,node_promotions toneMint
class node_productdata,node_productmodel,node_cartdata,node_cartmodel,node_authapi,node_reviewapi,node_brandmodel,node_reviewmodel,node_network,node_token toneRose
class node_shopper,node_backend toneIndigo
```

## Components

### Catalog discovery

- [Home and navigation](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/main/MainActivity.java): `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/main/MainActivity.java`
- [Categories and brands](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/CategoryDetailActivity.java): `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/CategoryDetailActivity.java`
- [Search and filters](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/SearchActivity.java): `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/SearchActivity.java`
- [Product details](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/ProductDetailActivity.java): `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/ProductDetailActivity.java`

### Shopping and orders

- [Cart management](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/cart/CartActivity.java): `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/cart/CartActivity.java`
- [Checkout](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/checkout/CheckoutActivity.java): `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/checkout/CheckoutActivity.java`
- [Payment](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/payment/KhqrPaymentActivity.java): `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/payment/KhqrPaymentActivity.java`
- [Order tracking](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/cart/MyOrdersActivity.java): `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/cart/MyOrdersActivity.java`

### Identity and engagement

- [Sign-in and verification](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/auth/LoginActivity.java): `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/auth/LoginActivity.java`
- [Profile and preferences](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/profile/ProfileActivity.java): `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/profile/ProfileActivity.java`
- [Wishlist](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/profile/WishlistActivity.java): `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/profile/WishlistActivity.java`
- [Product reviews](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ReviewRepository.java): `app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ReviewRepository.java`
- [Coupons and promotions](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/utils/managers/CouponManager.java): `app/src/main/java/aeu/ratha/beckie_deal_app/utils/managers/CouponManager.java`

### Data and networking

- [Product catalog data](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ProductRepository.java): `app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ProductRepository.java`
- [Product model](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Product.java): `app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Product.java`
- [Cart repository](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/CartRepository.java): `app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/CartRepository.java`
- [Cart model](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Cart.java): `app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Cart.java`
- [Authentication API](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/api/AuthApiService.java): `app/src/main/java/aeu/ratha/beckie_deal_app/data/api/AuthApiService.java`
- [Review API](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/api/ReviewApiService.java): `app/src/main/java/aeu/ratha/beckie_deal_app/data/api/ReviewApiService.java`
- [Brand model](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Brand.java): `app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Brand.java`
- [Review model](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Review.java): `app/src/main/java/aeu/ratha/beckie_deal_app/data/models/Review.java`
- [Retrofit networking](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/network/RetrofitClient.java): `app/src/main/java/aeu/ratha/beckie_deal_app/network/RetrofitClient.java`
- [Token storage](https://github.com/horratha/beckie_deal_app_android/blob/main/app/src/main/java/aeu/ratha/beckie_deal_app/security/TokenManager.java): `app/src/main/java/aeu/ratha/beckie_deal_app/security/TokenManager.java`

### Other components

- **Shopper**
- **REST backend**

## Connections

- Shopper → Home and navigation: opens app (evidence: `README.md`)
- Shopper → Categories and brands: browses catalog (evidence: `README.md`)
- Shopper → Search and filters: searches products (evidence: `README.md`)
- Shopper → Sign-in and verification: signs in (evidence: `README.md`)
- Home and navigation → Categories and brands: navigates to
- Categories and brands → Product catalog data: loads catalog
- Search and filters → Product catalog data: searches catalog (evidence: `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/SearchActivity.java`)
- Product details → Product catalog data: loads details (evidence: `app/src/main/java/aeu/ratha/beckie_deal_app/ui/activities/product/ProductDetailActivity.java`)
- Product catalog data → Product model: returns products (evidence: `app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ProductRepository.java`)
- Cart management → Cart repository: manages cart
- Cart repository → Cart model: returns cart
- Cart management → Checkout: starts checkout
- Checkout → Payment: selects payment
- Checkout → Order tracking: places order
- Sign-in and verification → Authentication API: authenticates
- Authentication API → REST backend: calls REST (evidence: `app/src/main/java/aeu/ratha/beckie_deal_app/data/api/AuthApiService.java`)
- Profile and preferences → Wishlist: opens wishlist
- Product details → Product reviews: shows reviews
- Product reviews → Review API: requests reviews (evidence: `app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ReviewRepository.java`)
- Review API → REST backend: calls REST (evidence: `app/src/main/java/aeu/ratha/beckie_deal_app/data/api/ReviewApiService.java`)
- Product reviews → Review model: caches reviews (evidence: `app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ReviewRepository.java`)
- Categories and brands → Brand model: displays brands
- Product catalog data → Retrofit networking: uses client (evidence: `app/src/main/java/aeu/ratha/beckie_deal_app/data/repository/ProductRepository.java`)
- Retrofit networking → REST backend: sends requests (evidence: `app/src/main/java/aeu/ratha/beckie_deal_app/network/RetrofitClient.java`)
- Retrofit networking → Token storage: adds credentials (evidence: `app/src/main/java/aeu/ratha/beckie_deal_app/network/RetrofitClient.java`)
- Shopper → Coupons and promotions: uses deals (evidence: `README.md`)
