# fahad2bhatti/dobara architecture

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

- Interactive diagram: https://gitdiagram.com/fahad2bhatti/dobara
- Repository: https://github.com/fahad2bhatti/dobara

## Overview

Dobara is a Flutter marketplace for pre-loved fashion. Buyers browse condition-graded listings, add items to a persisted cart, provide delivery details, and place Cash-on-Delivery orders; the Cloud Function fetches listing data server-side before writing an order. Other major branches include authentication, reviews, notifications, trust and safety, and admin operations. README and the file tree support these capabilities; Dart implementations were not sampled, so internal calls beyond the documented order flow are not drawn.

Main entry points: [`lib/core/router/app_router.dart`](https://github.com/fahad2bhatti/dobara/blob/main/lib/core/router/app_router.dart) (App routing), [`lib/features/checkout/presentation/screens/checkout_screen.dart`](https://github.com/fahad2bhatti/dobara/blob/main/lib/features/checkout/presentation/screens/checkout_screen.dart) (Checkout), [`functions/index.js`](https://github.com/fahad2bhatti/dobara/blob/main/functions/index.js) (Place-order function), [`lib/features/notifications`](https://github.com/fahad2bhatti/dobara/tree/main/lib/features/notifications) (Notifications)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_buyer["Buyer marketplace"]
  node_app["Flutter app<br/>[main.dart]"]
  node_router["App routing<br/>[app_router.dart]"]
  node_catalog["Browse listings"]
  node_listing_data["Listing state"]
  node_cart["Cart"]
  node_cart_data["Cart persistence"]
  node_checkout["Checkout"]
  node_addresses["Delivery addresses"]
  node_orders["Order history"]
end

subgraph group_identity["Identity and account"]
  node_auth["Authentication"]
  node_auth_service["Firebase auth service"]
end

subgraph group_trust_admin["Trust and administration"]
  node_reviews["Reviews"]
  node_reports["Listing reports<br/>[report_sheet.dart]"]
  node_admin["Admin operations"]
  node_notifications["Notifications"]
end

subgraph group_platform["Backend and integrations"]
  node_firestore[("Cloud Firestore")]
  node_place_order["Place-order function<br/>[index.js]"]
  node_cloudinary["Cloudinary uploads"]
  node_image_storage["Image upload service"]
  node_cloud_messaging["Firebase Cloud Messaging"]
end

node_buyer(("Buyer"))

node_buyer -->|"uses"| node_app
node_app -->|"routes through"| node_router
node_router -->|"opens"| node_catalog
node_router -->|"opens"| node_cart
node_router -->|"opens"| node_checkout
node_catalog -->|"loads listings"| node_listing_data
node_listing_data -->|"reads catalog"| node_firestore
node_cart -->|"updates cart"| node_cart_data
node_cart_data -->|"persists cart"| node_firestore
node_checkout -->|"uses address"| node_addresses
node_checkout -->|"requests order"| node_place_order
node_place_order -->|"reads listings"| node_firestore
node_place_order -->|"writes order"| node_firestore
node_router -->|"opens"| node_auth
node_auth -->|"authenticates"| node_auth_service
node_auth_service -->|"uses Firebase"| node_firestore
node_orders -->|"tracks orders"| node_firestore
node_reviews -->|"stores reviews"| node_firestore
node_reports -->|"submits reports"| node_firestore
node_admin -->|"manages data"| node_firestore
node_notifications -->|"loads notifications"| node_firestore
node_image_storage -.->|"uploads images"| node_cloudinary
node_notifications -.->|"uses messaging"| node_cloud_messaging

click node_app "https://github.com/fahad2bhatti/dobara/blob/main/lib/main.dart"
click node_router "https://github.com/fahad2bhatti/dobara/blob/main/lib/core/router/app_router.dart"
click node_catalog "https://github.com/fahad2bhatti/dobara/tree/main/lib/features/listings/presentation"
click node_listing_data "https://github.com/fahad2bhatti/dobara/blob/main/lib/features/listings/domain/listings_provider.dart"
click node_cart "https://github.com/fahad2bhatti/dobara/tree/main/lib/features/cart/presentation"
click node_cart_data "https://github.com/fahad2bhatti/dobara/blob/main/lib/features/cart/data/cart_repository.dart"
click node_checkout "https://github.com/fahad2bhatti/dobara/blob/main/lib/features/checkout/presentation/screens/checkout_screen.dart"
click node_addresses "https://github.com/fahad2bhatti/dobara/blob/main/lib/features/addresses/data/addresses_repository.dart"
click node_orders "https://github.com/fahad2bhatti/dobara/tree/main/lib/features/orders"
click node_auth "https://github.com/fahad2bhatti/dobara/tree/main/lib/features/auth"
click node_auth_service "https://github.com/fahad2bhatti/dobara/blob/main/lib/core/services/firebase_auth_service.dart"
click node_reviews "https://github.com/fahad2bhatti/dobara/tree/main/lib/features/reviews"
click node_reports "https://github.com/fahad2bhatti/dobara/blob/main/lib/features/listings/presentation/widgets/report_sheet.dart"
click node_admin "https://github.com/fahad2bhatti/dobara/tree/main/lib/features/admin"
click node_notifications "https://github.com/fahad2bhatti/dobara/tree/main/lib/features/notifications"
click node_place_order "https://github.com/fahad2bhatti/dobara/blob/main/functions/index.js"
click node_image_storage "https://github.com/fahad2bhatti/dobara/blob/main/lib/core/services/storage_service.dart"

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_app,node_router,node_catalog,node_listing_data,node_cart,node_cart_data,node_checkout,node_addresses,node_orders toneBlue
class node_auth,node_auth_service toneAmber
class node_reviews,node_reports,node_admin,node_notifications toneMint
class node_firestore,node_place_order,node_cloudinary,node_image_storage,node_cloud_messaging toneRose
class node_buyer toneIndigo
```

## Components

### Buyer marketplace

- [Flutter app](https://github.com/fahad2bhatti/dobara/blob/main/lib/main.dart): `lib/main.dart`
- [App routing](https://github.com/fahad2bhatti/dobara/blob/main/lib/core/router/app_router.dart): `lib/core/router/app_router.dart`
- [Browse listings](https://github.com/fahad2bhatti/dobara/tree/main/lib/features/listings/presentation): `lib/features/listings/presentation`
- [Listing state](https://github.com/fahad2bhatti/dobara/blob/main/lib/features/listings/domain/listings_provider.dart): `lib/features/listings/domain/listings_provider.dart`
- [Cart](https://github.com/fahad2bhatti/dobara/tree/main/lib/features/cart/presentation): `lib/features/cart/presentation`
- [Cart persistence](https://github.com/fahad2bhatti/dobara/blob/main/lib/features/cart/data/cart_repository.dart): `lib/features/cart/data/cart_repository.dart`
- [Checkout](https://github.com/fahad2bhatti/dobara/blob/main/lib/features/checkout/presentation/screens/checkout_screen.dart): `lib/features/checkout/presentation/screens/checkout_screen.dart`
- [Delivery addresses](https://github.com/fahad2bhatti/dobara/blob/main/lib/features/addresses/data/addresses_repository.dart): `lib/features/addresses/data/addresses_repository.dart`
- [Order history](https://github.com/fahad2bhatti/dobara/tree/main/lib/features/orders): `lib/features/orders`

### Identity and account

- [Authentication](https://github.com/fahad2bhatti/dobara/tree/main/lib/features/auth): `lib/features/auth`
- [Firebase auth service](https://github.com/fahad2bhatti/dobara/blob/main/lib/core/services/firebase_auth_service.dart): `lib/core/services/firebase_auth_service.dart`

### Trust and administration

- [Reviews](https://github.com/fahad2bhatti/dobara/tree/main/lib/features/reviews): `lib/features/reviews`
- [Listing reports](https://github.com/fahad2bhatti/dobara/blob/main/lib/features/listings/presentation/widgets/report_sheet.dart): `lib/features/listings/presentation/widgets/report_sheet.dart`
- [Admin operations](https://github.com/fahad2bhatti/dobara/tree/main/lib/features/admin): `lib/features/admin`
- [Notifications](https://github.com/fahad2bhatti/dobara/tree/main/lib/features/notifications): `lib/features/notifications`

### Backend and integrations

- **Cloud Firestore**
- [Place-order function](https://github.com/fahad2bhatti/dobara/blob/main/functions/index.js): `functions/index.js`
- **Cloudinary uploads**
- [Image upload service](https://github.com/fahad2bhatti/dobara/blob/main/lib/core/services/storage_service.dart): `lib/core/services/storage_service.dart`
- **Firebase Cloud Messaging**

### Other components

- **Buyer**

## Connections

- Buyer → Flutter app: uses
- Flutter app → App routing: routes through
- App routing → Browse listings: opens
- App routing → Cart: opens
- App routing → Checkout: opens
- Browse listings → Listing state: loads listings
- Listing state → Cloud Firestore: reads catalog
- Cart → Cart persistence: updates cart
- Cart persistence → Cloud Firestore: persists cart
- Checkout → Delivery addresses: uses address
- Checkout → Place-order function: requests order
- Place-order function → Cloud Firestore: reads listings
- Place-order function → Cloud Firestore: writes order
- App routing → Authentication: opens
- Authentication → Firebase auth service: authenticates
- Firebase auth service → Cloud Firestore: uses Firebase
- Order history → Cloud Firestore: tracks orders
- Reviews → Cloud Firestore: stores reviews
- Listing reports → Cloud Firestore: submits reports
- Admin operations → Cloud Firestore: manages data
- Notifications → Cloud Firestore: loads notifications
- Image upload service → Cloudinary uploads: uploads images
- Notifications → Firebase Cloud Messaging: uses messaging
