# khurshidbx/cemc-e2e architecture

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

- Interactive diagram: https://gitdiagram.com/khurshidbx/cemc-e2e
- Repository: https://github.com/khurshidbx/cemc-e2e

## Overview

This repository is a Playwright end-to-end test suite for the CEMC web application, not the application itself. Tests exercise role-specific workflows through page-object classes against the hosted service; page objects also detect API responses to synchronize UI actions. The tree documents administration, plans, letters, protocols, assignments, operational tasks, and report workflows. The README is empty and source excerpts are partial, so links represent only evidenced test-to-page-object usage and documented hosted-app interactions; unsampled wiring is omitted.

Main entry points: [`tests/irp-performer`](https://github.com/khurshidbx/cemc-e2e/tree/main/tests/irp-performer) (Performer tests), [`tests/admin`](https://github.com/khurshidbx/cemc-e2e/tree/main/tests/admin) (Admin tests), [`tests/head-performer`](https://github.com/khurshidbx/cemc-e2e/tree/main/tests/head-performer) (Head performer tests), [`pages`](https://github.com/khurshidbx/cemc-e2e/tree/main/pages) (Admin pages)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_testflows["Role workflows"]
  node_adminsuite["Admin tests"]
  node_performersuite["Performer tests"]
  node_headperformer["Head performer tests"]
  node_srkitrsuite["SRKITR tests"]
  node_crossrole["Full-cycle reports"]
end

subgraph group_pageobjects["Page objects"]
  node_loginpage["Login page<br/>[LoginPage.ts]"]
  node_dashboardpage["Dashboard page<br/>[DashboardPage.ts]"]
  node_adminpages["Admin pages"]
  node_planspage["Plans page<br/>[PlansPage.ts]"]
  node_letterspage["Letters page<br/>[LettersPage.ts]"]
  node_protocolspage["Protocols page<br/>[ProtocolsPage.ts]"]
  node_rkpprotocols["RKP protocols"]
  node_operational["Operational tasks"]
  node_irpassignments["IRP assignments"]
  node_rkpassignments["RKP assignments"]
  node_managementorders["Management orders"]
  node_reports["RM reports<br/>[RmReportsPage.ts]"]
end

subgraph group_shared["Shared interactions"]
  node_basecrud["CRUD interactions<br/>[BaseCrudPage.ts]"]
  node_simplecode["Code forms<br/>[SimpleCodePage.ts]"]
  node_authfixture["Auth fixture<br/>[auth.ts]"]
end

node_engineer(("Test engineer"))
node_hostedapp["CEMC app"]

node_engineer -->|"runs"| node_adminsuite
node_engineer -->|"runs"| node_performersuite
node_engineer -->|"runs"| node_headperformer
node_engineer -->|"runs"| node_srkitrsuite
node_engineer -->|"runs"| node_crossrole
node_adminsuite -->|"uses"| node_loginpage
node_adminsuite -->|"uses"| node_dashboardpage
node_adminsuite -->|"uses"| node_adminpages
node_performersuite -->|"uses"| node_planspage
node_performersuite -->|"uses"| node_letterspage
node_performersuite -->|"uses"| node_irpassignments
node_performersuite -->|"uses"| node_protocolspage
node_headperformer -->|"uses"| node_operational
node_headperformer -->|"uses"| node_rkpprotocols
node_headperformer -->|"uses"| node_rkpassignments
node_srkitrsuite -->|"uses"| node_managementorders
node_crossrole -->|"uses"| node_reports
node_adminpages -->|"extends"| node_basecrud
node_adminpages -->|"extends"| node_simplecode
node_basecrud -->|"drives UI"| node_hostedapp
node_simplecode -->|"calls"| node_basecrud
node_planspage -->|"drives UI"| node_hostedapp
node_planspage -->|"waits for API"| node_hostedapp
node_letterspage -->|"drives UI"| node_hostedapp
node_letterspage -->|"waits for API"| node_hostedapp
node_protocolspage -->|"drives UI"| node_hostedapp
node_rkpprotocols -->|"drives UI"| node_hostedapp
node_rkpprotocols -->|"waits for API"| node_hostedapp
node_operational -->|"drives UI"| node_hostedapp
node_irpassignments -->|"drives UI"| node_hostedapp
node_rkpassignments -->|"drives UI"| node_hostedapp
node_managementorders -->|"creates orders"| node_hostedapp
node_reports -->|"drives UI"| node_hostedapp
node_authfixture -->|"authenticates"| node_hostedapp

click node_adminsuite "https://github.com/khurshidbx/cemc-e2e/tree/main/tests/admin"
click node_performersuite "https://github.com/khurshidbx/cemc-e2e/tree/main/tests/irp-performer"
click node_headperformer "https://github.com/khurshidbx/cemc-e2e/tree/main/tests/head-performer"
click node_srkitrsuite "https://github.com/khurshidbx/cemc-e2e/tree/main/tests/head-of-srkitr"
click node_crossrole "https://github.com/khurshidbx/cemc-e2e/tree/main/tests/e2e"
click node_loginpage "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/LoginPage.ts"
click node_dashboardpage "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/DashboardPage.ts"
click node_adminpages "https://github.com/khurshidbx/cemc-e2e/tree/main/pages"
click node_planspage "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/PlansPage.ts"
click node_letterspage "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/LettersPage.ts"
click node_protocolspage "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/ProtocolsPage.ts"
click node_rkpprotocols "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/RkpProtocolsPage.ts"
click node_operational "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/OperationalTasksPage.ts"
click node_irpassignments "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/IrpAssignmentsPage.ts"
click node_rkpassignments "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/RkpAssignmentsPage.ts"
click node_managementorders "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/ManagementOrdersPage.ts"
click node_reports "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/RmReportsPage.ts"
click node_basecrud "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/base/BaseCrudPage.ts"
click node_simplecode "https://github.com/khurshidbx/cemc-e2e/blob/main/pages/base/SimpleCodePage.ts"
click node_authfixture "https://github.com/khurshidbx/cemc-e2e/blob/main/fixtures/auth.ts"

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_adminsuite,node_performersuite,node_headperformer,node_srkitrsuite,node_crossrole toneBlue
class node_loginpage,node_dashboardpage,node_adminpages,node_planspage,node_letterspage,node_protocolspage,node_rkpprotocols,node_operational,node_irpassignments,node_rkpassignments,node_managementorders,node_reports toneAmber
class node_basecrud,node_simplecode,node_authfixture toneMint
class node_engineer,node_hostedapp toneIndigo
```

## Components

### Role workflows

- [Admin tests](https://github.com/khurshidbx/cemc-e2e/tree/main/tests/admin): `tests/admin`
- [Performer tests](https://github.com/khurshidbx/cemc-e2e/tree/main/tests/irp-performer): `tests/irp-performer`
- [Head performer tests](https://github.com/khurshidbx/cemc-e2e/tree/main/tests/head-performer): `tests/head-performer`
- [SRKITR tests](https://github.com/khurshidbx/cemc-e2e/tree/main/tests/head-of-srkitr): `tests/head-of-srkitr`
- [Full-cycle reports](https://github.com/khurshidbx/cemc-e2e/tree/main/tests/e2e): `tests/e2e`

### Page objects

- [Login page](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/LoginPage.ts): `pages/LoginPage.ts`
- [Dashboard page](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/DashboardPage.ts): `pages/DashboardPage.ts`
- [Admin pages](https://github.com/khurshidbx/cemc-e2e/tree/main/pages): `pages`
- [Plans page](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/PlansPage.ts): `pages/PlansPage.ts`
- [Letters page](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/LettersPage.ts): `pages/LettersPage.ts`
- [Protocols page](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/ProtocolsPage.ts): `pages/ProtocolsPage.ts`
- [RKP protocols](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/RkpProtocolsPage.ts): `pages/RkpProtocolsPage.ts`
- [Operational tasks](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/OperationalTasksPage.ts): `pages/OperationalTasksPage.ts`
- [IRP assignments](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/IrpAssignmentsPage.ts): `pages/IrpAssignmentsPage.ts`
- [RKP assignments](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/RkpAssignmentsPage.ts): `pages/RkpAssignmentsPage.ts`
- [Management orders](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/ManagementOrdersPage.ts): `pages/ManagementOrdersPage.ts`
- [RM reports](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/RmReportsPage.ts): `pages/RmReportsPage.ts`

### Shared interactions

- [CRUD interactions](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/base/BaseCrudPage.ts): `pages/base/BaseCrudPage.ts`
- [Code forms](https://github.com/khurshidbx/cemc-e2e/blob/main/pages/base/SimpleCodePage.ts): `pages/base/SimpleCodePage.ts`
- [Auth fixture](https://github.com/khurshidbx/cemc-e2e/blob/main/fixtures/auth.ts): `fixtures/auth.ts`

### Other components

- **Test engineer**
- **CEMC app**

## Connections

- Test engineer → Admin tests: runs
- Test engineer → Performer tests: runs
- Test engineer → Head performer tests: runs
- Test engineer → SRKITR tests: runs
- Test engineer → Full-cycle reports: runs
- Admin tests → Login page: uses
- Admin tests → Dashboard page: uses
- Admin tests → Admin pages: uses
- Performer tests → Plans page: uses
- Performer tests → Letters page: uses
- Performer tests → IRP assignments: uses
- Performer tests → Protocols page: uses
- Head performer tests → Operational tasks: uses
- Head performer tests → RKP protocols: uses
- Head performer tests → RKP assignments: uses
- SRKITR tests → Management orders: uses
- Full-cycle reports → RM reports: uses
- Admin pages → CRUD interactions: extends
- Admin pages → Code forms: extends
- CRUD interactions → CEMC app: drives UI
- Code forms → CRUD interactions: calls
- Plans page → CEMC app: drives UI
- Plans page → CEMC app: waits for API
- Letters page → CEMC app: drives UI
- Letters page → CEMC app: waits for API
- Protocols page → CEMC app: drives UI
- RKP protocols → CEMC app: drives UI
- RKP protocols → CEMC app: waits for API
- Operational tasks → CEMC app: drives UI
- IRP assignments → CEMC app: drives UI
- RKP assignments → CEMC app: drives UI
- Management orders → CEMC app: creates orders
- RM reports → CEMC app: drives UI
- Auth fixture → CEMC app: authenticates
