# software-engineer-muhammad-shahzad/admin-panel-shagun architecture

> Architecture diagram of the GitHub repository software-engineer-muhammad-shahzad/admin-panel-shagun, 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/software-engineer-muhammad-shahzad/admin-panel-shagun
- Repository: https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun

## Overview

This is a Next.js administrative portal for ShagunDirect. An administrator signs in and verifies an OTP, then uses protected admin pages to review dashboard metrics and manage users, couples, roles, payments, announcements, and notifications. Feature hooks and services form the application’s data-access layer, with API clients sending requests to the backend. The README is only the default Next.js template; capability coverage here is based on the supplied tree and sampled source, so unsampled UI-to-hook wiring is not asserted.

Main entry points: [`app/services/http.ts`](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/services/http.ts) (HTTP requests), [`app/(admin)/dashboard/page.tsx`](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/dashboard/page.tsx) (Dashboard page), [`app/(admin)/broadcasts/page.tsx`](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/broadcasts/page.tsx) (Broadcast pages), [`app/features/auth/services/authService.ts`](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/auth/services/authService.ts) (Authentication service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Admin access"]
  node_login["Login route<br/>[page.tsx]"]
  node_signinform["Sign-in form<br/>[SignIn.tsx]"]
  node_signin["Sign-in hook<br/>[useSignIn.ts]"]
  node_authservice["Authentication service<br/>[authService.ts]"]
  node_otp["OTP verification<br/>[page.tsx]"]
  node_guard["Admin access guard<br/>[AuthGuard.tsx]"]
end

subgraph group_insights["Dashboard insights"]
  node_dashboard["Dashboard page<br/>[page.tsx]"]
  node_dashboardhooks["Dashboard queries"]
  node_dashboardservice["Dashboard service"]
  node_charts["Dashboard charts<br/>[CompositeChart.tsx]"]
end

subgraph group_accounts["Account management"]
  node_users["Admin users<br/>[page.tsx]"]
  node_userhooks["Admin user actions<br/>[useAdminUsers.ts]"]
  node_userservice["Admin user service"]
  node_couples["Couple management<br/>[page.tsx]"]
  node_couplehooks["Couple actions<br/>[useCoupleUsers.ts]"]
  node_coupleservice["Couple service"]
  node_roles["Role management<br/>[page.tsx]"]
end

subgraph group_engagement["Broadcasts"]
  node_broadcasts["Broadcast pages<br/>[page.tsx]"]
  node_announcements["Announcement tools"]
  node_notifications["Notification tools"]
  node_notificationhook["Send notification"]
end

subgraph group_commerce["Payments and API"]
  node_payments["Payments page<br/>[page.tsx]"]
  node_paymenthooks["Payment actions"]
  node_paymentservice["Payment service<br/>[paymentService.ts]"]
  node_http["HTTP requests<br/>[http.ts]"]
  node_client["Authenticated API client<br/>[apiClient.ts]"]
end

node_admin(("Administrator"))
node_backend{{"ShagunDirect API"}}

node_admin -->|"opens"| node_login
node_login -->|"renders"| node_signinform
node_signinform -->|"submits"| node_signin
node_signin -->|"calls"| node_authservice
node_authservice -->|"posts"| node_http
node_otp -->|"verifies with"| node_authservice
node_admin -->|"opens"| node_dashboard
node_dashboard -->|"loads metrics"| node_dashboardhooks
node_dashboardhooks -->|"queries"| node_dashboardservice
node_dashboardservice -->|"requests via"| node_http
node_dashboard -->|"displays"| node_charts
node_admin -->|"manages"| node_users
node_users -->|"uses"| node_userhooks
node_userhooks -->|"calls"| node_userservice
node_userservice -->|"requests via"| node_http
node_admin -->|"manages"| node_couples
node_couples -->|"uses"| node_couplehooks
node_couplehooks -->|"calls"| node_coupleservice
node_coupleservice -->|"requests via"| node_http
node_admin -->|"manages"| node_roles
node_admin -->|"opens"| node_broadcasts
node_broadcasts -->|"manages"| node_announcements
node_broadcasts -->|"manages"| node_notifications
node_notificationhook -->|"calls"| node_notifications
node_admin -->|"manages"| node_payments
node_payments -->|"uses"| node_paymenthooks
node_paymenthooks -->|"calls"| node_paymentservice
node_paymentservice -->|"requests via"| node_client
node_http -->|"sends requests"| node_client
node_client -->|"calls"| node_backend

click node_login "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(auth)/login/page.tsx"
click node_signinform "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/auth/signin/SignIn.tsx"
click node_signin "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/auth/hooks/useSignIn.ts"
click node_authservice "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/auth/services/authService.ts"
click node_otp "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(auth)/verify-otp/page.tsx"
click node_guard "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/auth/AuthGuard.tsx"
click node_dashboard "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/dashboard/page.tsx"
click node_dashboardhooks "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/dashboard/hooks/useDashboardStats.ts"
click node_dashboardservice "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/dashboard/services/dashboardService.ts"
click node_charts "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/dashboard/CompositeChart.tsx"
click node_users "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/users/admin/page.tsx"
click node_userhooks "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/user/hooks/useAdminUsers.ts"
click node_userservice "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/user/services/adminUserService.ts"
click node_couples "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/users/couple/page.tsx"
click node_couplehooks "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/couple/hooks/useCoupleUsers.ts"
click node_coupleservice "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/couple/services/coupleUserService.ts"
click node_roles "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/roles/page.tsx"
click node_broadcasts "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/broadcasts/page.tsx"
click node_announcements "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/broadcasts/services/announcementService.ts"
click node_notifications "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/notifications/services/notificationListService.ts"
click node_notificationhook "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/notifications/hooks/useCreateNotification.ts"
click node_payments "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/payments/page.tsx"
click node_paymenthooks "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/payments/hooks/useUpdatePricing.ts"
click node_paymentservice "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/payments/services/paymentService.ts"
click node_http "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/services/http.ts"
click node_client "https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/services/apiClient.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_login,node_signinform,node_signin,node_authservice,node_otp,node_guard toneBlue
class node_dashboard,node_dashboardhooks,node_dashboardservice,node_charts toneAmber
class node_users,node_userhooks,node_userservice,node_couples,node_couplehooks,node_coupleservice,node_roles,node_backend toneMint
class node_broadcasts,node_announcements,node_notifications,node_notificationhook toneRose
class node_payments,node_paymenthooks,node_paymentservice,node_http,node_client,node_admin toneIndigo
```

## Components

### Admin access

- [Login route](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(auth)/login/page.tsx): `app/(auth)/login/page.tsx`
- [Sign-in form](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/auth/signin/SignIn.tsx): `app/features/auth/signin/SignIn.tsx`
- [Sign-in hook](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/auth/hooks/useSignIn.ts): `app/features/auth/hooks/useSignIn.ts`
- [Authentication service](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/auth/services/authService.ts): `app/features/auth/services/authService.ts`
- [OTP verification](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(auth)/verify-otp/page.tsx): `app/(auth)/verify-otp/page.tsx`
- [Admin access guard](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/auth/AuthGuard.tsx): `app/features/auth/AuthGuard.tsx`

### Dashboard insights

- [Dashboard page](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/dashboard/page.tsx): `app/(admin)/dashboard/page.tsx`
- [Dashboard queries](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/dashboard/hooks/useDashboardStats.ts): `app/features/dashboard/hooks/useDashboardStats.ts`
- [Dashboard service](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/dashboard/services/dashboardService.ts): `app/features/dashboard/services/dashboardService.ts`
- [Dashboard charts](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/dashboard/CompositeChart.tsx): `app/features/dashboard/CompositeChart.tsx`

### Account management

- [Admin users](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/users/admin/page.tsx): `app/(admin)/users/admin/page.tsx`
- [Admin user actions](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/user/hooks/useAdminUsers.ts): `app/features/user/hooks/useAdminUsers.ts`
- [Admin user service](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/user/services/adminUserService.ts): `app/features/user/services/adminUserService.ts`
- [Couple management](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/users/couple/page.tsx): `app/(admin)/users/couple/page.tsx`
- [Couple actions](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/couple/hooks/useCoupleUsers.ts): `app/features/couple/hooks/useCoupleUsers.ts`
- [Couple service](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/couple/services/coupleUserService.ts): `app/features/couple/services/coupleUserService.ts`
- [Role management](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/roles/page.tsx): `app/(admin)/roles/page.tsx`

### Broadcasts

- [Broadcast pages](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/broadcasts/page.tsx): `app/(admin)/broadcasts/page.tsx`
- [Announcement tools](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/broadcasts/services/announcementService.ts): `app/features/broadcasts/services/announcementService.ts`
- [Notification tools](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/notifications/services/notificationListService.ts): `app/features/notifications/services/notificationListService.ts`
- [Send notification](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/notifications/hooks/useCreateNotification.ts): `app/features/notifications/hooks/useCreateNotification.ts`

### Payments and API

- [Payments page](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/(admin)/payments/page.tsx): `app/(admin)/payments/page.tsx`
- [Payment actions](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/payments/hooks/useUpdatePricing.ts): `app/features/payments/hooks/useUpdatePricing.ts`
- [Payment service](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/features/payments/services/paymentService.ts): `app/features/payments/services/paymentService.ts`
- [HTTP requests](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/services/http.ts): `app/services/http.ts`
- [Authenticated API client](https://github.com/software-engineer-muhammad-shahzad/admin-panel-shagun/blob/main/app/services/apiClient.ts): `app/services/apiClient.ts`

### Other components

- **Administrator**
- **ShagunDirect API**

## Connections

- Administrator → Login route: opens
- Login route → Sign-in form: renders
- Sign-in form → Sign-in hook: submits
- Sign-in hook → Authentication service: calls
- Authentication service → HTTP requests: posts
- OTP verification → Authentication service: verifies with
- Administrator → Dashboard page: opens
- Dashboard page → Dashboard queries: loads metrics
- Dashboard queries → Dashboard service: queries
- Dashboard service → HTTP requests: requests via
- Dashboard page → Dashboard charts: displays
- Administrator → Admin users: manages
- Admin users → Admin user actions: uses
- Admin user actions → Admin user service: calls
- Admin user service → HTTP requests: requests via
- Administrator → Couple management: manages
- Couple management → Couple actions: uses
- Couple actions → Couple service: calls
- Couple service → HTTP requests: requests via
- Administrator → Role management: manages
- Administrator → Broadcast pages: opens
- Broadcast pages → Announcement tools: manages
- Broadcast pages → Notification tools: manages
- Send notification → Notification tools: calls
- Administrator → Payments page: manages
- Payments page → Payment actions: uses
- Payment actions → Payment service: calls
- Payment service → Authenticated API client: requests via
- HTTP requests → Authenticated API client: sends requests
- Authenticated API client → ShagunDirect API: calls
