# kramitsingh03/leaveapplication architecture

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

- Interactive diagram: https://gitdiagram.com/kramitsingh03/leaveapplication
- Repository: https://github.com/kramitsingh03/leaveapplication

## Overview

This is a PHP/MySQL leave-management application for an academic institution. Users log in and are routed by role to faculty, HOD, dean, or administrator pages. Faculty submit leave requests; department and dean interfaces support hierarchical review, while administrators maintain employees, accounts, and leave-related master data. The graph preserves these distinct product areas and the shared database. Detailed workflow wiring is based partly on README capabilities and filenames; sampled excerpts confirm login/database access and some page links, but not every handler’s implementation.

Main entry points: [`index.php`](https://github.com/kramitsingh03/leaveapplication/blob/main/index.php) (Role login), [`Dashboard.php`](https://github.com/kramitsingh03/leaveapplication/blob/main/Dashboard.php) (Admin dashboard), [`faculty-dashboard.php`](https://github.com/kramitsingh03/leaveapplication/blob/main/faculty-dashboard.php) (Faculty dashboard), [`hod-dashboard.php`](https://github.com/kramitsingh03/leaveapplication/blob/main/hod-dashboard.php) (HOD dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and dashboards"]
  node_login["Role login<br/>[index.php]"]
  node_admin_dash["Admin dashboard<br/>[Dashboard.php]"]
  node_faculty_dash["Faculty dashboard"]
  node_hod_dash["HOD dashboard<br/>[hod-dashboard.php]"]
  node_dean_dash["Dean dashboard<br/>[dean-dashboard.php]"]
end

subgraph group_leave["Leave workflow"]
  node_apply["Submit leave"]
  node_faculty_save["Save application"]
  node_faculty_history["Leave history"]
  node_hod_review["Department review"]
  node_hod_save["Record HOD action"]
  node_dean_review["Dean review"]
  node_leave_records["Leave records"]
end

subgraph group_admin["Administration"]
  node_leave_types["Leave types<br/>[new-leave-type.php]"]
  node_departments["Departments<br/>[new-department.php]"]
  node_designations["Designations"]
  node_employees["Faculty records<br/>[new-faculty.php]"]
  node_accounts["System accounts<br/>[new-admin.php]"]
end

subgraph group_data["Shared data"]
  node_config["Database connection<br/>[config.php]"]
  node_db[("MySQL data")]
end

node_user(("Institution users"))

node_user -->|"signs in"| node_login
node_login -->|"loads connection"| node_config
node_login -->|"checks credentials"| node_db
node_login -->|"routes admin"| node_admin_dash
node_login -->|"routes faculty"| node_faculty_dash
node_login -->|"routes HOD"| node_hod_dash
node_login -->|"routes dean"| node_dean_dash
node_faculty_dash -->|"opens form"| node_apply
node_apply -->|"submits"| node_faculty_save
node_faculty_save -->|"stores request"| node_db
node_faculty_dash -->|"opens history"| node_faculty_history
node_faculty_history -->|"reads requests"| node_db
node_hod_dash -->|"opens review"| node_hod_review
node_hod_review -->|"records decision"| node_hod_save
node_hod_save -->|"updates request"| node_db
node_dean_dash -->|"opens review"| node_dean_review
node_dean_review -->|"reads requests"| node_db
node_admin_dash -->|"opens records"| node_leave_records
node_leave_records -->|"reads requests"| node_db
node_admin_dash -->|"manages faculty"| node_employees
node_admin_dash -->|"manages accounts"| node_accounts
node_admin_dash -->|"manages departments"| node_departments
node_admin_dash -->|"manages roles"| node_designations
node_admin_dash -->|"manages leave types"| node_leave_types
node_employees -->|"maintains records"| node_db
node_accounts -->|"maintains accounts"| node_db
node_departments -->|"maintains departments"| node_db
node_designations -->|"maintains designations"| node_db
node_leave_types -->|"maintains types"| node_db

click node_login "https://github.com/kramitsingh03/leaveapplication/blob/main/index.php"
click node_admin_dash "https://github.com/kramitsingh03/leaveapplication/blob/main/Dashboard.php"
click node_faculty_dash "https://github.com/kramitsingh03/leaveapplication/blob/main/faculty-dashboard.php"
click node_hod_dash "https://github.com/kramitsingh03/leaveapplication/blob/main/hod-dashboard.php"
click node_dean_dash "https://github.com/kramitsingh03/leaveapplication/blob/main/dean-dashboard.php"
click node_apply "https://github.com/kramitsingh03/leaveapplication/blob/main/faculty-apply-leave.php"
click node_faculty_save "https://github.com/kramitsingh03/leaveapplication/blob/main/save-leave-application.php"
click node_faculty_history "https://github.com/kramitsingh03/leaveapplication/blob/main/faculty-leave-application.php"
click node_hod_review "https://github.com/kramitsingh03/leaveapplication/blob/main/hod-manage-leave.php"
click node_hod_save "https://github.com/kramitsingh03/leaveapplication/blob/main/save-hod-leave-application.php"
click node_dean_review "https://github.com/kramitsingh03/leaveapplication/blob/main/display-dean-leave-application.php"
click node_leave_records "https://github.com/kramitsingh03/leaveapplication/blob/main/display-leave-application.php"
click node_leave_types "https://github.com/kramitsingh03/leaveapplication/blob/main/new-leave-type.php"
click node_departments "https://github.com/kramitsingh03/leaveapplication/blob/main/new-department.php"
click node_designations "https://github.com/kramitsingh03/leaveapplication/blob/main/new1-designation.php"
click node_employees "https://github.com/kramitsingh03/leaveapplication/blob/main/new-faculty.php"
click node_accounts "https://github.com/kramitsingh03/leaveapplication/blob/main/new-admin.php"
click node_config "https://github.com/kramitsingh03/leaveapplication/blob/main/includes/config.php"

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_admin_dash,node_faculty_dash,node_hod_dash,node_dean_dash,node_user toneBlue
class node_apply,node_faculty_save,node_faculty_history,node_hod_review,node_hod_save,node_dean_review,node_leave_records toneAmber
class node_leave_types,node_departments,node_designations,node_employees,node_accounts toneMint
class node_config,node_db toneRose
```

## Components

### Access and dashboards

- [Role login](https://github.com/kramitsingh03/leaveapplication/blob/main/index.php): `index.php`
- [Admin dashboard](https://github.com/kramitsingh03/leaveapplication/blob/main/Dashboard.php): `Dashboard.php`
- [Faculty dashboard](https://github.com/kramitsingh03/leaveapplication/blob/main/faculty-dashboard.php): `faculty-dashboard.php`
- [HOD dashboard](https://github.com/kramitsingh03/leaveapplication/blob/main/hod-dashboard.php): `hod-dashboard.php`
- [Dean dashboard](https://github.com/kramitsingh03/leaveapplication/blob/main/dean-dashboard.php): `dean-dashboard.php`

### Leave workflow

- [Submit leave](https://github.com/kramitsingh03/leaveapplication/blob/main/faculty-apply-leave.php): `faculty-apply-leave.php`
- [Save application](https://github.com/kramitsingh03/leaveapplication/blob/main/save-leave-application.php): `save-leave-application.php`
- [Leave history](https://github.com/kramitsingh03/leaveapplication/blob/main/faculty-leave-application.php): `faculty-leave-application.php`
- [Department review](https://github.com/kramitsingh03/leaveapplication/blob/main/hod-manage-leave.php): `hod-manage-leave.php`
- [Record HOD action](https://github.com/kramitsingh03/leaveapplication/blob/main/save-hod-leave-application.php): `save-hod-leave-application.php`
- [Dean review](https://github.com/kramitsingh03/leaveapplication/blob/main/display-dean-leave-application.php): `display-dean-leave-application.php`
- [Leave records](https://github.com/kramitsingh03/leaveapplication/blob/main/display-leave-application.php): `display-leave-application.php`

### Administration

- [Leave types](https://github.com/kramitsingh03/leaveapplication/blob/main/new-leave-type.php): `new-leave-type.php`
- [Departments](https://github.com/kramitsingh03/leaveapplication/blob/main/new-department.php): `new-department.php`
- [Designations](https://github.com/kramitsingh03/leaveapplication/blob/main/new1-designation.php): `new1-designation.php`
- [Faculty records](https://github.com/kramitsingh03/leaveapplication/blob/main/new-faculty.php): `new-faculty.php`
- [System accounts](https://github.com/kramitsingh03/leaveapplication/blob/main/new-admin.php): `new-admin.php`

### Shared data

- [Database connection](https://github.com/kramitsingh03/leaveapplication/blob/main/includes/config.php): `includes/config.php`
- **MySQL data**

### Other components

- **Institution users**

## Connections

- Institution users → Role login: signs in
- Role login → Database connection: loads connection
- Role login → MySQL data: checks credentials
- Role login → Admin dashboard: routes admin
- Role login → Faculty dashboard: routes faculty
- Role login → HOD dashboard: routes HOD
- Role login → Dean dashboard: routes dean
- Faculty dashboard → Submit leave: opens form
- Submit leave → Save application: submits
- Save application → MySQL data: stores request
- Faculty dashboard → Leave history: opens history
- Leave history → MySQL data: reads requests
- HOD dashboard → Department review: opens review
- Department review → Record HOD action: records decision
- Record HOD action → MySQL data: updates request
- Dean dashboard → Dean review: opens review
- Dean review → MySQL data: reads requests
- Admin dashboard → Leave records: opens records
- Leave records → MySQL data: reads requests
- Admin dashboard → Faculty records: manages faculty
- Admin dashboard → System accounts: manages accounts
- Admin dashboard → Departments: manages departments
- Admin dashboard → Designations: manages roles
- Admin dashboard → Leave types: manages leave types
- Faculty records → MySQL data: maintains records
- System accounts → MySQL data: maintains accounts
- Departments → MySQL data: maintains departments
- Designations → MySQL data: maintains designations
- Leave types → MySQL data: maintains types
