# suranjanmaity/insurance-management-platform-with-spring-boot-and-java architecture

> Architecture diagram of the GitHub repository suranjanmaity/insurance-management-platform-with-spring-boot-and-java, 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/suranjanmaity/insurance-management-platform-with-spring-boot-and-java
- Repository: https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java

## Overview

This Spring Boot insurance platform exposes REST CRUD APIs for clients, policies, and claims. Requests enter the corresponding controller, pass through a service, and reach a DAO that uses a Spring Data JPA repository for persistence. Policy and claim services also resolve associated client or policy records during writes. The README describes embedded-database or MySQL persistence; the supplied excerpts do not show database configuration, validation, or exception-handling implementations, so those details are not mapped.

Main entry points: [`src/main/java/com/api/insurance_management_platform/service/InsurancePolicyService.java`](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/service/InsurancePolicyService.java) (Policy service), [`src/main/java/com/api/insurance_management_platform/service/ClaimService.java`](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/service/ClaimService.java) (Claim service), [`src/main/java/com/api/insurance_management_platform/repository/ClientRepository.java`](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/repository/ClientRepository.java) (Client repository), [`src/main/java/com/api/insurance_management_platform/repository/InsurancePolicyRepository.java`](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/repository/InsurancePolicyRepository.java) (Policy repository)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["REST API"]
  node_client_controller["Client API"]
  node_policy_controller["Policy API"]
  node_claim_controller["Claim API"]
end

subgraph group_domain["Insurance Services"]
  node_client_service["Client service<br/>[ClientService.java]"]
  node_policy_service["Policy service"]
  node_claim_service["Claim service<br/>[ClaimService.java]"]
  node_client_entity["Client entity<br/>[Client.java]"]
  node_policy_entity["Policy entity"]
  node_claim_entity["Claim entity<br/>[Claim.java]"]
end

subgraph group_persistence["JPA Persistence"]
  node_client_dao["Client DAO<br/>[ClientDao.java]"]
  node_policy_dao["Policy DAO"]
  node_claim_dao["Claim DAO<br/>[ClaimDao.java]"]
  node_client_repo["Client repository"]
  node_policy_repo["Policy repository"]
  node_claim_repo["Claim repository"]
end

node_users(("API clients"))
node_database[("Database")]

node_users -->|"calls client API"| node_client_controller
node_users -->|"calls policy API"| node_policy_controller
node_users -->|"calls claim API"| node_claim_controller
node_client_controller -->|"delegates to"| node_client_service
node_policy_controller -->|"delegates to"| node_policy_service
node_claim_controller -->|"delegates to"| node_claim_service
node_client_service -->|"calls"| node_client_dao
node_policy_service -->|"calls"| node_policy_dao
node_policy_service -->|"resolves client"| node_client_dao
node_claim_service -->|"calls"| node_claim_dao
node_claim_service -->|"resolves policy"| node_policy_dao
node_client_dao -->|"uses"| node_client_repo
node_policy_dao -->|"uses"| node_policy_repo
node_claim_dao -->|"uses"| node_claim_repo
node_client_repo -->|"persists"| node_client_entity
node_policy_repo -->|"persists"| node_policy_entity
node_claim_repo -->|"persists"| node_claim_entity
node_policy_entity -->|"references"| node_client_entity
node_claim_entity -->|"references"| node_policy_entity
node_client_repo -.->|"JPA storage"| node_database
node_policy_repo -.->|"JPA storage"| node_database
node_claim_repo -.->|"JPA storage"| node_database

click node_client_controller "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/controller/ClientController.java"
click node_policy_controller "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/controller/InsurancePolicyController.java"
click node_claim_controller "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/controller/ClaimController.java"
click node_client_service "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/service/ClientService.java"
click node_policy_service "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/service/InsurancePolicyService.java"
click node_claim_service "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/service/ClaimService.java"
click node_client_entity "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dto/Client.java"
click node_policy_entity "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dto/InsurancePolicy.java"
click node_claim_entity "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dto/Claim.java"
click node_client_dao "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dao/ClientDao.java"
click node_policy_dao "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dao/InsurancePolicyDao.java"
click node_claim_dao "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dao/ClaimDao.java"
click node_client_repo "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/repository/ClientRepository.java"
click node_policy_repo "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/repository/InsurancePolicyRepository.java"
click node_claim_repo "https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/repository/ClaimRepository.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_client_controller,node_policy_controller,node_claim_controller,node_users toneBlue
class node_client_service,node_policy_service,node_claim_service,node_client_entity,node_policy_entity,node_claim_entity,node_database toneAmber
class node_client_dao,node_policy_dao,node_claim_dao,node_client_repo,node_policy_repo,node_claim_repo toneMint
```

## Components

### REST API

- [Client API](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/controller/ClientController.java): `src/main/java/com/api/insurance_management_platform/controller/ClientController.java`
- [Policy API](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/controller/InsurancePolicyController.java): `src/main/java/com/api/insurance_management_platform/controller/InsurancePolicyController.java`
- [Claim API](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/controller/ClaimController.java): `src/main/java/com/api/insurance_management_platform/controller/ClaimController.java`

### Insurance Services

- [Client service](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/service/ClientService.java): `src/main/java/com/api/insurance_management_platform/service/ClientService.java`
- [Policy service](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/service/InsurancePolicyService.java): `src/main/java/com/api/insurance_management_platform/service/InsurancePolicyService.java`
- [Claim service](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/service/ClaimService.java): `src/main/java/com/api/insurance_management_platform/service/ClaimService.java`
- [Client entity](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dto/Client.java): `src/main/java/com/api/insurance_management_platform/dto/Client.java`
- [Policy entity](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dto/InsurancePolicy.java): `src/main/java/com/api/insurance_management_platform/dto/InsurancePolicy.java`
- [Claim entity](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dto/Claim.java): `src/main/java/com/api/insurance_management_platform/dto/Claim.java`

### JPA Persistence

- [Client DAO](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dao/ClientDao.java): `src/main/java/com/api/insurance_management_platform/dao/ClientDao.java`
- [Policy DAO](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dao/InsurancePolicyDao.java): `src/main/java/com/api/insurance_management_platform/dao/InsurancePolicyDao.java`
- [Claim DAO](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/dao/ClaimDao.java): `src/main/java/com/api/insurance_management_platform/dao/ClaimDao.java`
- [Client repository](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/repository/ClientRepository.java): `src/main/java/com/api/insurance_management_platform/repository/ClientRepository.java`
- [Policy repository](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/repository/InsurancePolicyRepository.java): `src/main/java/com/api/insurance_management_platform/repository/InsurancePolicyRepository.java`
- [Claim repository](https://github.com/suranjanmaity/insurance-management-platform-with-spring-boot-and-java/blob/master/src/main/java/com/api/insurance_management_platform/repository/ClaimRepository.java): `src/main/java/com/api/insurance_management_platform/repository/ClaimRepository.java`

### Other components

- **API clients**
- **Database**

## Connections

- API clients → Client API: calls client API (evidence: `README.md`)
- API clients → Policy API: calls policy API (evidence: `README.md`)
- API clients → Claim API: calls claim API (evidence: `README.md`)
- Client API → Client service: delegates to (evidence: `src/main/java/com/api/insurance_management_platform/controller/ClientController.java`)
- Policy API → Policy service: delegates to (evidence: `src/main/java/com/api/insurance_management_platform/controller/InsurancePolicyController.java`)
- Claim API → Claim service: delegates to (evidence: `src/main/java/com/api/insurance_management_platform/controller/ClaimController.java`)
- Client service → Client DAO: calls (evidence: `src/main/java/com/api/insurance_management_platform/service/ClientService.java`)
- Policy service → Policy DAO: calls (evidence: `src/main/java/com/api/insurance_management_platform/service/InsurancePolicyService.java`)
- Policy service → Client DAO: resolves client (evidence: `src/main/java/com/api/insurance_management_platform/service/InsurancePolicyService.java`)
- Claim service → Claim DAO: calls (evidence: `src/main/java/com/api/insurance_management_platform/service/ClaimService.java`)
- Claim service → Policy DAO: resolves policy (evidence: `src/main/java/com/api/insurance_management_platform/service/ClaimService.java`)
- Client DAO → Client repository: uses (evidence: `src/main/java/com/api/insurance_management_platform/dao/ClientDao.java`)
- Policy DAO → Policy repository: uses (evidence: `src/main/java/com/api/insurance_management_platform/dao/InsurancePolicyDao.java`)
- Claim DAO → Claim repository: uses (evidence: `src/main/java/com/api/insurance_management_platform/dao/ClaimDao.java`)
- Client repository → Client entity: persists (evidence: `src/main/java/com/api/insurance_management_platform/repository/ClientRepository.java`)
- Policy repository → Policy entity: persists (evidence: `src/main/java/com/api/insurance_management_platform/repository/InsurancePolicyRepository.java`)
- Claim repository → Claim entity: persists (evidence: `src/main/java/com/api/insurance_management_platform/repository/ClaimRepository.java`)
- Policy entity → Client entity: references (evidence: `src/main/java/com/api/insurance_management_platform/dto/InsurancePolicy.java`)
- Claim entity → Policy entity: references (evidence: `src/main/java/com/api/insurance_management_platform/dto/Claim.java`)
- Client repository → Database: JPA storage
- Policy repository → Database: JPA storage
- Claim repository → Database: JPA storage
