# ooviya20/smart-kyc-verification-risk-assessment-project architecture

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

- Interactive diagram: https://gitdiagram.com/ooviya20/smart-kyc-verification-risk-assessment-project
- Repository: https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project

## Overview

Smart KYC is a full-stack KYC verification and risk-assessment system with a React interface, a Spring Boot backend, and a separate CRM application. The intended user workflow spans customer records, document verification, PEP screening, risk assessment, audit review, and CRM comparison or document import. The graph preserves those capabilities, but sampled frontend code only shows page selection, not its API calls; unsampled controller links and frontend-to-backend transfers are therefore omitted.

Main entry points: [`smart-kyc-frontend/src/App.jsx`](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/App.jsx) (Page selector), [`smart-kyc-backend/src/main/java/com/smartkyc/repository`](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/tree/main/smart-kyc-backend/src/main/java/com/smartkyc/repository) (KYC repositories), [`smart-kyc-backend/src/main/java/com/smartkyc/service/CrmIntegrationService.java`](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/CrmIntegrationService.java) (CRM matching and import), [`smart-kyc-backend/src/main/java/com/smartkyc/service/CustomerService.java`](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/CustomerService.java) (Customer management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["KYC interface"]
  node_app["Page selector<br/>[App.jsx]"]
  node_customers_ui["Customers<br/>[Customers.jsx]"]
  node_kyc_ui["KYC verification"]
  node_risk_ui["Risk assessment<br/>[RiskAssessment.jsx]"]
  node_pep_ui["PEP screening<br/>[PepScreening.jsx]"]
  node_audit_ui["Audit logs<br/>[AuditLogs.jsx]"]
  node_dashboard_ui["Dashboard<br/>[Dashboard.jsx]"]
end

subgraph group_backend["KYC backend"]
  node_customer_controller["Customer API"]
  node_customer_service["Customer management"]
  node_kyc_controller["Document API"]
  node_kyc_service["Document verification"]
  node_risk_controller["Risk API"]
  node_risk_service["Risk scoring"]
  node_pep_controller["PEP API"]
  node_pep_service["PEP screening"]
  node_dashboard_service["Dashboard aggregation"]
  node_audit_controller["Audit API"]
  node_audit_service["Audit logging"]
  node_crm_controller["CRM integration API"]
  node_crm_service["CRM matching and import"]
  node_crm_dtos["CRM transfer DTOs"]
  node_domain_entities["KYC domain records"]
  node_repositories["KYC repositories"]
end

subgraph group_crm["CRM application"]
  node_crm_customer_api["CRM customer API"]
  node_crm_document_api["CRM document API"]
  node_crm_entities["CRM records"]
  node_crm_repositories["CRM repositories"]
end

node_user(("KYC operator"))
node_crm_service_external(("CRM service"))

node_user -->|"uses"| node_app
node_app -->|"renders"| node_dashboard_ui
node_app -->|"renders"| node_customers_ui
node_app -->|"renders"| node_kyc_ui
node_app -->|"renders"| node_risk_ui
node_app -->|"renders"| node_pep_ui
node_app -->|"renders"| node_audit_ui
node_customer_controller -.->|"delegates to"| node_customer_service
node_customer_service -->|"reads and saves"| node_repositories
node_kyc_controller -.->|"delegates to"| node_kyc_service
node_kyc_service -->|"reads and saves"| node_repositories
node_kyc_service -->|"records events"| node_audit_service
node_risk_controller -->|"calls"| node_risk_service
node_risk_service -->|"reads and saves"| node_repositories
node_pep_controller -.->|"delegates to"| node_pep_service
node_pep_service -->|"reads and saves"| node_repositories
node_pep_service -->|"records events"| node_audit_service
node_dashboard_service -->|"aggregates counts"| node_repositories
node_audit_controller -.->|"delegates to"| node_audit_service
node_audit_service -.->|"writes logs"| node_repositories
node_crm_controller -->|"calls"| node_crm_service
node_crm_service -->|"updates status"| node_customer_service
node_crm_service -->|"imports documents"| node_kyc_service
node_crm_service -->|"loads customer"| node_repositories
node_crm_service -.->|"requests CRM data"| node_crm_service_external
node_crm_customer_api -->|"reads and saves"| node_crm_repositories
node_crm_document_api -->|"reads and saves"| node_crm_repositories
node_crm_document_api -->|"creates document"| node_crm_entities
node_customer_service -->|"creates audit record"| node_domain_entities

click node_app "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/App.jsx"
click node_customers_ui "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/Customers.jsx"
click node_kyc_ui "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/KycVerification.jsx"
click node_risk_ui "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/RiskAssessment.jsx"
click node_pep_ui "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/PepScreening.jsx"
click node_audit_ui "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/AuditLogs.jsx"
click node_dashboard_ui "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/Dashboard.jsx"
click node_customer_controller "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/CustomerController.java"
click node_customer_service "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/CustomerService.java"
click node_kyc_controller "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/KycDocumentController.java"
click node_kyc_service "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/KycDocumentService.java"
click node_risk_controller "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/RiskAssessmentController.java"
click node_risk_service "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/RiskAssessmentService.java"
click node_pep_controller "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/PepScreeningController.java"
click node_pep_service "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/PepScreeningService.java"
click node_dashboard_service "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/DashboardService.java"
click node_audit_controller "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/AuditLogController.java"
click node_audit_service "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/AuditLogService.java"
click node_crm_controller "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/CrmIntegrationController.java"
click node_crm_service "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/CrmIntegrationService.java"
click node_crm_dtos "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/dto/CrmCustomerDto.java"
click node_domain_entities "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/tree/main/smart-kyc-backend/src/main/java/com/smartkyc/entity"
click node_repositories "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/tree/main/smart-kyc-backend/src/main/java/com/smartkyc/repository"
click node_crm_customer_api "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-crm/src/main/java/com/smartkyccrm/controller/CrmCustomerController.java"
click node_crm_document_api "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-crm/src/main/java/com/smartkyccrm/controller/CrmDocumentController.java"
click node_crm_entities "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/tree/main/smart-kyc-crm/src/main/java/com/smartkyccrm/entity"
click node_crm_repositories "https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/tree/main/smart-kyc-crm/src/main/java/com/smartkyccrm/repository"

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_customers_ui,node_kyc_ui,node_risk_ui,node_pep_ui,node_audit_ui,node_dashboard_ui toneBlue
class node_customer_controller,node_customer_service,node_kyc_controller,node_kyc_service,node_risk_controller,node_risk_service,node_pep_controller,node_pep_service,node_dashboard_service,node_audit_controller,node_audit_service,node_crm_controller,node_crm_service,node_crm_dtos,node_domain_entities,node_repositories toneAmber
class node_crm_customer_api,node_crm_document_api,node_crm_entities,node_crm_repositories toneMint
class node_user,node_crm_service_external toneIndigo
```

## Components

### KYC interface

- [Page selector](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/App.jsx): `smart-kyc-frontend/src/App.jsx`
- [Customers](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/Customers.jsx): `smart-kyc-frontend/src/Customers.jsx`
- [KYC verification](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/KycVerification.jsx): `smart-kyc-frontend/src/KycVerification.jsx`
- [Risk assessment](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/RiskAssessment.jsx): `smart-kyc-frontend/src/RiskAssessment.jsx`
- [PEP screening](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/PepScreening.jsx): `smart-kyc-frontend/src/PepScreening.jsx`
- [Audit logs](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/AuditLogs.jsx): `smart-kyc-frontend/src/AuditLogs.jsx`
- [Dashboard](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-frontend/src/Dashboard.jsx): `smart-kyc-frontend/src/Dashboard.jsx`

### KYC backend

- [Customer API](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/CustomerController.java): `smart-kyc-backend/src/main/java/com/smartkyc/controller/CustomerController.java`
- [Customer management](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/CustomerService.java): `smart-kyc-backend/src/main/java/com/smartkyc/service/CustomerService.java`
- [Document API](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/KycDocumentController.java): `smart-kyc-backend/src/main/java/com/smartkyc/controller/KycDocumentController.java`
- [Document verification](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/KycDocumentService.java): `smart-kyc-backend/src/main/java/com/smartkyc/service/KycDocumentService.java`
- [Risk API](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/RiskAssessmentController.java): `smart-kyc-backend/src/main/java/com/smartkyc/controller/RiskAssessmentController.java`
- [Risk scoring](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/RiskAssessmentService.java): `smart-kyc-backend/src/main/java/com/smartkyc/service/RiskAssessmentService.java`
- [PEP API](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/PepScreeningController.java): `smart-kyc-backend/src/main/java/com/smartkyc/controller/PepScreeningController.java`
- [PEP screening](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/PepScreeningService.java): `smart-kyc-backend/src/main/java/com/smartkyc/service/PepScreeningService.java`
- [Dashboard aggregation](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/DashboardService.java): `smart-kyc-backend/src/main/java/com/smartkyc/service/DashboardService.java`
- [Audit API](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/AuditLogController.java): `smart-kyc-backend/src/main/java/com/smartkyc/controller/AuditLogController.java`
- [Audit logging](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/AuditLogService.java): `smart-kyc-backend/src/main/java/com/smartkyc/service/AuditLogService.java`
- [CRM integration API](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/controller/CrmIntegrationController.java): `smart-kyc-backend/src/main/java/com/smartkyc/controller/CrmIntegrationController.java`
- [CRM matching and import](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/service/CrmIntegrationService.java): `smart-kyc-backend/src/main/java/com/smartkyc/service/CrmIntegrationService.java`
- [CRM transfer DTOs](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-backend/src/main/java/com/smartkyc/dto/CrmCustomerDto.java): `smart-kyc-backend/src/main/java/com/smartkyc/dto/CrmCustomerDto.java`
- [KYC domain records](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/tree/main/smart-kyc-backend/src/main/java/com/smartkyc/entity): `smart-kyc-backend/src/main/java/com/smartkyc/entity`
- [KYC repositories](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/tree/main/smart-kyc-backend/src/main/java/com/smartkyc/repository): `smart-kyc-backend/src/main/java/com/smartkyc/repository`

### CRM application

- [CRM customer API](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-crm/src/main/java/com/smartkyccrm/controller/CrmCustomerController.java): `smart-kyc-crm/src/main/java/com/smartkyccrm/controller/CrmCustomerController.java`
- [CRM document API](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/blob/main/smart-kyc-crm/src/main/java/com/smartkyccrm/controller/CrmDocumentController.java): `smart-kyc-crm/src/main/java/com/smartkyccrm/controller/CrmDocumentController.java`
- [CRM records](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/tree/main/smart-kyc-crm/src/main/java/com/smartkyccrm/entity): `smart-kyc-crm/src/main/java/com/smartkyccrm/entity`
- [CRM repositories](https://github.com/ooviya20/smart-kyc-verification-risk-assessment-project/tree/main/smart-kyc-crm/src/main/java/com/smartkyccrm/repository): `smart-kyc-crm/src/main/java/com/smartkyccrm/repository`

### Other components

- **KYC operator**
- **CRM service**

## Connections

- KYC operator → Page selector: uses (evidence: `smart-kyc-frontend/src/App.jsx`)
- Page selector → Dashboard: renders (evidence: `smart-kyc-frontend/src/App.jsx`)
- Page selector → Customers: renders (evidence: `smart-kyc-frontend/src/App.jsx`)
- Page selector → KYC verification: renders (evidence: `smart-kyc-frontend/src/App.jsx`)
- Page selector → Risk assessment: renders (evidence: `smart-kyc-frontend/src/App.jsx`)
- Page selector → PEP screening: renders (evidence: `smart-kyc-frontend/src/App.jsx`)
- Page selector → Audit logs: renders (evidence: `smart-kyc-frontend/src/App.jsx`)
- Customer API → Customer management: delegates to
- Customer management → KYC repositories: reads and saves (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/service/CustomerService.java`)
- Document API → Document verification: delegates to
- Document verification → KYC repositories: reads and saves (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/service/KycDocumentService.java`)
- Document verification → Audit logging: records events (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/service/KycDocumentService.java`)
- Risk API → Risk scoring: calls (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/controller/RiskAssessmentController.java`)
- Risk scoring → KYC repositories: reads and saves (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/service/RiskAssessmentService.java`)
- PEP API → PEP screening: delegates to
- PEP screening → KYC repositories: reads and saves (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/service/PepScreeningService.java`)
- PEP screening → Audit logging: records events (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/service/PepScreeningService.java`)
- Dashboard aggregation → KYC repositories: aggregates counts (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/service/DashboardService.java`)
- Audit API → Audit logging: delegates to
- Audit logging → KYC repositories: writes logs
- CRM integration API → CRM matching and import: calls (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/controller/CrmIntegrationController.java`)
- CRM matching and import → Customer management: updates status (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/service/CrmIntegrationService.java`)
- CRM matching and import → Document verification: imports documents (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/service/CrmIntegrationService.java`)
- CRM matching and import → KYC repositories: loads customer (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/service/CrmIntegrationService.java`)
- CRM matching and import → CRM service: requests CRM data
- CRM customer API → CRM repositories: reads and saves (evidence: `smart-kyc-crm/src/main/java/com/smartkyccrm/controller/CrmCustomerController.java`)
- CRM document API → CRM repositories: reads and saves (evidence: `smart-kyc-crm/src/main/java/com/smartkyccrm/controller/CrmDocumentController.java`)
- CRM document API → CRM records: creates document (evidence: `smart-kyc-crm/src/main/java/com/smartkyccrm/controller/CrmDocumentController.java`)
- Customer management → KYC domain records: creates audit record (evidence: `smart-kyc-backend/src/main/java/com/smartkyc/service/CustomerService.java`)
