# mohammad-nadil/al-arafah architecture

> Architecture diagram of the GitHub repository mohammad-nadil/al-arafah, 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/mohammad-nadil/al-arafah
- Repository: https://github.com/mohammad-nadil/al-arafah

## Overview

Al-Arafah is a school website with public information pages and an accompanying admin area for school content and records. Visitors can browse school, academic, admissions, notice and contact information, and access a results-search page; administrators have pages for students, staff, notices, results, content and settings. The tree names the principal page and feature components, but the sampled source does not establish most page-to-component wiring or a persistent backend, so those connections are not inferred.

Main entry points: [`src/context/LanguageContext.jsx`](https://github.com/mohammad-nadil/al-arafah/blob/main/src/context/LanguageContext.jsx) (Language preference), [`src/md.js`](https://github.com/mohammad-nadil/al-arafah/blob/main/src/md.js) (Optional auth gate), [`src/app/admin/settings/page.jsx`](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/settings/page.jsx) (School settings), [`src/app/admin/page.jsx`](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/page.jsx) (Admin dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public website"]
  node_home["Home page<br/>[page.jsx]"]
  node_about["About page<br/>[page.jsx]"]
  node_academics["Academics page<br/>[page.jsx]"]
  node_admissions["Admissions pages<br/>[page.jsx]"]
  node_application["Apply page<br/>[page.jsx]"]
  node_notices["Notices page<br/>[page.jsx]"]
  node_results["Results page<br/>[page.jsx]"]
  node_contact["Contact page<br/>[page.jsx]"]
end

subgraph group_school["School information"]
  node_about_features["School profile<br/>[OurStory.jsx]"]
  node_academic_features["Academic details<br/>[Curriculum.jsx]"]
  node_admission_features["Admissions details<br/>[FeesStructure.jsx]"]
  node_notice_list["Notice listing<br/>[NoticeList.jsx]"]
  node_result_search["Result search<br/>[ResultSearch.jsx]"]
  node_result_display["Result display<br/>[ResultDisplay.jsx]"]
end

subgraph group_admin["Administration"]
  node_admin_home["Admin dashboard<br/>[page.jsx]"]
  node_admin_content["Content management<br/>[page.jsx]"]
  node_admin_students["Student records<br/>[page.jsx]"]
  node_admin_staff["Staff records<br/>[page.jsx]"]
  node_admin_notices["Notice management<br/>[page.jsx]"]
  node_admin_results["Result management<br/>[page.jsx]"]
  node_admin_settings["School settings<br/>[page.jsx]"]
  node_login["Admin login<br/>[page.jsx]"]
end

subgraph group_shared["Shared services"]
  node_auth_gate["Optional auth gate<br/>[md.js]"]
  node_language["Language preference"]
  node_site_config["School profile config<br/>[site.js]"]
  node_notice_model["Notice model<br/>[Notice.js]"]
end

node_visitor(("Visitor"))
node_administrator(("Administrator"))

node_visitor -->|"opens"| node_home
node_visitor -->|"opens"| node_about
node_visitor -->|"opens"| node_academics
node_visitor -->|"opens"| node_admissions
node_visitor -->|"opens"| node_application
node_visitor -->|"opens"| node_notices
node_visitor -->|"opens"| node_results
node_visitor -->|"opens"| node_contact
node_administrator -->|"opens"| node_login
node_administrator -->|"opens"| node_admin_home
node_administrator -->|"manages"| node_admin_content
node_administrator -->|"manages"| node_admin_students
node_administrator -->|"manages"| node_admin_staff
node_administrator -->|"manages"| node_admin_notices
node_administrator -->|"manages"| node_admin_results
node_administrator -->|"configures"| node_admin_settings
node_auth_gate -.->|"redirects"| node_login
node_auth_gate -.->|"guards"| node_admin_home
node_admin_settings -->|"reads defaults"| node_site_config
node_result_search -->|"reads language"| node_language
node_about_features -->|"uses language"| node_language
node_admission_features -->|"uses language"| node_language

click node_home "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/page.jsx"
click node_about "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/about/page.jsx"
click node_academics "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/academics/page.jsx"
click node_admissions "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/admissions/page.jsx"
click node_application "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/admissions/apply/page.jsx"
click node_notices "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/notices/page.jsx"
click node_results "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/results/page.jsx"
click node_contact "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/contact/page.jsx"
click node_about_features "https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/about/OurStory.jsx"
click node_academic_features "https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/academics/Curriculum.jsx"
click node_admission_features "https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/admission/FeesStructure.jsx"
click node_notice_list "https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/notices/NoticeList.jsx"
click node_result_search "https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/result/ResultSearch.jsx"
click node_result_display "https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/result/ResultDisplay.jsx"
click node_admin_home "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/page.jsx"
click node_admin_content "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/content/page.jsx"
click node_admin_students "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/students/page.jsx"
click node_admin_staff "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/staffs/page.jsx"
click node_admin_notices "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/notices/page.jsx"
click node_admin_results "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/results/page.jsx"
click node_admin_settings "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/settings/page.jsx"
click node_login "https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/login/page.jsx"
click node_auth_gate "https://github.com/mohammad-nadil/al-arafah/blob/main/src/md.js"
click node_language "https://github.com/mohammad-nadil/al-arafah/blob/main/src/context/LanguageContext.jsx"
click node_site_config "https://github.com/mohammad-nadil/al-arafah/blob/main/src/config/site.js"
click node_notice_model "https://github.com/mohammad-nadil/al-arafah/blob/main/src/models/Notice.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_about,node_academics,node_admissions,node_application,node_notices,node_results,node_contact toneBlue
class node_about_features,node_academic_features,node_admission_features,node_notice_list,node_result_search,node_result_display toneAmber
class node_admin_home,node_admin_content,node_admin_students,node_admin_staff,node_admin_notices,node_admin_results,node_admin_settings,node_login toneMint
class node_auth_gate,node_language,node_site_config,node_notice_model toneRose
class node_visitor,node_administrator toneIndigo
```

## Components

### Public website

- [Home page](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/page.jsx): `src/app/(public)/page.jsx`
- [About page](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/about/page.jsx): `src/app/(public)/about/page.jsx`
- [Academics page](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/academics/page.jsx): `src/app/(public)/academics/page.jsx`
- [Admissions pages](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/admissions/page.jsx): `src/app/(public)/admissions/page.jsx`
- [Apply page](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/admissions/apply/page.jsx): `src/app/(public)/admissions/apply/page.jsx`
- [Notices page](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/notices/page.jsx): `src/app/(public)/notices/page.jsx`
- [Results page](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/results/page.jsx): `src/app/(public)/results/page.jsx`
- [Contact page](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/(public)/contact/page.jsx): `src/app/(public)/contact/page.jsx`

### School information

- [School profile](https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/about/OurStory.jsx): `src/components/layout/about/OurStory.jsx`
- [Academic details](https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/academics/Curriculum.jsx): `src/components/layout/academics/Curriculum.jsx`
- [Admissions details](https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/admission/FeesStructure.jsx): `src/components/layout/admission/FeesStructure.jsx`
- [Notice listing](https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/notices/NoticeList.jsx): `src/components/layout/notices/NoticeList.jsx`
- [Result search](https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/result/ResultSearch.jsx): `src/components/layout/result/ResultSearch.jsx`
- [Result display](https://github.com/mohammad-nadil/al-arafah/blob/main/src/components/layout/result/ResultDisplay.jsx): `src/components/layout/result/ResultDisplay.jsx`

### Administration

- [Admin dashboard](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/page.jsx): `src/app/admin/page.jsx`
- [Content management](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/content/page.jsx): `src/app/admin/content/page.jsx`
- [Student records](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/students/page.jsx): `src/app/admin/students/page.jsx`
- [Staff records](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/staffs/page.jsx): `src/app/admin/staffs/page.jsx`
- [Notice management](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/notices/page.jsx): `src/app/admin/notices/page.jsx`
- [Result management](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/results/page.jsx): `src/app/admin/results/page.jsx`
- [School settings](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/admin/settings/page.jsx): `src/app/admin/settings/page.jsx`
- [Admin login](https://github.com/mohammad-nadil/al-arafah/blob/main/src/app/login/page.jsx): `src/app/login/page.jsx`

### Shared services

- [Optional auth gate](https://github.com/mohammad-nadil/al-arafah/blob/main/src/md.js): `src/md.js`
- [Language preference](https://github.com/mohammad-nadil/al-arafah/blob/main/src/context/LanguageContext.jsx): `src/context/LanguageContext.jsx`
- [School profile config](https://github.com/mohammad-nadil/al-arafah/blob/main/src/config/site.js): `src/config/site.js`
- [Notice model](https://github.com/mohammad-nadil/al-arafah/blob/main/src/models/Notice.js): `src/models/Notice.js`

### Other components

- **Visitor**
- **Administrator**

## Connections

- Visitor → Home page: opens
- Visitor → About page: opens
- Visitor → Academics page: opens
- Visitor → Admissions pages: opens
- Visitor → Apply page: opens
- Visitor → Notices page: opens
- Visitor → Results page: opens
- Visitor → Contact page: opens
- Administrator → Admin login: opens
- Administrator → Admin dashboard: opens
- Administrator → Content management: manages
- Administrator → Student records: manages
- Administrator → Staff records: manages
- Administrator → Notice management: manages
- Administrator → Result management: manages
- Administrator → School settings: configures
- Optional auth gate → Admin login: redirects
- Optional auth gate → Admin dashboard: guards
- School settings → School profile config: reads defaults
- Result search → Language preference: reads language
- School profile → Language preference: uses language
- Admissions details → Language preference: uses language
