# dr33awi/dhakarani_app architecture

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

- Interactive diagram: https://gitdiagram.com/dr33awi/dhakarani_app
- Repository: https://github.com/dr33awi/dhakarani_app

## Overview

Dhakarani is a Flutter Islamic companion app. The main user workflow begins in the app and routes to features for daily worship, prayer times, and personal practice; supporting capabilities include Quran reading, Qibla direction, and settings. The tree supports these capability areas, while the sampled native code confirms Android integrations for prayer widgets, adhan playback, notifications, and floating athkar. Flutter feature-to-feature and data-layer wiring is not shown in the excerpts, so those links are omitted.

Main entry points: [`lib/main.dart`](https://github.com/dr33awi/dhakarani_app/blob/main/lib/main.dart) (Flutter entry), [`lib/app/routes/app_router.dart`](https://github.com/dr33awi/dhakarani_app/blob/main/lib/app/routes/app_router.dart) (App routes), [`android/app/src/main/kotlin/com/dhakarani/app/overlay/OverlayAthkarForegroundService.kt`](https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/overlay/OverlayAthkarForegroundService.kt) (Floating athkar), [`android/app/src/main/kotlin/com/dhakarani/app/MainActivity.kt`](https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/MainActivity.kt) (Flutter Android bridge)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App experience"]
  node_entry["Flutter entry<br/>[main.dart]"]
  node_routing["App routes<br/>[app_router.dart]"]
  node_home["Home dashboard"]
  node_settings["Settings"]
end

subgraph group_worship["Worship content"]
  node_athkar["Athkar"]
  node_dua["Duas"]
  node_daily["Daily content"]
  node_asma["Names of Allah"]
  node_quran["Quran reader"]
end

subgraph group_prayer["Prayer tools"]
  node_prayer_times["Prayer times"]
  node_qibla["Qibla direction"]
end

subgraph group_practice["Practice tools"]
  node_tracking["Prayer tracking"]
  node_tasbih["Tasbih counter"]
end

subgraph group_platform["Android services"]
  node_overlay["Floating athkar"]
  node_overlay_window["Overlay window"]
  node_adhan["Adhan playback"]
  node_prayer_widget["Prayer widget"]
  node_android_bridge["Flutter Android bridge<br/>[MainActivity.kt]"]
end

node_user(("App user"))
node_android(("Android system"))

node_user -->|"opens app"| node_entry
node_entry -->|"starts routes"| node_routing
node_routing -->|"routes to"| node_home
node_android_bridge -->|"starts service"| node_overlay
node_overlay -->|"shows dhikr"| node_overlay_window
node_android -->|"updates widget"| node_prayer_widget
node_android -->|"starts playback"| node_adhan

click node_entry "https://github.com/dr33awi/dhakarani_app/blob/main/lib/main.dart"
click node_routing "https://github.com/dr33awi/dhakarani_app/blob/main/lib/app/routes/app_router.dart"
click node_home "https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/home"
click node_settings "https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/settings"
click node_athkar "https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/athkar"
click node_dua "https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/dua"
click node_daily "https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/daily_content"
click node_asma "https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/asma_allah"
click node_quran "https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/quran"
click node_prayer_times "https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/prayer_times"
click node_qibla "https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/qibla"
click node_tracking "https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/prayer_tracking"
click node_tasbih "https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/tasbih"
click node_overlay "https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/overlay/OverlayAthkarForegroundService.kt"
click node_overlay_window "https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/overlay/OverlayWindowController.kt"
click node_adhan "https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/adhan/AdhanPlayerService.kt"
click node_prayer_widget "https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/PrayerWidget/PrayerWidgetProvider.kt"
click node_android_bridge "https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/MainActivity.kt"

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_entry,node_routing,node_home,node_settings,node_user toneBlue
class node_athkar,node_dua,node_daily,node_asma,node_quran toneAmber
class node_prayer_times,node_qibla toneMint
class node_tracking,node_tasbih toneRose
class node_overlay,node_overlay_window,node_adhan,node_prayer_widget,node_android_bridge,node_android toneIndigo
```

## Components

### App experience

- [Flutter entry](https://github.com/dr33awi/dhakarani_app/blob/main/lib/main.dart): `lib/main.dart`
- [App routes](https://github.com/dr33awi/dhakarani_app/blob/main/lib/app/routes/app_router.dart): `lib/app/routes/app_router.dart`
- [Home dashboard](https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/home): `lib/features/home`
- [Settings](https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/settings): `lib/features/settings`

### Worship content

- [Athkar](https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/athkar): `lib/features/athkar`
- [Duas](https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/dua): `lib/features/dua`
- [Daily content](https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/daily_content): `lib/features/daily_content`
- [Names of Allah](https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/asma_allah): `lib/features/asma_allah`
- [Quran reader](https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/quran): `lib/features/quran`

### Prayer tools

- [Prayer times](https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/prayer_times): `lib/features/prayer_times`
- [Qibla direction](https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/qibla): `lib/features/qibla`

### Practice tools

- [Prayer tracking](https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/prayer_tracking): `lib/features/prayer_tracking`
- [Tasbih counter](https://github.com/dr33awi/dhakarani_app/tree/main/lib/features/tasbih): `lib/features/tasbih`

### Android services

- [Floating athkar](https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/overlay/OverlayAthkarForegroundService.kt): `android/app/src/main/kotlin/com/dhakarani/app/overlay/OverlayAthkarForegroundService.kt`
- [Overlay window](https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/overlay/OverlayWindowController.kt): `android/app/src/main/kotlin/com/dhakarani/app/overlay/OverlayWindowController.kt`
- [Adhan playback](https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/adhan/AdhanPlayerService.kt): `android/app/src/main/kotlin/com/dhakarani/app/adhan/AdhanPlayerService.kt`
- [Prayer widget](https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/PrayerWidget/PrayerWidgetProvider.kt): `android/app/src/main/kotlin/com/dhakarani/app/PrayerWidget/PrayerWidgetProvider.kt`
- [Flutter Android bridge](https://github.com/dr33awi/dhakarani_app/blob/main/android/app/src/main/kotlin/com/dhakarani/app/MainActivity.kt): `android/app/src/main/kotlin/com/dhakarani/app/MainActivity.kt`

### Other components

- **App user**
- **Android system**

## Connections

- App user → Flutter entry: opens app
- Flutter entry → App routes: starts routes
- App routes → Home dashboard: routes to
- Flutter Android bridge → Floating athkar: starts service
- Floating athkar → Overlay window: shows dhikr
- Android system → Prayer widget: updates widget
- Android system → Adhan playback: starts playback
