# devsayed02/prayer_times_dashboard architecture

> Architecture diagram of the GitHub repository devsayed02/prayer_times_dashboard, 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/devsayed02/prayer_times_dashboard
- Repository: https://github.com/devsayed02/prayer_times_dashboard

## Overview

This is a Flutter-based administration app for a prayer-times dashboard, with event management, app-update settings, notification sending, and notification history. The principal workflow is an administrator using the app’s pages to manage these records or send notifications; client services connect those pages to HTTP functions, which read and write Firebase data or send through FCM. The README is only a title, and Flutter implementation excerpts were not provided, so page-to-service links are inferred from the matching filenames; backend behavior is grounded in the sampled functions source.

Main entry points: [`lib/main.dart`](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/main.dart) (Flutter app), [`functions/src/index.ts`](https://github.com/devsayed02/prayer_times_dashboard/blob/main/functions/src/index.ts) (Send notification API), [`lib/presentation/pages/events_management_page.dart`](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/events_management_page.dart) (Events management), [`lib/presentation/pages/app_update_page.dart`](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/app_update_page.dart) (App updates)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Admin interface"]
  node_app["Flutter app<br/>[main.dart]"]
  node_dashboard["Dashboard"]
  node_events_ui["Events management"]
  node_updates_ui["App updates"]
  node_send_ui["Send notification"]
  node_history_ui["Notification history"]
end

subgraph group_client["Client services"]
  node_events_client["Events service"]
  node_updates_client["App update service"]
  node_sender_client["Notification sender"]
  node_history_client["History service"]
  node_event_model["Event model<br/>[islamic_event.dart]"]
  node_update_model["Update model<br/>[app_update.dart]"]
  node_log_model["Notification log model"]
end

subgraph group_backend["Cloud functions"]
  node_send_fn["Send notification API<br/>[index.ts]"]
  node_update_fn["App update APIs<br/>[index.ts]"]
  node_events_fn["Event APIs<br/>[index.ts]"]
  node_history_fn["History API<br/>[index.ts]"]
end

subgraph group_platform["Firebase services"]
  node_firestore[("Cloud Firestore")]
  node_fcm["Firebase Cloud Messaging"]
end

node_admin(("Administrator"))

node_admin -->|"uses"| node_app
node_app -->|"opens"| node_dashboard
node_app -->|"opens"| node_events_ui
node_app -->|"opens"| node_updates_ui
node_app -->|"opens"| node_send_ui
node_app -->|"opens"| node_history_ui
node_events_ui -->|"manages events"| node_events_client
node_updates_ui -->|"manages settings"| node_updates_client
node_send_ui -->|"submits notification"| node_sender_client
node_history_ui -->|"loads history"| node_history_client
node_events_client -->|"requests events"| node_events_fn
node_updates_client -->|"requests settings"| node_update_fn
node_sender_client -->|"sends request"| node_send_fn
node_history_client -->|"requests logs"| node_history_fn
node_events_fn -->|"reads and writes events"| node_firestore
node_update_fn -->|"reads and writes settings"| node_firestore
node_send_fn -->|"dispatches notification"| node_fcm
node_send_fn -->|"writes delivery logs"| node_firestore
node_history_fn -->|"reads logs"| node_firestore

click node_app "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/main.dart"
click node_dashboard "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/dashboard_page.dart"
click node_events_ui "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/events_management_page.dart"
click node_updates_ui "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/app_update_page.dart"
click node_send_ui "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/send_notification_page.dart"
click node_history_ui "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/notification_history_page.dart"
click node_events_client "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/services/events_service.dart"
click node_updates_client "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/services/app_update_service.dart"
click node_sender_client "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/services/fcm_notification_sender.dart"
click node_history_client "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/services/notification_history_service.dart"
click node_event_model "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/models/islamic_event.dart"
click node_update_model "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/models/app_update.dart"
click node_log_model "https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/models/notification_log.dart"
click node_send_fn "https://github.com/devsayed02/prayer_times_dashboard/blob/main/functions/src/index.ts"
click node_update_fn "https://github.com/devsayed02/prayer_times_dashboard/blob/main/functions/src/index.ts"
click node_events_fn "https://github.com/devsayed02/prayer_times_dashboard/blob/main/functions/src/index.ts"
click node_history_fn "https://github.com/devsayed02/prayer_times_dashboard/blob/main/functions/src/index.ts"

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_dashboard,node_events_ui,node_updates_ui,node_send_ui,node_history_ui toneBlue
class node_events_client,node_updates_client,node_sender_client,node_history_client,node_event_model,node_update_model,node_log_model toneAmber
class node_send_fn,node_update_fn,node_events_fn,node_history_fn toneMint
class node_firestore,node_fcm toneRose
class node_admin toneIndigo
```

## Components

### Admin interface

- [Flutter app](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/main.dart): `lib/main.dart`
- [Dashboard](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/dashboard_page.dart): `lib/presentation/pages/dashboard_page.dart`
- [Events management](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/events_management_page.dart): `lib/presentation/pages/events_management_page.dart`
- [App updates](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/app_update_page.dart): `lib/presentation/pages/app_update_page.dart`
- [Send notification](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/send_notification_page.dart): `lib/presentation/pages/send_notification_page.dart`
- [Notification history](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/presentation/pages/notification_history_page.dart): `lib/presentation/pages/notification_history_page.dart`

### Client services

- [Events service](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/services/events_service.dart): `lib/data/services/events_service.dart`
- [App update service](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/services/app_update_service.dart): `lib/data/services/app_update_service.dart`
- [Notification sender](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/services/fcm_notification_sender.dart): `lib/data/services/fcm_notification_sender.dart`
- [History service](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/services/notification_history_service.dart): `lib/data/services/notification_history_service.dart`
- [Event model](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/models/islamic_event.dart): `lib/data/models/islamic_event.dart`
- [Update model](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/models/app_update.dart): `lib/data/models/app_update.dart`
- [Notification log model](https://github.com/devsayed02/prayer_times_dashboard/blob/main/lib/data/models/notification_log.dart): `lib/data/models/notification_log.dart`

### Cloud functions

- [Send notification API](https://github.com/devsayed02/prayer_times_dashboard/blob/main/functions/src/index.ts): `functions/src/index.ts`
- [App update APIs](https://github.com/devsayed02/prayer_times_dashboard/blob/main/functions/src/index.ts): `functions/src/index.ts`
- [Event APIs](https://github.com/devsayed02/prayer_times_dashboard/blob/main/functions/src/index.ts): `functions/src/index.ts`
- [History API](https://github.com/devsayed02/prayer_times_dashboard/blob/main/functions/src/index.ts): `functions/src/index.ts`

### Firebase services

- **Cloud Firestore**
- **Firebase Cloud Messaging**

### Other components

- **Administrator**

## Connections

- Administrator → Flutter app: uses
- Flutter app → Dashboard: opens
- Flutter app → Events management: opens
- Flutter app → App updates: opens
- Flutter app → Send notification: opens
- Flutter app → Notification history: opens
- Events management → Events service: manages events
- App updates → App update service: manages settings
- Send notification → Notification sender: submits notification
- Notification history → History service: loads history
- Events service → Event APIs: requests events
- App update service → App update APIs: requests settings
- Notification sender → Send notification API: sends request
- History service → History API: requests logs
- Event APIs → Cloud Firestore: reads and writes events
- App update APIs → Cloud Firestore: reads and writes settings
- Send notification API → Firebase Cloud Messaging: dispatches notification
- Send notification API → Cloud Firestore: writes delivery logs
- History API → Cloud Firestore: reads logs
