# admnfdssebi-ux/hytg architecture

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

- Interactive diagram: https://gitdiagram.com/admnfdssebi-ux/hytg
- Repository: https://github.com/admnfdssebi-ux/hytg

## Overview

This is a school-management application covering academic administration, finance, HR/attendance, and student, teacher, and staff portals. Users enter through login, then use role-aware application views to manage records or access school services backed by Supabase. The sampled authentication provider loads profiles, roles, permissions, and staff status; sampled academic pages and forms also query Supabase directly. Major portal capabilities are represented from the file tree, but many pages and integrations were not sampled, so their internal calls are not asserted.

Main entry points: [`components/auth/auth-provider.tsx`](https://github.com/admnfdssebi-ux/hytg/blob/main/components/auth/auth-provider.tsx) (Auth provider), [`lib/supabase/client.ts`](https://github.com/admnfdssebi-ux/hytg/blob/main/lib/supabase/client.ts) (Supabase client), [`app/app/admin/grades/page.tsx`](https://github.com/admnfdssebi-ux/hytg/blob/main/app/app/admin/grades/page.tsx) (Academic administration), [`components/academic/assessment-form-dialog.tsx`](https://github.com/admnfdssebi-ux/hytg/blob/main/components/academic/assessment-form-dialog.tsx) (Academic forms)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and access"]
  node_login["Login<br/>[page.tsx]"]
  node_auth_ui["Login form<br/>[login-form.tsx]"]
  node_auth_state["Auth provider<br/>[auth-provider.tsx]"]
  node_access["Roles and permissions<br/>[permissions.ts]"]
  node_dashboard["Role dashboards<br/>[page.tsx]"]
end

subgraph group_academic["Academic operations"]
  node_admin_academic["Academic administration<br/>[page.tsx]"]
  node_academic_forms["Academic forms"]
  node_bulletins["Bulletin engine<br/>[bulletin-engine.ts]"]
  node_student_portal["Student services"]
end

subgraph group_finance["Finance operations"]
  node_finance_ui["Payments and expenses<br/>[page.tsx]"]
  node_payment_forms["Payment planning"]
end

subgraph group_people["People and attendance"]
  node_hr_portal["HR operations"]
  node_staff_portal["Staff self-service"]
  node_attendance["Attendance capture<br/>[page.tsx]"]
  node_attendance_api["Attendance API<br/>[route.ts]"]
end

subgraph group_platform["Application platform"]
  node_supabase_client["Supabase client<br/>[client.ts]"]
  node_data_model["Database types<br/>[database.ts]"]
  node_supabase[("Supabase backend")]
end

node_user(("School user"))

node_user -->|"opens"| node_login
node_login -->|"renders"| node_auth_ui
node_auth_state -->|"queries auth and records"| node_supabase_client
node_auth_state -->|"loads permissions"| node_access
node_auth_state -->|"reads profiles and roles"| node_supabase
node_dashboard -->|"uses session"| node_auth_state
node_admin_academic -->|"uses session"| node_auth_state
node_admin_academic -->|"renders assessment form"| node_academic_forms
node_academic_forms -->|"queries records"| node_supabase_client
node_academic_forms -->|"uses session"| node_auth_state
node_admin_academic -->|"queries grades"| node_supabase_client
node_supabase_client -->|"types client"| node_data_model
node_supabase_client -->|"connects to"| node_supabase
node_finance_ui -.->|"uses session"| node_auth_state
node_payment_forms -->|"queries records"| node_supabase_client
node_payment_forms -->|"uses session"| node_auth_state
node_hr_portal -->|"uses session"| node_auth_state
node_attendance -.->|"submits punches"| node_attendance_api

click node_login "https://github.com/admnfdssebi-ux/hytg/blob/main/app/auth/login/page.tsx"
click node_auth_ui "https://github.com/admnfdssebi-ux/hytg/blob/main/components/auth/login-form.tsx"
click node_auth_state "https://github.com/admnfdssebi-ux/hytg/blob/main/components/auth/auth-provider.tsx"
click node_access "https://github.com/admnfdssebi-ux/hytg/blob/main/lib/rbac/permissions.ts"
click node_dashboard "https://github.com/admnfdssebi-ux/hytg/blob/main/app/app/dashboard/page.tsx"
click node_admin_academic "https://github.com/admnfdssebi-ux/hytg/blob/main/app/app/admin/grades/page.tsx"
click node_academic_forms "https://github.com/admnfdssebi-ux/hytg/blob/main/components/academic/assessment-form-dialog.tsx"
click node_bulletins "https://github.com/admnfdssebi-ux/hytg/blob/main/lib/academic/bulletin-engine.ts"
click node_student_portal "https://github.com/admnfdssebi-ux/hytg/tree/main/app/app/student"
click node_finance_ui "https://github.com/admnfdssebi-ux/hytg/blob/main/app/app/admin/payments/page.tsx"
click node_payment_forms "https://github.com/admnfdssebi-ux/hytg/blob/main/components/finance/payment-plan-form-dialog.tsx"
click node_hr_portal "https://github.com/admnfdssebi-ux/hytg/tree/main/app/app/hr"
click node_staff_portal "https://github.com/admnfdssebi-ux/hytg/tree/main/app/app/hr/me"
click node_attendance "https://github.com/admnfdssebi-ux/hytg/blob/main/app/rh/borne-pointage/%5BterminalId%5D/page.tsx"
click node_attendance_api "https://github.com/admnfdssebi-ux/hytg/blob/main/app/api/attendance-clock/route.ts"
click node_supabase_client "https://github.com/admnfdssebi-ux/hytg/blob/main/lib/supabase/client.ts"
click node_data_model "https://github.com/admnfdssebi-ux/hytg/blob/main/lib/types/database.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_auth_ui,node_auth_state,node_access,node_dashboard,node_user toneBlue
class node_admin_academic,node_academic_forms,node_bulletins,node_student_portal toneAmber
class node_finance_ui,node_payment_forms toneMint
class node_hr_portal,node_staff_portal,node_attendance,node_attendance_api toneRose
class node_supabase_client,node_data_model,node_supabase toneIndigo
```

## Components

### Identity and access

- [Login](https://github.com/admnfdssebi-ux/hytg/blob/main/app/auth/login/page.tsx): `app/auth/login/page.tsx`
- [Login form](https://github.com/admnfdssebi-ux/hytg/blob/main/components/auth/login-form.tsx): `components/auth/login-form.tsx`
- [Auth provider](https://github.com/admnfdssebi-ux/hytg/blob/main/components/auth/auth-provider.tsx): `components/auth/auth-provider.tsx`
- [Roles and permissions](https://github.com/admnfdssebi-ux/hytg/blob/main/lib/rbac/permissions.ts): `lib/rbac/permissions.ts`
- [Role dashboards](https://github.com/admnfdssebi-ux/hytg/blob/main/app/app/dashboard/page.tsx): `app/app/dashboard/page.tsx`

### Academic operations

- [Academic administration](https://github.com/admnfdssebi-ux/hytg/blob/main/app/app/admin/grades/page.tsx): `app/app/admin/grades/page.tsx`
- [Academic forms](https://github.com/admnfdssebi-ux/hytg/blob/main/components/academic/assessment-form-dialog.tsx): `components/academic/assessment-form-dialog.tsx`
- [Bulletin engine](https://github.com/admnfdssebi-ux/hytg/blob/main/lib/academic/bulletin-engine.ts): `lib/academic/bulletin-engine.ts`
- [Student services](https://github.com/admnfdssebi-ux/hytg/tree/main/app/app/student): `app/app/student`

### Finance operations

- [Payments and expenses](https://github.com/admnfdssebi-ux/hytg/blob/main/app/app/admin/payments/page.tsx): `app/app/admin/payments/page.tsx`
- [Payment planning](https://github.com/admnfdssebi-ux/hytg/blob/main/components/finance/payment-plan-form-dialog.tsx): `components/finance/payment-plan-form-dialog.tsx`

### People and attendance

- [HR operations](https://github.com/admnfdssebi-ux/hytg/tree/main/app/app/hr): `app/app/hr`
- [Staff self-service](https://github.com/admnfdssebi-ux/hytg/tree/main/app/app/hr/me): `app/app/hr/me`
- [Attendance capture](https://github.com/admnfdssebi-ux/hytg/blob/main/app/rh/borne-pointage/%5BterminalId%5D/page.tsx): `app/rh/borne-pointage/[terminalId]/page.tsx`
- [Attendance API](https://github.com/admnfdssebi-ux/hytg/blob/main/app/api/attendance-clock/route.ts): `app/api/attendance-clock/route.ts`

### Application platform

- [Supabase client](https://github.com/admnfdssebi-ux/hytg/blob/main/lib/supabase/client.ts): `lib/supabase/client.ts`
- [Database types](https://github.com/admnfdssebi-ux/hytg/blob/main/lib/types/database.ts): `lib/types/database.ts`
- **Supabase backend**

### Other components

- **School user**

## Connections

- School user → Login: opens (evidence: `app/auth/login/page.tsx`)
- Login → Login form: renders (evidence: `app/auth/login/page.tsx`)
- Auth provider → Supabase client: queries auth and records (evidence: `components/auth/auth-provider.tsx`)
- Auth provider → Roles and permissions: loads permissions (evidence: `components/auth/auth-provider.tsx`)
- Auth provider → Supabase backend: reads profiles and roles (evidence: `components/auth/auth-provider.tsx`)
- Role dashboards → Auth provider: uses session (evidence: `app/app/dashboard/page.tsx`)
- Academic administration → Auth provider: uses session (evidence: `app/app/admin/grades/page.tsx`)
- Academic administration → Academic forms: renders assessment form (evidence: `app/app/admin/grades/page.tsx`)
- Academic forms → Supabase client: queries records (evidence: `components/academic/assessment-form-dialog.tsx`)
- Academic forms → Auth provider: uses session (evidence: `components/academic/assessment-form-dialog.tsx`)
- Academic administration → Supabase client: queries grades (evidence: `app/app/admin/grades/page.tsx`)
- Supabase client → Database types: types client (evidence: `lib/supabase/client.ts`)
- Supabase client → Supabase backend: connects to (evidence: `lib/supabase/client.ts`)
- Payments and expenses → Auth provider: uses session
- Payment planning → Supabase client: queries records (evidence: `components/finance/payment-plan-form-dialog.tsx`)
- Payment planning → Auth provider: uses session (evidence: `components/finance/payment-plan-form-dialog.tsx`)
- HR operations → Auth provider: uses session (evidence: `app/app/hr/staff/page.tsx`)
- Attendance capture → Attendance API: submits punches
