# singhranjans1234-clouds/employee-mnagement-system-collection architecture

> Architecture diagram of the GitHub repository singhranjans1234-clouds/employee-mnagement-system-collection, 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/singhranjans1234-clouds/employee-mnagement-system-collection
- Repository: https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection

## Overview

This is a console-based Employee Management System. A user signs in, navigates the dashboard, and uses employee menus to register, search, view, update, delete, or list records; reports summarize employee status, department, type, and salary. EMSApp is the console orchestrator, EmployeeService owns in-memory indexed records and reporting calculations, and the Employee hierarchy supplies employee types and daily-work behavior. The excerpts establish the main calls and inheritance; report and menu details are partly unsampled, so their links rely on the EMSApp excerpt and source index.

Main entry points: [`main/EMSApp.java`](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/main/EMSApp.java) (Employee menu), [`service/EmployeeService.java`](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/service/EmployeeService.java) (Employee service), [`model/Employee.java`](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/Employee.java) (Employee base), [`model/Developer.java`](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/Developer.java) (Developer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["Console interaction"]
  node_app["EMS console<br/>[EMSApp.java]"]
  node_employee_menu["Employee menu<br/>[EMSApp.java]"]
  node_reports["Reports<br/>[EMSApp.java]"]
end

subgraph group_operations["Employee operations"]
  node_service["Employee service"]
  node_records[("Indexed records")]
  node_duplicate_error["Duplicate exception"]
  node_missing_error["Not-found exception"]
end

subgraph group_domain["Employee domain"]
  node_employee["Employee base<br/>[Employee.java]"]
  node_developer["Developer<br/>[Developer.java]"]
  node_tester["Tester<br/>[Tester.java]"]
  node_hr_exec["HR executive<br/>[HRExecutive.java]"]
  node_manager["Manager<br/>[Manager.java]"]
end

subgraph group_reference["Reference data"]
  node_master_data["Master data<br/>[MasterData.java]"]
end

node_user(("HR user"))

node_user -->|"uses"| node_app
node_app -->|"routes to"| node_employee_menu
node_app -->|"routes to"| node_reports
node_employee_menu -->|"manages records"| node_service
node_reports -->|"requests summaries"| node_service
node_employee_menu -->|"loads choices"| node_master_data
node_employee_menu -->|"creates type"| node_developer
node_employee_menu -->|"creates type"| node_tester
node_employee_menu -->|"creates type"| node_hr_exec
node_employee_menu -->|"creates type"| node_manager
node_service -->|"indexes records"| node_records
node_service -->|"throws"| node_duplicate_error
node_service -->|"throws"| node_missing_error
node_developer -->|"extends"| node_employee
node_tester -->|"extends"| node_employee
node_hr_exec -->|"extends"| node_employee
node_manager -->|"extends"| node_employee

click node_app "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/main/EMSApp.java"
click node_employee_menu "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/main/EMSApp.java"
click node_reports "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/main/EMSApp.java"
click node_master_data "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/util/MasterData.java"
click node_service "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/service/EmployeeService.java"
click node_records "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/service/EmployeeService.java"
click node_duplicate_error "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/exception/DuplicateEmployeeException.java"
click node_missing_error "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/exception/EmployeeNotFoundException.java"
click node_employee "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/Employee.java"
click node_developer "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/Developer.java"
click node_tester "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/Tester.java"
click node_hr_exec "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/HRExecutive.java"
click node_manager "https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/Manager.java"

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_app,node_employee_menu,node_reports,node_user toneBlue
class node_service,node_records,node_duplicate_error,node_missing_error toneAmber
class node_employee,node_developer,node_tester,node_hr_exec,node_manager toneMint
class node_master_data toneRose
```

## Components

### Console interaction

- [EMS console](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/main/EMSApp.java): `main/EMSApp.java`
- [Employee menu](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/main/EMSApp.java): `main/EMSApp.java`
- [Reports](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/main/EMSApp.java): `main/EMSApp.java`

### Employee operations

- [Employee service](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/service/EmployeeService.java): `service/EmployeeService.java`
- [Indexed records](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/service/EmployeeService.java): `service/EmployeeService.java`
- [Duplicate exception](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/exception/DuplicateEmployeeException.java): `exception/DuplicateEmployeeException.java`
- [Not-found exception](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/exception/EmployeeNotFoundException.java): `exception/EmployeeNotFoundException.java`

### Employee domain

- [Employee base](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/Employee.java): `model/Employee.java`
- [Developer](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/Developer.java): `model/Developer.java`
- [Tester](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/Tester.java): `model/Tester.java`
- [HR executive](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/HRExecutive.java): `model/HRExecutive.java`
- [Manager](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/model/Manager.java): `model/Manager.java`

### Reference data

- [Master data](https://github.com/singhranjans1234-clouds/employee-mnagement-system-collection/blob/main/util/MasterData.java): `util/MasterData.java`

### Other components

- **HR user**

## Connections

- HR user → EMS console: uses (evidence: `main/EMSApp.java`)
- EMS console → Employee menu: routes to (evidence: `main/EMSApp.java`)
- EMS console → Reports: routes to (evidence: `main/EMSApp.java`)
- Employee menu → Employee service: manages records (evidence: `main/EMSApp.java`)
- Reports → Employee service: requests summaries (evidence: `main/EMSApp.java`)
- Employee menu → Master data: loads choices (evidence: `main/EMSApp.java`)
- Employee menu → Developer: creates type (evidence: `main/EMSApp.java`)
- Employee menu → Tester: creates type (evidence: `main/EMSApp.java`)
- Employee menu → HR executive: creates type (evidence: `main/EMSApp.java`)
- Employee menu → Manager: creates type (evidence: `main/EMSApp.java`)
- Employee service → Indexed records: indexes records (evidence: `service/EmployeeService.java`)
- Employee service → Duplicate exception: throws (evidence: `service/EmployeeService.java`)
- Employee service → Not-found exception: throws (evidence: `service/EmployeeService.java`)
- Developer → Employee base: extends (evidence: `model/Developer.java`)
- Tester → Employee base: extends (evidence: `model/Tester.java`)
- HR executive → Employee base: extends (evidence: `model/HRExecutive.java`)
- Manager → Employee base: extends (evidence: `model/Manager.java`)
