A comprehensive microservices-based health insurance management system designed to handle the entire lifecycle of health insurance applications.
The Insurance System for Health (ISH) is a modern, cloud-native application built using Spring Boot that manages the complete lifecycle of health insurance applications - from registration to benefit issuance. The system follows a microservices architecture pattern for scalability, resilience, and maintainability.
The system consists of the following microservices:
- User Management Service: Handles user and worker registration, authentication, and profile management
- Application Registration Service: Manages citizen applications for health insurance
- Data Collection Service: Collects and manages applicant data including income, education, and dependents
- Eligibility Determination Service: Determines eligibility for health insurance based on collected data
- Benefit Issuance Service: Manages the issuance of benefits to eligible applicants
- Correspondence Service: Handles communication with applicants
- Government Report Service: Generates reports for government agencies
- Admin Service: Provides administrative functions for managing plans and system configuration
- Cloud API Gateway: Routes requests to appropriate microservices
- Eureka Server: Service discovery for microservices
- Config Server: Centralized configuration management
- SSA Web API: Simulates the Social Security Administration web service for SSN validation
- Java 17 or higher
- Maven 3.6 or higher
- MySQL 8.0 or higher
- Create a MySQL database named
InsuranceSystemForHealth - Update the database configuration in each microservice's
application.ymlfile if needed
Set up the following environment variables for email functionality:
# Windows
set MAIL_PASSWORD=your_app_password_here
# Linux/Mac
export MAIL_PASSWORD=your_app_password_hereFor Gmail, create an App Password:
- Go to your Google Account > Security > 2-Step Verification
- At the bottom, click on "App passwords"
- Select "Mail" and "Other (Custom name)"
- Enter "ISH Application" and click "Generate"
- Use the 16-character password that appears
Start all services using the provided script:
./start-all-services.bat # Windows
./start-all-services.sh # Linux/MacThe services will start in the following order:
- SSA Web API
- Config Server
- Eureka Server
- Cloud API Gateway
- User Management Service
- Application Registration Service
- Data Collection Service
- Eligibility Determination Service
- Benefit Issuance Service
- Correspondence Service
- Government Report Service
- Admin Service
Access the API Gateway at: http://localhost:7777
Click here to download the Postman Collection
The collection includes a comprehensive set of API requests to test the normal flow a user might experience when interacting with the ISH application.
| Endpoint | Method | Description |
|---|---|---|
/user-api/save |
POST | Register a new user |
/user-api/activate |
POST | Activate a user account |
/user-api/login |
POST | User login |
/worker-api/save |
POST | Register a new worker |
/worker-api/activate |
POST | Activate a worker account |
/worker-api/login |
POST | Worker login |
/api/auth/login |
POST | Combined user/worker login |
| Endpoint | Method | Description |
|---|---|---|
/CitizenAR-api/save |
POST | Register a new citizen application |
| Endpoint | Method | Description |
|---|---|---|
/dc-api/loadCaseNo/{appId} |
POST | Generate a case number for an application |
/dc-api/planNames |
GET | Get all plan names |
/dc-api/updatePlanSelection |
PUT | Update plan selection |
/dc-api/saveIncome |
POST | Save income details |
/dc-api/saveEducation |
POST | Save education details |
/dc-api/saveChilds |
POST | Save children details |
| Endpoint | Method | Description |
|---|---|---|
/ed-api/determine/{caseNo} |
GET | Determine eligibility for a case |
| Endpoint | Method | Description |
|---|---|---|
/plan-api/categories |
GET | Get all plan categories |
/plan-api/register |
POST | Register a new plan |
| Endpoint | Method | Description |
|---|---|---|
/co-triggers-api/process |
GET | Process correspondence triggers |
| Endpoint | Method | Description |
|---|---|---|
/bi-api/send |
GET | Send benefits to beneficiaries |
| Endpoint | Method | Description |
|---|---|---|
/report-api/government/reports |
GET | Get government reports |
- Language: Java 17
- Framework: Spring Boot 3.x
- Database: MySQL 8.0
- Service Discovery: Eureka
- API Gateway: Spring Cloud Gateway
- Configuration: Spring Cloud Config
- Circuit Breaker: Resilience4j
- Documentation: Swagger/OpenAPI
- Authentication: JWT-based authentication
- Communication: WebClient for inter-service communication
- JWT-based authentication
- Password encryption using BCrypt
- Role-based access control
- Secure email communication
A comprehensive test script is provided to test all endpoints:
./test-all-endpoints.shAdditionally, a Postman collection is available for manual testing of all endpoints.