# nkaka23dev/employee-microservices architecture

> Architecture diagram of the GitHub repository nkaka23dev/employee-microservices, 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/nkaka23dev/employee-microservices
- Repository: https://github.com/nkaka23dev/employee-microservices

## Overview

Employee Mgts is a .NET employee-management microservices system. Its main workflow exposes employee operations through the REST API, delegates employee requests to the application service, and returns API responses; authentication adds registration, login, token refresh and revocation. Benefits are also exposed through a SOAP service. Separate payroll and time-tracking services support payroll creation and a synchronous time-tracking notification. The tree and excerpts support these main boundaries, but do not establish RabbitMQ usage or detailed gateway routes, so those connections are not shown.

Main entry points: [`TheEmployeeAPI/Application/Authentication/Services/AuthService.cs`](https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/Application/Authentication/Services/AuthService.cs) (Authentication service), [`TheEmployeeAPI/WebAPI/Controllers/EmployeeController.cs`](https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/WebAPI/Controllers/EmployeeController.cs) (Employee controller), [`BenefitSoapService/Services/BenefitService.cs`](https://github.com/nkaka23dev/employee-microservices/blob/main/BenefitSoapService/Services/BenefitService.cs) (Benefit SOAP service), [`PayrollService/Controllers/PayrollController.cs`](https://github.com/nkaka23dev/employee-microservices/blob/main/PayrollService/Controllers/PayrollController.cs) (Payroll controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["API entry"]
  node_gateway["API gateway<br/>[Program.cs]"]
end

subgraph group_employee["Employee API"]
  node_employee_api["Employee REST API<br/>[Program.cs]"]
  node_employee_controller["Employee controller"]
  node_employee_service["Employee service<br/>[EmployeeService.cs]"]
  node_employee_repo["Employee repository"]
  node_auth_controller["Authentication controller<br/>[AuthController.cs]"]
  node_auth_service["Authentication service<br/>[AuthService.cs]"]
  node_token_service["Token service<br/>[TokenService.cs]"]
  node_auth_repo["Authentication repository<br/>[AuthRepository.cs]"]
  node_user_repo["User repository<br/>[UserRepository.cs]"]
  node_employee_db[("Employee database<br/>[AppDbContext.cs]")]
end

subgraph group_benefits["Benefits"]
  node_benefit_controller["Benefit controller"]
  node_soap_service["Benefit SOAP service<br/>[BenefitService.cs]"]
  node_soap_contract["SOAP contract<br/>[BenefitContract.cs]"]
  node_benefit_repo["Benefit repository"]
end

subgraph group_payroll["Payroll and time"]
  node_payroll_controller["Payroll controller"]
  node_payroll_repo["Payroll repository<br/>[PayrollRepo.cs]"]
  node_payroll_db[("Payroll database<br/>[AppDbContext.cs]")]
  node_time_client["Time-tracking HTTP client"]
  node_time_api["Time-tracking service"]
end

subgraph group_services["Other services"]
  node_user_service["User service<br/>[Program.cs]"]
  node_department_service["Department service<br/>[Program.cs]"]
end

node_client(("Frontend / API client"))
node_identity_store[("Identity store")]

node_client -->|"sends requests"| node_gateway
node_gateway -->|"routes requests"| node_employee_api
node_employee_api -->|"maps routes"| node_employee_controller
node_employee_controller -->|"calls"| node_employee_service
node_auth_controller -->|"calls"| node_auth_service
node_auth_service -->|"calls"| node_auth_repo
node_auth_service -->|"checks usernames"| node_user_repo
node_auth_service -->|"generates tokens"| node_token_service
node_auth_service -->|"starts transaction"| node_employee_db
node_auth_repo -->|"manages users"| node_identity_store
node_employee_controller --> node_benefit_controller
node_benefit_controller -->|"gets employee benefits"| node_employee_service
node_soap_service -->|"implements contract"| node_soap_contract
node_soap_service --> node_benefit_repo
node_payroll_controller -->|"reads and saves"| node_payroll_repo
node_payroll_repo -->|"reads and writes"| node_payroll_db
node_payroll_controller -->|"sends payroll"| node_time_client
node_time_client -->|"posts payroll"| node_time_api

click node_gateway "https://github.com/nkaka23dev/employee-microservices/blob/main/ApiGateway/Program.cs"
click node_employee_api "https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/WebAPI/Program.cs"
click node_employee_controller "https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/WebAPI/Controllers/EmployeeController.cs"
click node_employee_service "https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/Application/Employees/Services/EmployeeService.cs"
click node_employee_repo "https://github.com/nkaka23dev/employee-microservices/blob/main/Core/Infrastructure/Repositories/EmployeeRespository.cs"
click node_auth_controller "https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/WebAPI/Controllers/AuthController.cs"
click node_auth_service "https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/Application/Authentication/Services/AuthService.cs"
click node_token_service "https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/Application/Authentication/Services/TokenService.cs"
click node_auth_repo "https://github.com/nkaka23dev/employee-microservices/blob/main/Core/Infrastructure/Repositories/AuthRepository.cs"
click node_user_repo "https://github.com/nkaka23dev/employee-microservices/blob/main/Core/Infrastructure/Repositories/UserRepository.cs"
click node_employee_db "https://github.com/nkaka23dev/employee-microservices/blob/main/Core/Infrastructure/DbContexts/AppDbContext.cs"
click node_benefit_controller "https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/WebAPI/Controllers/BenefitController.cs"
click node_soap_service "https://github.com/nkaka23dev/employee-microservices/blob/main/BenefitSoapService/Services/BenefitService.cs"
click node_soap_contract "https://github.com/nkaka23dev/employee-microservices/blob/main/BenefitSoapService/Contacts/BenefitContract.cs"
click node_benefit_repo "https://github.com/nkaka23dev/employee-microservices/blob/main/Core/Infrastructure/Repositories/BenefitRepository.cs"
click node_payroll_controller "https://github.com/nkaka23dev/employee-microservices/blob/main/PayrollService/Controllers/PayrollController.cs"
click node_payroll_repo "https://github.com/nkaka23dev/employee-microservices/blob/main/PayrollService/Data/PayrollRepo.cs"
click node_payroll_db "https://github.com/nkaka23dev/employee-microservices/blob/main/PayrollService/Data/AppDbContext.cs"
click node_time_client "https://github.com/nkaka23dev/employee-microservices/blob/main/PayrollService/SyncDataService/Http/HttpTimeTrackingDataClient.cs"
click node_time_api "https://github.com/nkaka23dev/employee-microservices/blob/main/TimeTrackingService/Controllers/PayrollController.cs"
click node_user_service "https://github.com/nkaka23dev/employee-microservices/blob/main/UserService/Program.cs"
click node_department_service "https://github.com/nkaka23dev/employee-microservices/blob/main/DepartmentService/Program.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_gateway,node_client toneBlue
class node_employee_api,node_employee_controller,node_employee_service,node_employee_repo,node_auth_controller,node_auth_service,node_token_service,node_auth_repo,node_user_repo,node_employee_db,node_identity_store toneAmber
class node_benefit_controller,node_soap_service,node_soap_contract,node_benefit_repo toneMint
class node_payroll_controller,node_payroll_repo,node_payroll_db,node_time_client,node_time_api toneRose
class node_user_service,node_department_service toneIndigo
```

## Components

### API entry

- [API gateway](https://github.com/nkaka23dev/employee-microservices/blob/main/ApiGateway/Program.cs): `ApiGateway/Program.cs`

### Employee API

- [Employee REST API](https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/WebAPI/Program.cs): `TheEmployeeAPI/WebAPI/Program.cs`
- [Employee controller](https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/WebAPI/Controllers/EmployeeController.cs): `TheEmployeeAPI/WebAPI/Controllers/EmployeeController.cs`
- [Employee service](https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/Application/Employees/Services/EmployeeService.cs): `TheEmployeeAPI/Application/Employees/Services/EmployeeService.cs`
- [Employee repository](https://github.com/nkaka23dev/employee-microservices/blob/main/Core/Infrastructure/Repositories/EmployeeRespository.cs): `Core/Infrastructure/Repositories/EmployeeRespository.cs`
- [Authentication controller](https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/WebAPI/Controllers/AuthController.cs): `TheEmployeeAPI/WebAPI/Controllers/AuthController.cs`
- [Authentication service](https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/Application/Authentication/Services/AuthService.cs): `TheEmployeeAPI/Application/Authentication/Services/AuthService.cs`
- [Token service](https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/Application/Authentication/Services/TokenService.cs): `TheEmployeeAPI/Application/Authentication/Services/TokenService.cs`
- [Authentication repository](https://github.com/nkaka23dev/employee-microservices/blob/main/Core/Infrastructure/Repositories/AuthRepository.cs): `Core/Infrastructure/Repositories/AuthRepository.cs`
- [User repository](https://github.com/nkaka23dev/employee-microservices/blob/main/Core/Infrastructure/Repositories/UserRepository.cs): `Core/Infrastructure/Repositories/UserRepository.cs`
- [Employee database](https://github.com/nkaka23dev/employee-microservices/blob/main/Core/Infrastructure/DbContexts/AppDbContext.cs): `Core/Infrastructure/DbContexts/AppDbContext.cs`

### Benefits

- [Benefit controller](https://github.com/nkaka23dev/employee-microservices/blob/main/TheEmployeeAPI/WebAPI/Controllers/BenefitController.cs): `TheEmployeeAPI/WebAPI/Controllers/BenefitController.cs`
- [Benefit SOAP service](https://github.com/nkaka23dev/employee-microservices/blob/main/BenefitSoapService/Services/BenefitService.cs): `BenefitSoapService/Services/BenefitService.cs`
- [SOAP contract](https://github.com/nkaka23dev/employee-microservices/blob/main/BenefitSoapService/Contacts/BenefitContract.cs): `BenefitSoapService/Contacts/BenefitContract.cs`
- [Benefit repository](https://github.com/nkaka23dev/employee-microservices/blob/main/Core/Infrastructure/Repositories/BenefitRepository.cs): `Core/Infrastructure/Repositories/BenefitRepository.cs`

### Payroll and time

- [Payroll controller](https://github.com/nkaka23dev/employee-microservices/blob/main/PayrollService/Controllers/PayrollController.cs): `PayrollService/Controllers/PayrollController.cs`
- [Payroll repository](https://github.com/nkaka23dev/employee-microservices/blob/main/PayrollService/Data/PayrollRepo.cs): `PayrollService/Data/PayrollRepo.cs`
- [Payroll database](https://github.com/nkaka23dev/employee-microservices/blob/main/PayrollService/Data/AppDbContext.cs): `PayrollService/Data/AppDbContext.cs`
- [Time-tracking HTTP client](https://github.com/nkaka23dev/employee-microservices/blob/main/PayrollService/SyncDataService/Http/HttpTimeTrackingDataClient.cs): `PayrollService/SyncDataService/Http/HttpTimeTrackingDataClient.cs`
- [Time-tracking service](https://github.com/nkaka23dev/employee-microservices/blob/main/TimeTrackingService/Controllers/PayrollController.cs): `TimeTrackingService/Controllers/PayrollController.cs`

### Other services

- [User service](https://github.com/nkaka23dev/employee-microservices/blob/main/UserService/Program.cs): `UserService/Program.cs`
- [Department service](https://github.com/nkaka23dev/employee-microservices/blob/main/DepartmentService/Program.cs): `DepartmentService/Program.cs`

### Other components

- **Frontend / API client**
- **Identity store**

## Connections

- Frontend / API client → API gateway: sends requests
- API gateway → Employee REST API: routes requests
- Employee REST API → Employee controller: maps routes
- Employee controller → Employee service: calls
- Authentication controller → Authentication service: calls
- Authentication service → Authentication repository: calls
- Authentication service → User repository: checks usernames
- Authentication service → Token service: generates tokens
- Authentication service → Employee database: starts transaction
- Authentication repository → Identity store: manages users
- Employee controller → Benefit controller
- Benefit controller → Employee service: gets employee benefits
- Benefit SOAP service → SOAP contract: implements contract
- Benefit SOAP service → Benefit repository
- Payroll controller → Payroll repository: reads and saves
- Payroll repository → Payroll database: reads and writes
- Payroll controller → Time-tracking HTTP client: sends payroll
- Time-tracking HTTP client → Time-tracking service: posts payroll
