This guide walks through the complete claim journey from filing to settlement, demonstrating all three personas.
Platform URL: https://.cloudfront.net
| Persona | Login URL | User ID | Password |
|---|---|---|---|
| Policyholder | /login/policyholder |
testuser2 |
REDACTED-TEST-VALUE |
| Claims Adjudicator | /login/adjudicator |
adjudicator1 |
REDACTED-TEST-VALUE |
| System Admin | /login/admin |
admin1 |
Admin12345 |
┌──────────┐ ┌───────────┐ ┌──────────────┐ ┌──────────┐ ┌────────────┐ ┌────────┐
│ DRAFT │───▶│ SUBMITTED │───▶│ UNDER REVIEW │───▶│ APPROVED │───▶│ SETTLEMENT │───▶│ CLOSED │
└──────────┘ └───────────┘ └──────────────┘ └──────────┘ └────────────┘ └────────┘
│ ▲
│ ┌──────────┐ │
└──────────▶│ REJECTED │─────────────────────────────┘
└──────────┘
| Status | Who Acts | Action |
|---|---|---|
| Draft | Policyholder | Creates claim, fills details |
| Submitted/Under Review | System | Auto-transitions on submit |
| Approved | Adjudicator | Reviews and approves with settlement amount |
| Rejected | Adjudicator | Reviews and rejects with reason |
| Settlement | Adjudicator | Initiates payment processing |
| Closed | Adjudicator | Finalizes the claim |
- Open the platform: https://.cloudfront.net
- Show the Landing Page — Three persona cards (Policyholder, Adjudicator, Admin)
- Click "Policyholder" → Blue-themed login page
- Login with
testuser2/REDACTED-TEST-VALUE - Dashboard shows "My Claims" with stats and recent claims
- Click "File New Claim" button
- Step 1 - Select Type: Choose "Health Insurance" 🏥
- Step 2 - Details:
- Amount:
75000(₹75,000) - Policy Number:
POL-HEALTH-2024-001 - Incident Date: Select today's date
- Description:
Hospitalization for acute appendicitis surgery at Apollo Hospital, Mumbai. 3-day stay including surgery, post-operative care, and medications.
- Amount:
- Step 3 - Documents: Select a file (optional) or skip
- Step 4 - Review: Verify all details, click "Submit Claim"
- Result: Claim is created and submitted → Status moves to "Under Review"
- Navigate to Claims list — See the new claim with "Under Review" status
- Click the claim — See the Claim Journey timeline showing progress
- Logout (top-right corner)
- Go back to Landing Page: https://.cloudfront.net
- Click "Claims Adjudicator" → Green-themed login page
- Login with
adjudicator1/REDACTED-TEST-VALUE - Dashboard shows "Claims Queue" with all claims including the new one
- Click the health claim just submitted
- Show the Claim Journey — Currently at "Under Review" step
- Show action buttons: "Approve" and "Reject" are available
- Click "Approve" → Modal appears
- Enter Settlement Amount:
70000(₹70,000 — slightly less than claimed) - Add Notes:
Approved after verification. Settlement amount adjusted per policy terms. - Click "Confirm Approval"
- Result: Status moves to "Approved" → Timeline updates
- Click "Initiate Settlement" button (now visible)
- Result: Status moves to "Settlement"
- Click "Close Claim" button
- Result: Status moves to "Closed" → Full lifecycle complete!
- Show the Claim History section — All status changes with timestamps
- Go back to Landing Page
- Click "System Admin" → Purple-themed login page
- Login with
admin1/Admin12345 - Dashboard shows system overview with stats
- Navigate to "Analytics" — Show charts with real data:
- Claims by Type (bar chart)
- Status Distribution (donut chart)
- Monthly Trend (vertical bars)
- Performance table
- Navigate to "Users" — Show user management:
- All registered users with roles
- Filter by role
- "Add User" button (creates new users)
- "Edit" button (change roles)
- "Deactivate" button
- Navigate to "Claims" — Admin can see all claims across all users
- As Policyholder: File another claim (e.g., Motor Insurance, ₹2,00,000)
- As Adjudicator: Open the claim → Click "Reject"
- Enter reason:
Claim amount exceeds policy coverage limit. Please resubmit with correct documentation. - Click "Confirm Rejection"
- Result: Status moves to "Rejected"
- Click "Close Claim" → Status moves to "Closed"
- As Policyholder: Login and see the rejected claim with reason displayed
- "80% of straightforward claims settled within 24 hours"
- "70% automation rate — minimal manual intervention"
- "Real-time visibility for policyholders — no more calling support"
- "7 microservices on AWS ECS Fargate — independently scalable"
- "React TypeScript frontend on CloudFront — global CDN delivery"
- "DynamoDB for operational data — millisecond response times"
- "Role-based access control — each persona sees only what they need"
- "Full audit trail — every status change is logged with timestamp"
- "Python FastAPI microservices — modern, async, high-performance"
- "AWS CDK Infrastructure as Code — 13 stacks, fully reproducible"
- "Service discovery via AWS Cloud Map — no hardcoded URLs"
- "Designed for AI integration — Amazon Bedrock for fraud detection (ready to enable)"
| Issue | Quick Fix |
|---|---|
| Login fails | Check credentials above, try registering a new user |
| Claim submit shows error | Ensure description is 10+ characters |
| Adjudicator sees no claims | Claims must be submitted (not just draft) |
| Page shows blank after action | Hard refresh (Cmd+Shift+R) |
| API timeout | Wait 5 seconds and retry — ECS cold start |
| Analytics "UndefinedTable" error | Run: curl -X POST .../api/analytics/sync -H "Authorization: Bearer $TOKEN" |
| CloudFront returns HTML for API | Re-add /api/* cache behavior pointing to alb-api origin |
| Notification "AccessDenied" on Scan | Already fixed — IAM inline policy added to task role |
Datadog shows service:cloudwatch |
Log group tags set — wait for new logs (old ones keep old tag) |
Q: How does fraud detection work? A: Amazon Bedrock (Claude Sonnet 4.5) analyzes claim patterns, document consistency, and historical data. Currently in demo mode — ready to enable with Bedrock model access.
Q: How does document OCR work? A: Amazon Textract extracts text, Amazon Comprehend identifies entities (names, dates, amounts). Auto-populates claim fields. Document service is deployed and connected.
Q: What about notifications? A: Email (SES) and SMS (SNS) notifications are configured. Notification service is deployed — requires SES domain verification for production use.
Q: Can this scale? A: ECS Fargate auto-scales 1→3 tasks per service. DynamoDB on-demand scales automatically. Designed for 1,000+ claims/day at current config, easily scalable to 100K+.
cd scripts/stress-testing
pip install boto3 requests- Login as Admin → Dashboard shows all services 🟢 Healthy
- Open CloudWatch Dashboard: https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#dashboards:name=ClaimFlow-Operations
- Show all metrics are flat/normal
- Show CloudWatch Alarms: https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#alarmsV2: — all 🟢 OK
# Option 1: API flood (causes CPU spikes)
python stress_api.py --profile my-profile --duration 120 --rps 50
# Option 2: Kill services (causes outages)
python stress_ecs.py --profile my-profile --action scale-down
# Option 3: Combined chaos
python stress_all.py --profile my-profile --level medium --duration 180- Admin Dashboard → Services go 🔴 Unhealthy, response times spike
- CloudWatch Dashboard → CPU/Memory graphs spike, error counts increase
- CloudWatch Alarms → Multiple alarms fire 🔴 (HighCPU, 5xxErrors, UnhealthyTargets)
- DevOps Agent identifies: "ECS CPU at 95%, 3 services unhealthy, DynamoDB throttling detected"
python recover_all.py --profile my-profile- Admin Dashboard → All services return to 🟢 Healthy
- CloudWatch Alarms → Return to 🟢 OK
- DevOps Agent confirms: "All services recovered, metrics normalized"
- "42 CloudWatch alarms monitoring every layer of the stack"
- "Automated detection of CPU spikes, memory pressure, throttling, and service outages"
- "DevOps Agent can identify root cause across multiple services simultaneously"
- "One-command recovery restores full platform health"