# immad-khan/mazdoorlink architecture

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

- Interactive diagram: https://gitdiagram.com/immad-khan/mazdoorlink
- Repository: https://github.com/immad-khan/mazdoorlink

## Overview

MazdoorConnect is a Flutter prototype for connecting customers with service workers. Its main workflow is role selection and authentication, followed by customer booking and worker onboarding/job handling; shared history, chat, and settings support both roles. The README documents route capabilities, while sampled implementation is limited to the Firebase chat-notification function, so unsampled subsystem links are shown only where the documented route flow supports them.

Main entry points: [`lib/main.dart`](https://github.com/immad-khan/mazdoorlink/blob/main/lib/main.dart) (Flutter App), [`lib/screens/job_posting_screen.dart`](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/job_posting_screen.dart) (Job Posting), [`firebase/functions/index.js`](https://github.com/immad-khan/mazdoorlink/blob/main/firebase/functions/index.js) (Push Notifications), [`lib/screens/worker_home.dart`](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/worker_home.dart) (Worker Dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App and State"]
  node_app["Flutter App<br/>[main.dart]"]
  node_state["Role and Language<br/>[app_state.dart]"]
  node_welcome["Role Selection<br/>[home_screen.dart]"]
  node_auth["Authentication"]
end

subgraph group_customer["Customer Services"]
  node_customer_home["Customer Home<br/>[customer_home.dart]"]
  node_issue["Issue Selection"]
  node_posting["Job Posting"]
  node_estimate["Price Estimate"]
  node_recommendations["Worker Recommendations"]
  node_tracking["Job Tracking"]
end

subgraph group_worker["Worker Services"]
  node_worker_onboarding["Worker Onboarding"]
  node_worker_home["Worker Dashboard<br/>[worker_home.dart]"]
  node_worker_tracking["Worker Job Tracking"]
end

subgraph group_shared["Shared and Messaging"]
  node_history["Booking History"]
  node_chat["Chat"]
  node_settings["Settings"]
  node_notifications["Push Notifications<br/>[index.js]"]
end

node_user(("User"))
node_firestore[("Firestore")]
node_fcm["Firebase Messaging"]

node_user -->|"opens"| node_app
node_app -->|"uses shared state"| node_state
node_app -->|"routes to"| node_welcome
node_app -->|"routes to"| node_auth
node_app -->|"routes to"| node_customer_home
node_app -->|"routes to"| node_worker_home
node_app -->|"routes to"| node_history
node_app -->|"routes to"| node_chat
node_app -->|"routes to"| node_settings
node_customer_home -->|"continues to"| node_issue
node_issue -->|"continues to"| node_posting
node_posting -->|"continues to"| node_estimate
node_posting -->|"continues to"| node_recommendations
node_recommendations -->|"continues to"| node_tracking
node_worker_onboarding -->|"continues to"| node_worker_home
node_worker_home -->|"handles jobs"| node_worker_tracking
node_notifications -->|"reads conversation and user"| node_firestore
node_firestore -->|"triggers on message"| node_notifications
node_notifications -->|"sends notification"| node_fcm

click node_app "https://github.com/immad-khan/mazdoorlink/blob/main/lib/main.dart"
click node_state "https://github.com/immad-khan/mazdoorlink/blob/main/lib/app_state.dart"
click node_welcome "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/home_screen.dart"
click node_auth "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/auth_login_screen.dart"
click node_customer_home "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/customer_home.dart"
click node_issue "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/issue_selection_screen.dart"
click node_posting "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/job_posting_screen.dart"
click node_estimate "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/price_estimation_screen.dart"
click node_recommendations "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/recommendation_arguments.dart"
click node_tracking "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/tracking_map_screen.dart"
click node_history "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/booking_history_screen.dart"
click node_worker_onboarding "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/worker_services_setup_screen.dart"
click node_worker_home "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/worker_home.dart"
click node_worker_tracking "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/worker_tracking_screen.dart"
click node_chat "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/call_interaction_screen.dart"
click node_settings "https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/privacy_settings_screen.dart"
click node_notifications "https://github.com/immad-khan/mazdoorlink/blob/main/firebase/functions/index.js"

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_state,node_welcome,node_auth,node_user toneBlue
class node_customer_home,node_issue,node_posting,node_estimate,node_recommendations,node_tracking,node_firestore toneAmber
class node_worker_onboarding,node_worker_home,node_worker_tracking toneMint
class node_history,node_chat,node_settings,node_notifications toneRose
class node_fcm toneIndigo
```

## Components

### App and State

- [Flutter App](https://github.com/immad-khan/mazdoorlink/blob/main/lib/main.dart): `lib/main.dart`
- [Role and Language](https://github.com/immad-khan/mazdoorlink/blob/main/lib/app_state.dart): `lib/app_state.dart`
- [Role Selection](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/home_screen.dart): `lib/screens/home_screen.dart`
- [Authentication](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/auth_login_screen.dart): `lib/screens/auth_login_screen.dart`

### Customer Services

- [Customer Home](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/customer_home.dart): `lib/screens/customer_home.dart`
- [Issue Selection](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/issue_selection_screen.dart): `lib/screens/issue_selection_screen.dart`
- [Job Posting](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/job_posting_screen.dart): `lib/screens/job_posting_screen.dart`
- [Price Estimate](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/price_estimation_screen.dart): `lib/screens/price_estimation_screen.dart`
- [Worker Recommendations](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/recommendation_arguments.dart): `lib/screens/recommendation_arguments.dart`
- [Job Tracking](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/tracking_map_screen.dart): `lib/screens/tracking_map_screen.dart`

### Worker Services

- [Worker Onboarding](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/worker_services_setup_screen.dart): `lib/screens/worker_services_setup_screen.dart`
- [Worker Dashboard](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/worker_home.dart): `lib/screens/worker_home.dart`
- [Worker Job Tracking](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/worker_tracking_screen.dart): `lib/screens/worker_tracking_screen.dart`

### Shared and Messaging

- [Booking History](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/booking_history_screen.dart): `lib/screens/booking_history_screen.dart`
- [Chat](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/call_interaction_screen.dart): `lib/screens/call_interaction_screen.dart`
- [Settings](https://github.com/immad-khan/mazdoorlink/blob/main/lib/screens/privacy_settings_screen.dart): `lib/screens/privacy_settings_screen.dart`
- [Push Notifications](https://github.com/immad-khan/mazdoorlink/blob/main/firebase/functions/index.js): `firebase/functions/index.js`

### Other components

- **User**
- **Firestore**
- **Firebase Messaging**

## Connections

- User → Flutter App: opens
- Flutter App → Role and Language: uses shared state
- Flutter App → Role Selection: routes to
- Flutter App → Authentication: routes to
- Flutter App → Customer Home: routes to
- Flutter App → Worker Dashboard: routes to
- Flutter App → Booking History: routes to
- Flutter App → Chat: routes to
- Flutter App → Settings: routes to
- Customer Home → Issue Selection: continues to
- Issue Selection → Job Posting: continues to
- Job Posting → Price Estimate: continues to
- Job Posting → Worker Recommendations: continues to
- Worker Recommendations → Job Tracking: continues to
- Worker Onboarding → Worker Dashboard: continues to
- Worker Dashboard → Worker Job Tracking: handles jobs
- Push Notifications → Firestore: reads conversation and user
- Firestore → Push Notifications: triggers on message
- Push Notifications → Firebase Messaging: sends notification
