# shhovon/step-project architecture

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

- Interactive diagram: https://gitdiagram.com/shhovon/step-project
- Repository: https://github.com/shhovon/step-project

## Overview

STEP Portal is an employee performance and appraisal web application. Employees work with KRA/KPI goals and outcomes; supervisors, department heads, HR, and senior reviewers access employee data and participate in marks, status, and approval workflows. The sampled controllers show database-backed goal entry, appraisal retrieval, authorization checks, training needs, and review updates. The README is empty, and excerpts are partial and contain merge-conflict artifacts, so the graph limits relationships to visible controller/database operations and indexed references.

Main entry points: [`STEP_PORTAL/Models/StepModel.Context.cs`](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/StepModel.Context.cs) (Entity context), [`STEP_PORTAL/Controllers/DataController.cs`](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/DataController.cs) (Shared data actions), [`STEP_PORTAL/Controllers/DeptHeadController.cs`](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/DeptHeadController.cs) (Department review), [`STEP_PORTAL/Controllers/ReportSuperController.cs`](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/ReportSuperController.cs) (Senior review)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_employee["Employee appraisal"]
  node_home["Home and goals<br/>[HomeController.cs]"]
  node_employee_portal["Employee services"]
end

subgraph group_reviews["Review workflow"]
  node_dept_head["Department review"]
  node_hr["HR review<br/>[HRController.cs]"]
  node_senior_review["Senior review"]
end

subgraph group_data["Data and domain"]
  node_data_api["Shared data actions<br/>[DataController.cs]"]
  node_outcomes["KRA KPI outcomes"]
  node_goal_view["Goal view model<br/>[KraKpiViewModel.cs]"]
  node_appraisal_view["Appraisal view data"]
  node_employee_info["Employee information<br/>[EmployeeInfo.cs]"]
  node_status_result["Action status<br/>[StatusResult.cs]"]
  node_entity_context["Entity context"]
  node_appraisal_db[("Appraisal database")]
end

subgraph group_access["Access control"]
  node_authorize["Session authorization<br/>[CustomAuthorize.cs]"]
end

node_employee_actor(("Employee"))
node_reviewer_actor(("Reviewers"))

node_employee_actor -.->|"uses"| node_home
node_employee_actor -.->|"uses"| node_employee_portal
node_reviewer_actor -.->|"reviews"| node_dept_head
node_reviewer_actor -.->|"reviews"| node_hr
node_reviewer_actor -.->|"reviews"| node_senior_review
node_home -->|"queries and saves"| node_entity_context
node_employee_portal -->|"queries and saves"| node_entity_context
node_data_api -->|"runs queries"| node_entity_context
node_dept_head -->|"queries"| node_entity_context
node_hr -->|"runs queries"| node_entity_context
node_senior_review -->|"runs queries"| node_entity_context
node_entity_context -.->|"reads and writes"| node_appraisal_db
node_data_api -->|"maps results"| node_outcomes
node_data_api -->|"maps results"| node_employee_info
node_data_api -->|"maps results"| node_status_result
node_dept_head -->|"calls"| node_data_api
node_senior_review -->|"calls"| node_data_api
node_home -->|"binds goals"| node_goal_view
node_employee_portal -->|"loads outcomes"| node_outcomes
node_dept_head -->|"builds review view"| node_appraisal_view
node_hr -->|"uses review data"| node_appraisal_view
node_senior_review -->|"builds review view"| node_appraisal_view
node_authorize -->|"redirects to login"| node_home

click node_home "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/HomeController.cs"
click node_employee_portal "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/EmployeeController.cs"
click node_dept_head "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/DeptHeadController.cs"
click node_hr "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/HRController.cs"
click node_senior_review "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/ReportSuperController.cs"
click node_data_api "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/DataController.cs"
click node_outcomes "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/KraKpiOutcomeModel.cs"
click node_goal_view "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/KraKpiViewModel.cs"
click node_appraisal_view "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/DisplayAllDataViewModel.cs"
click node_employee_info "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/EmployeeInfo.cs"
click node_status_result "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/StatusResult.cs"
click node_entity_context "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/StepModel.Context.cs"
click node_authorize "https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/CustomAuthorize.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_home,node_employee_portal,node_reviewer_actor toneBlue
class node_dept_head,node_hr,node_senior_review toneAmber
class node_data_api,node_outcomes,node_goal_view,node_appraisal_view,node_employee_info,node_status_result,node_entity_context,node_appraisal_db toneMint
class node_authorize toneRose
class node_employee_actor toneIndigo
```

## Components

### Employee appraisal

- [Home and goals](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/HomeController.cs): `STEP_PORTAL/Controllers/HomeController.cs`
- [Employee services](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/EmployeeController.cs): `STEP_PORTAL/Controllers/EmployeeController.cs`

### Review workflow

- [Department review](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/DeptHeadController.cs): `STEP_PORTAL/Controllers/DeptHeadController.cs`
- [HR review](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/HRController.cs): `STEP_PORTAL/Controllers/HRController.cs`
- [Senior review](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/ReportSuperController.cs): `STEP_PORTAL/Controllers/ReportSuperController.cs`

### Data and domain

- [Shared data actions](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Controllers/DataController.cs): `STEP_PORTAL/Controllers/DataController.cs`
- [KRA KPI outcomes](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/KraKpiOutcomeModel.cs): `STEP_PORTAL/Models/KraKpiOutcomeModel.cs`
- [Goal view model](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/KraKpiViewModel.cs): `STEP_PORTAL/Models/KraKpiViewModel.cs`
- [Appraisal view data](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/DisplayAllDataViewModel.cs): `STEP_PORTAL/Models/DisplayAllDataViewModel.cs`
- [Employee information](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/EmployeeInfo.cs): `STEP_PORTAL/Models/EmployeeInfo.cs`
- [Action status](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/StatusResult.cs): `STEP_PORTAL/Models/StatusResult.cs`
- [Entity context](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/StepModel.Context.cs): `STEP_PORTAL/Models/StepModel.Context.cs`
- **Appraisal database**

### Access control

- [Session authorization](https://github.com/shhovon/step-project/blob/main/STEP_PORTAL/Models/CustomAuthorize.cs): `STEP_PORTAL/Models/CustomAuthorize.cs`

### Other components

- **Employee**
- **Reviewers**

## Connections

- Employee → Home and goals: uses
- Employee → Employee services: uses
- Reviewers → Department review: reviews
- Reviewers → HR review: reviews
- Reviewers → Senior review: reviews
- Home and goals → Entity context: queries and saves (evidence: `STEP_PORTAL/Controllers/HomeController.cs`)
- Employee services → Entity context: queries and saves (evidence: `STEP_PORTAL/Controllers/EmployeeController.cs`)
- Shared data actions → Entity context: runs queries (evidence: `STEP_PORTAL/Controllers/DataController.cs`)
- Department review → Entity context: queries (evidence: `STEP_PORTAL/Controllers/DeptHeadController.cs`)
- HR review → Entity context: runs queries (evidence: `STEP_PORTAL/Controllers/HRController.cs`)
- Senior review → Entity context: runs queries (evidence: `STEP_PORTAL/Controllers/ReportSuperController.cs`)
- Entity context → Appraisal database: reads and writes
- Shared data actions → KRA KPI outcomes: maps results (evidence: `STEP_PORTAL/Controllers/DataController.cs`)
- Shared data actions → Employee information: maps results (evidence: `STEP_PORTAL/Controllers/DataController.cs`)
- Shared data actions → Action status: maps results (evidence: `STEP_PORTAL/Controllers/DataController.cs`)
- Department review → Shared data actions: calls (evidence: `STEP_PORTAL/Controllers/DeptHeadController.cs`)
- Senior review → Shared data actions: calls (evidence: `STEP_PORTAL/Controllers/ReportSuperController.cs`)
- Home and goals → Goal view model: binds goals (evidence: `STEP_PORTAL/Controllers/HomeController.cs`)
- Employee services → KRA KPI outcomes: loads outcomes (evidence: `STEP_PORTAL/Controllers/EmployeeController.cs`)
- Department review → Appraisal view data: builds review view (evidence: `STEP_PORTAL/Controllers/DeptHeadController.cs`)
- HR review → Appraisal view data: uses review data (evidence: `STEP_PORTAL/Controllers/HRController.cs`)
- Senior review → Appraisal view data: builds review view (evidence: `STEP_PORTAL/Controllers/ReportSuperController.cs`)
- Session authorization → Home and goals: redirects to login (evidence: `STEP_PORTAL/Models/CustomAuthorize.cs`)
