# tebogomoremi/employeeleavemanagement architecture

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

- Interactive diagram: https://gitdiagram.com/tebogomoremi/employeeleavemanagement
- Repository: https://github.com/tebogomoremi/employeeleavemanagement

## Overview

This is an ASP.NET Core employee leave-management application scaffold. Its current runtime workflow is a browser request routed through the app to the home controller and rendered as a view; users can also reach the scaffolded Identity pages. Leave types and allocations are modeled in the data layer, but the sampled tree shows no leave-request or allocation workflow. The database and authentication wiring are visible in Program.cs; detailed page and persistence behavior was not sampled.

Main entry points: [`employeeLeaveManagement/Program.cs`](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Program.cs) (App startup), [`employeeLeaveManagement/Controllers/HomeController.cs`](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Controllers/HomeController.cs) (Home controller), [`employeeLeaveManagement/Data/ApplicationDbContext.cs`](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/ApplicationDbContext.cs) (Application context), [`employeeLeaveManagement/Data/LeaveType.cs`](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/LeaveType.cs) (Leave type)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_startup["App startup<br/>[Program.cs]"]
  node_home["Home controller<br/>[HomeController.cs]"]
  node_index["Home view<br/>[Index.cshtml]"]
  node_privacy["Privacy view<br/>[Privacy.cshtml]"]
  node_error["Error view<br/>[Error.cshtml]"]
  node_error_model["Error model<br/>[ErrorViewModel.cs]"]
end

subgraph group_identity["Identity"]
  node_identity_pages["Identity pages"]
  node_employee["Employee identity<br/>[Employee.cs]"]
end

subgraph group_leave["Leave data"]
  node_context["Application context"]
  node_leave_type["Leave type<br/>[LeaveType.cs]"]
  node_allocation["Leave allocation<br/>[LeaveAllocation.cs]"]
  node_base_entity["Base entity<br/>[BaseEntity.cs]"]
end

node_user(("Browser user"))
node_sql[("SQL Server")]

node_user -->|"HTTP requests"| node_startup
node_startup -->|"routes to"| node_home
node_home -->|"renders"| node_index
node_home -->|"renders"| node_privacy
node_home -->|"creates"| node_error_model
node_home -->|"renders"| node_error
node_startup -->|"maps pages"| node_identity_pages
node_startup -->|"configures identity"| node_employee
node_startup -->|"registers context"| node_context
node_startup -->|"configures provider"| node_sql
node_context -->|"persists through"| node_sql
node_context -->|"exposes set"| node_leave_type
node_context -->|"exposes set"| node_allocation
node_context -->|"identity store"| node_employee
node_leave_type -->|"inherits"| node_base_entity
node_allocation -->|"inherits"| node_base_entity

click node_startup "https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Program.cs"
click node_home "https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Controllers/HomeController.cs"
click node_index "https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Views/Home/Index.cshtml"
click node_privacy "https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Views/Home/Privacy.cshtml"
click node_error "https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Views/Shared/Error.cshtml"
click node_error_model "https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Models/ErrorViewModel.cs"
click node_identity_pages "https://github.com/tebogomoremi/employeeleavemanagement/tree/master/employeeLeaveManagement/Areas/Identity/Pages"
click node_employee "https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/Employee.cs"
click node_context "https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/ApplicationDbContext.cs"
click node_leave_type "https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/LeaveType.cs"
click node_allocation "https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/LeaveAllocation.cs"
click node_base_entity "https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/BaseEntity.cs"

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_startup,node_home,node_index,node_privacy,node_error,node_error_model,node_user toneBlue
class node_identity_pages,node_employee,node_sql toneAmber
class node_context,node_leave_type,node_allocation,node_base_entity toneMint
```

## Components

### Web application

- [App startup](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Program.cs): `employeeLeaveManagement/Program.cs`
- [Home controller](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Controllers/HomeController.cs): `employeeLeaveManagement/Controllers/HomeController.cs`
- [Home view](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Views/Home/Index.cshtml): `employeeLeaveManagement/Views/Home/Index.cshtml`
- [Privacy view](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Views/Home/Privacy.cshtml): `employeeLeaveManagement/Views/Home/Privacy.cshtml`
- [Error view](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Views/Shared/Error.cshtml): `employeeLeaveManagement/Views/Shared/Error.cshtml`
- [Error model](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Models/ErrorViewModel.cs): `employeeLeaveManagement/Models/ErrorViewModel.cs`

### Identity

- [Identity pages](https://github.com/tebogomoremi/employeeleavemanagement/tree/master/employeeLeaveManagement/Areas/Identity/Pages): `employeeLeaveManagement/Areas/Identity/Pages`
- [Employee identity](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/Employee.cs): `employeeLeaveManagement/Data/Employee.cs`

### Leave data

- [Application context](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/ApplicationDbContext.cs): `employeeLeaveManagement/Data/ApplicationDbContext.cs`
- [Leave type](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/LeaveType.cs): `employeeLeaveManagement/Data/LeaveType.cs`
- [Leave allocation](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/LeaveAllocation.cs): `employeeLeaveManagement/Data/LeaveAllocation.cs`
- [Base entity](https://github.com/tebogomoremi/employeeleavemanagement/blob/master/employeeLeaveManagement/Data/BaseEntity.cs): `employeeLeaveManagement/Data/BaseEntity.cs`

### Other components

- **Browser user**
- **SQL Server**

## Connections

- Browser user → App startup: HTTP requests
- App startup → Home controller: routes to
- Home controller → Home view: renders
- Home controller → Privacy view: renders
- Home controller → Error model: creates
- Home controller → Error view: renders
- App startup → Identity pages: maps pages
- App startup → Employee identity: configures identity
- App startup → Application context: registers context
- App startup → SQL Server: configures provider
- Application context → SQL Server: persists through
- Application context → Leave type: exposes set
- Application context → Leave allocation: exposes set
- Application context → Employee identity: identity store
- Leave type → Base entity: inherits
- Leave allocation → Base entity: inherits
