# hsrkl/techfiesta-insurance-claim-assistant architecture

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

- Interactive diagram: https://gitdiagram.com/hsrkl/techfiesta-insurance-claim-assistant
- Repository: https://github.com/hsrkl/techfiesta-insurance-claim-assistant

## Overview

TechFiesta is a serverless vehicle-claim platform: policyholders capture incident evidence, receive automated damage and fraud analysis with a repair estimate, then submit a claim; administrators retrieve and review claims, change status, and notify applicants. The graph follows the documented API Gateway/Lambda flow and major product capabilities. Some backend wiring is documented in the README rather than sampled source, so those links reflect that documentation; unsampled frontend stages are represented at their existing page paths.

Main entry points: [`frontend-user-web/src/App.tsx`](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-user-web/src/App.tsx) (Claim App), [`backend/damage-assessment/mock_assessment.py`](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment/mock_assessment.py) (Damage Assessment), [`backend/fraud_detection/lambda_function.py`](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/fraud_detection/lambda_function.py) (Fraud Screening), [`backend/damage-assessment-linker/lambda_function.py`](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment-linker/lambda_function.py) (Estimate Linker)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_policyholder["Policyholder App"]
  node_user_app["Claim App<br/>[App.tsx]"]
  node_capture["Incident Capture"]
  node_quality["Image Quality<br/>[OpenCVService.ts]"]
  node_upload["Upload Service<br/>[uploadService.ts]"]
  node_garage["Garage Selection<br/>[Garages.tsx]"]
end

subgraph group_assessment["Claim Assessment"]
  node_assessment_lambda["Damage Assessment<br/>[mock_assessment.py]"]
  node_parts["Part Detection<br/>[reconstruction.py]"]
  node_severity["Damage Classification<br/>[severe_damage.py]"]
  node_minor["Minor Damage<br/>[minor_damage.py]"]
  node_internal["Internal Damage<br/>[internal_damage.py]"]
  node_linker["Estimate Linker<br/>[lambda_function.py]"]
  node_fraud["Fraud Screening<br/>[lambda_function.py]"]
  node_metadata["EXIF Analysis"]
  node_rekognition_analysis["Image Analysis"]
  node_scoring["Fraud Scoring<br/>[scoring_engine.py]"]
end

subgraph group_admin["Admin Review"]
  node_admin_app["Admin Dashboard<br/>[App.tsx]"]
  node_review["Claim Review"]
end

subgraph group_cloud["AWS Services"]
  node_gateway{{"API Gateway"}}
  node_upload_lambda["Upload URL Lambda<br/>[lamba_function.py]"]
  node_evidence[("Evidence S3")]
  node_results[("Assessment Results")]
  node_price_catalog[("Parts Price Catalog")]
  node_rekognition{{"Rekognition"}}
  node_claim_submit["Claim Submission<br/>[lambda_function.py]"]
  node_claims_db[("Claims Database")]
  node_claims_list["Claims Retrieval<br/>[lambda_function.py]"]
  node_status_email["Status Email<br/>[lambda_function.py]"]
  node_ses{{"Amazon SES"}}
end

node_applicant(("Policyholder"))
node_inbox(("Policyholder Inbox"))

node_applicant -->|"starts claim"| node_user_app
node_user_app -->|"routes capture"| node_capture
node_capture -->|"checks images"| node_quality
node_capture -->|"uploads evidence"| node_upload
node_upload -->|"requests URL"| node_gateway
node_gateway -->|"invokes"| node_upload_lambda
node_upload_lambda -->|"signs upload"| node_evidence
node_upload -->|"PUTs photo"| node_evidence
node_user_app -->|"requests assessment"| node_gateway
node_gateway -->|"invokes"| node_assessment_lambda
node_assessment_lambda -->|"reads image"| node_evidence
node_assessment_lambda -->|"runs detection"| node_parts
node_assessment_lambda -->|"runs detection"| node_severity
node_assessment_lambda -->|"runs detection"| node_minor
node_assessment_lambda -->|"infers risk"| node_internal
node_assessment_lambda -->|"writes results"| node_results
node_user_app -->|"requests estimate"| node_gateway
node_gateway -->|"invokes"| node_linker
node_linker -->|"reads results"| node_results
node_linker -->|"looks up prices"| node_price_catalog
node_linker -->|"returns estimate"| node_user_app
node_user_app -->|"requests fraud screen"| node_gateway
node_gateway -->|"invokes"| node_fraud
node_fraud -->|"downloads photos"| node_evidence
node_fraud -->|"analyzes EXIF"| node_metadata
node_fraud -->|"analyzes image"| node_rekognition_analysis
node_rekognition_analysis -->|"checks labels"| node_rekognition
node_fraud -->|"combines findings"| node_scoring
node_scoring -.->|"deletes fraudulent claim"| node_claims_db
node_fraud -->|"returns verdict"| node_user_app
node_user_app -->|"submits claim"| node_gateway
node_gateway -->|"invokes"| node_claim_submit
node_claim_submit -->|"writes claim"| node_claims_db
node_applicant -->|"administers claims"| node_admin_app
node_admin_app -->|"requests claims"| node_gateway
node_gateway -->|"invokes"| node_claims_list
node_claims_list -->|"reads claims"| node_claims_db
node_admin_app -->|"opens claim"| node_review
node_review -->|"updates status"| node_gateway
node_gateway -->|"invokes"| node_status_email
node_status_email -->|"sends email"| node_ses
node_ses -->|"delivers notice"| node_inbox

click node_user_app "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-user-web/src/App.tsx"
click node_capture "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-user-web/src/pages/CaptureIncident.tsx"
click node_quality "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-user-web/src/utils/OpenCVService.ts"
click node_upload "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-user-web/src/services/uploadService.ts"
click node_garage "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-user-web/src/pages/Garages.tsx"
click node_upload_lambda "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/GetUploadURL/lamba_function.py"
click node_assessment_lambda "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment/mock_assessment.py"
click node_parts "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment/assessment_lib/reconstruction.py"
click node_severity "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment/assessment_lib/severe_damage.py"
click node_minor "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment/assessment_lib/minor_damage.py"
click node_internal "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment/assessment_lib/internal_damage.py"
click node_linker "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment-linker/lambda_function.py"
click node_fraud "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/fraud_detection/lambda_function.py"
click node_metadata "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/fraud_detection/metadata_analyzer.py"
click node_rekognition_analysis "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/fraud_detection/rekognition_analyzer.py"
click node_scoring "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/fraud_detection/scoring_engine.py"
click node_claim_submit "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/SubmitClaimData/lambda_function.py"
click node_admin_app "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-admin-web/src/App.tsx"
click node_claims_list "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/GetClaimsData/lambda_function.py"
click node_review "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-admin-web/src/Pages/ClaimDetailsPage.tsx"
click node_status_email "https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/email-sender/lambda_function.py"

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_user_app,node_capture,node_quality,node_upload,node_garage toneBlue
class node_assessment_lambda,node_parts,node_severity,node_minor,node_internal,node_linker,node_fraud,node_metadata,node_rekognition_analysis,node_scoring toneAmber
class node_admin_app,node_review toneMint
class node_gateway,node_upload_lambda,node_evidence,node_results,node_price_catalog,node_rekognition,node_claim_submit,node_claims_db,node_claims_list,node_status_email,node_ses toneRose
class node_applicant,node_inbox toneIndigo
```

## Components

### Policyholder App

- [Claim App](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-user-web/src/App.tsx): `frontend-user-web/src/App.tsx`
- [Incident Capture](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-user-web/src/pages/CaptureIncident.tsx): `frontend-user-web/src/pages/CaptureIncident.tsx`
- [Image Quality](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-user-web/src/utils/OpenCVService.ts): `frontend-user-web/src/utils/OpenCVService.ts`
- [Upload Service](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-user-web/src/services/uploadService.ts): `frontend-user-web/src/services/uploadService.ts`
- [Garage Selection](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-user-web/src/pages/Garages.tsx): `frontend-user-web/src/pages/Garages.tsx`

### Claim Assessment

- [Damage Assessment](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment/mock_assessment.py): `backend/damage-assessment/mock_assessment.py`
- [Part Detection](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment/assessment_lib/reconstruction.py): `backend/damage-assessment/assessment_lib/reconstruction.py`
- [Damage Classification](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment/assessment_lib/severe_damage.py): `backend/damage-assessment/assessment_lib/severe_damage.py`
- [Minor Damage](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment/assessment_lib/minor_damage.py): `backend/damage-assessment/assessment_lib/minor_damage.py`
- [Internal Damage](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment/assessment_lib/internal_damage.py): `backend/damage-assessment/assessment_lib/internal_damage.py`
- [Estimate Linker](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/damage-assessment-linker/lambda_function.py): `backend/damage-assessment-linker/lambda_function.py`
- [Fraud Screening](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/fraud_detection/lambda_function.py): `backend/fraud_detection/lambda_function.py`
- [EXIF Analysis](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/fraud_detection/metadata_analyzer.py): `backend/fraud_detection/metadata_analyzer.py`
- [Image Analysis](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/fraud_detection/rekognition_analyzer.py): `backend/fraud_detection/rekognition_analyzer.py`
- [Fraud Scoring](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/fraud_detection/scoring_engine.py): `backend/fraud_detection/scoring_engine.py`

### Admin Review

- [Admin Dashboard](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-admin-web/src/App.tsx): `frontend-admin-web/src/App.tsx`
- [Claim Review](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/frontend-admin-web/src/Pages/ClaimDetailsPage.tsx): `frontend-admin-web/src/Pages/ClaimDetailsPage.tsx`

### AWS Services

- **API Gateway**
- [Upload URL Lambda](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/GetUploadURL/lamba_function.py): `backend/GetUploadURL/lamba_function.py`
- **Evidence S3**
- **Assessment Results**
- **Parts Price Catalog**
- **Rekognition**
- [Claim Submission](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/SubmitClaimData/lambda_function.py): `backend/SubmitClaimData/lambda_function.py`
- **Claims Database**
- [Claims Retrieval](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/GetClaimsData/lambda_function.py): `backend/GetClaimsData/lambda_function.py`
- [Status Email](https://github.com/hsrkl/techfiesta-insurance-claim-assistant/blob/main/backend/email-sender/lambda_function.py): `backend/email-sender/lambda_function.py`
- **Amazon SES**

### Other components

- **Policyholder**
- **Policyholder Inbox**

## Connections

- Policyholder → Claim App: starts claim
- Claim App → Incident Capture: routes capture
- Incident Capture → Image Quality: checks images
- Incident Capture → Upload Service: uploads evidence
- Upload Service → API Gateway: requests URL
- API Gateway → Upload URL Lambda: invokes
- Upload URL Lambda → Evidence S3: signs upload
- Upload Service → Evidence S3: PUTs photo
- Claim App → API Gateway: requests assessment
- API Gateway → Damage Assessment: invokes
- Damage Assessment → Evidence S3: reads image
- Damage Assessment → Part Detection: runs detection
- Damage Assessment → Damage Classification: runs detection
- Damage Assessment → Minor Damage: runs detection
- Damage Assessment → Internal Damage: infers risk
- Damage Assessment → Assessment Results: writes results
- Claim App → API Gateway: requests estimate
- API Gateway → Estimate Linker: invokes
- Estimate Linker → Assessment Results: reads results
- Estimate Linker → Parts Price Catalog: looks up prices
- Estimate Linker → Claim App: returns estimate
- Claim App → API Gateway: requests fraud screen
- API Gateway → Fraud Screening: invokes
- Fraud Screening → Evidence S3: downloads photos
- Fraud Screening → EXIF Analysis: analyzes EXIF
- Fraud Screening → Image Analysis: analyzes image
- Image Analysis → Rekognition: checks labels
- Fraud Screening → Fraud Scoring: combines findings
- Fraud Scoring → Claims Database: deletes fraudulent claim
- Fraud Screening → Claim App: returns verdict
- Claim App → API Gateway: submits claim
- API Gateway → Claim Submission: invokes
- Claim Submission → Claims Database: writes claim
- Policyholder → Admin Dashboard: administers claims
- Admin Dashboard → API Gateway: requests claims
- API Gateway → Claims Retrieval: invokes
- Claims Retrieval → Claims Database: reads claims
- Admin Dashboard → Claim Review: opens claim
- Claim Review → API Gateway: updates status
- API Gateway → Status Email: invokes
- Status Email → Amazon SES: sends email
- Amazon SES → Policyholder Inbox: delivers notice
