# zaidprogrammer334/tawbeh_public architecture

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

## Overview

This repository is an Arabic Islamic-content website with a separate Express hadith API. A visitor selects a devotional or learning feature and uses its page-specific browser logic; the API separately serves and refreshes hadith collections. Sampled source supports the prayer, Quran, hadith, repentance, and content experiences, but the README is empty and some scripts and page wiring were not sampled, so uncertain connections are omitted.

Main entry points: [`Script/quran.js`](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/quran.js) (Quran reader), [`server.js`](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/server.js) (Hadith API), [`update-hadiths.js`](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/update-hadiths.js) (Hadith refresh), [`Script/salah.js`](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/salah.js) (Prayer times)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_site["Website entry"]
  node_home["Home page<br/>[index.html]"]
  node_site_controls["Site controls<br/>[index.js]"]
end

subgraph group_worship["Worship tools"]
  node_adhkar["Daily adhkar<br/>[adhkar.js]"]
  node_salah["Prayer times<br/>[salah.js]"]
  node_tasbih["Tasbih counter<br/>[tasbih.js]"]
end

subgraph group_learning["Learning content"]
  node_quran["Quran reader<br/>[quran.js]"]
  node_quran_audio["Recitation audio"]
  node_tafsir_data["Tafsir data<br/>[tafsir.json]"]
  node_asma["Names of Allah<br/>[asma.js]"]
  node_stories["Prophetic stories<br/>[stories.js]"]
  node_figures["Islamic figures<br/>[islamic_figures.js]"]
  node_repentance["Repentance guide<br/>[tawbah.js]"]
end

subgraph group_hadith["Hadith service"]
  node_hadith_page["Hadith browser<br/>[hadith.js]"]
  node_hadith_api["Hadith API<br/>[server.js]"]
  node_hadith_records[("Hadith records<br/>[hadiths.json]")]
  node_refresh_job["Hadith refresh<br/>[update-hadiths.js]"]
end

node_visitor(("Visitor"))
node_quran_service{{"Quran services"}}
node_prayer_services{{"Location and prayer services"}}
node_hadith_source{{"Hadith data source"}}

node_visitor -->|"opens"| node_home
node_visitor -->|"uses"| node_adhkar
node_visitor -->|"uses"| node_salah
node_visitor -->|"uses"| node_tasbih
node_visitor -->|"uses"| node_quran
node_visitor -->|"uses"| node_asma
node_visitor -->|"reads"| node_stories
node_visitor -->|"reads"| node_figures
node_visitor -->|"uses"| node_repentance
node_visitor -->|"browses"| node_hadith_page
node_visitor -->|"requests"| node_hadith_api
node_quran -.->|"fetches text and tafsir"| node_quran_service
node_quran -->|"plays audio"| node_quran_audio
node_salah -.->|"gets location and times"| node_prayer_services
node_hadith_api -->|"loads records"| node_hadith_records
node_hadith_api -->|"invokes refresh"| node_refresh_job
node_refresh_job -.->|"downloads collections"| node_hadith_source
node_refresh_job -->|"updates records"| node_hadith_records

click node_home "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/index.html"
click node_site_controls "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/index.js"
click node_adhkar "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/adhkar.js"
click node_salah "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/salah.js"
click node_tasbih "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/tasbih.js"
click node_quran "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/quran.js"
click node_quran_audio "https://github.com/zaidprogrammer334/tawbeh_public/tree/main/audio/maher"
click node_tafsir_data "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/data/tafsir.json"
click node_asma "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/asma.js"
click node_stories "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/stories.js"
click node_figures "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/islamic_figures.js"
click node_repentance "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/tawbah.js"
click node_hadith_page "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/hadith.js"
click node_hadith_api "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/server.js"
click node_hadith_records "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/hadiths.json"
click node_refresh_job "https://github.com/zaidprogrammer334/tawbeh_public/blob/main/update-hadiths.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_home,node_site_controls toneBlue
class node_adhkar,node_salah,node_tasbih toneAmber
class node_quran,node_quran_audio,node_tafsir_data,node_asma,node_stories,node_figures,node_repentance toneMint
class node_hadith_page,node_hadith_api,node_hadith_records,node_refresh_job toneRose
class node_visitor,node_quran_service,node_prayer_services,node_hadith_source toneIndigo
```

## Components

### Website entry

- [Home page](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/index.html): `index.html`
- [Site controls](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/index.js): `Script/index.js`

### Worship tools

- [Daily adhkar](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/adhkar.js): `Script/adhkar.js`
- [Prayer times](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/salah.js): `Script/salah.js`
- [Tasbih counter](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/tasbih.js): `Script/tasbih.js`

### Learning content

- [Quran reader](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/quran.js): `Script/quran.js`
- [Recitation audio](https://github.com/zaidprogrammer334/tawbeh_public/tree/main/audio/maher): `audio/maher`
- [Tafsir data](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/data/tafsir.json): `data/tafsir.json`
- [Names of Allah](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/asma.js): `Script/asma.js`
- [Prophetic stories](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/stories.js): `Script/stories.js`
- [Islamic figures](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/islamic_figures.js): `Script/islamic_figures.js`
- [Repentance guide](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/tawbah.js): `Script/tawbah.js`

### Hadith service

- [Hadith browser](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/Script/hadith.js): `Script/hadith.js`
- [Hadith API](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/server.js): `server.js`
- [Hadith records](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/hadiths.json): `hadiths.json`
- [Hadith refresh](https://github.com/zaidprogrammer334/tawbeh_public/blob/main/update-hadiths.js): `update-hadiths.js`

### Other components

- **Visitor**
- **Quran services**
- **Location and prayer services**
- **Hadith data source**

## Connections

- Visitor → Home page: opens
- Visitor → Daily adhkar: uses
- Visitor → Prayer times: uses
- Visitor → Tasbih counter: uses
- Visitor → Quran reader: uses
- Visitor → Names of Allah: uses
- Visitor → Prophetic stories: reads
- Visitor → Islamic figures: reads
- Visitor → Repentance guide: uses
- Visitor → Hadith browser: browses
- Visitor → Hadith API: requests
- Quran reader → Quran services: fetches text and tafsir
- Quran reader → Recitation audio: plays audio
- Prayer times → Location and prayer services: gets location and times
- Hadith API → Hadith records: loads records
- Hadith API → Hadith refresh: invokes refresh
- Hadith refresh → Hadith data source: downloads collections
- Hadith refresh → Hadith records: updates records
